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

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

%"class.std::__cxx11::basic_string.91" = type { %"struct.std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>::_Alloc_hider", i64, %union.anon.93 }
%"struct.std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>::_Alloc_hider" = type { %"class.glslang::pool_allocator.92", ptr }
%"class.glslang::pool_allocator.92" = type { ptr }
%union.anon.93 = type { i64, [8 x i8] }
%class.TInfoSink = type { %"class.glslang::TInfoSinkBase", %"class.glslang::TInfoSinkBase" }
%"class.glslang::TInfoSinkBase" = type <{ %"class.std::__cxx11::basic_string", i32, [4 x i8] }>
%"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] }
%"struct.glslang::TTypeLoc" = type { ptr, %"struct.glslang::TSourceLoc" }
%"struct.glslang::TSourceLoc" = type { ptr, i32, i32, i32 }
%"class.glslang::TQualifier" = type <{ ptr, i64, i8, [3 x i8], i32, i32, i64, i64, i8, i8, i8, i8, i8, [3 x i8], i32, i8, [3 x i8], i32, ptr }>

@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [4 x i8], align 1

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

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

declare ptr @StageName(i32 noundef) #1

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7glslang13TIntermediate15mergeErrorCheckER9TInfoSinkRKNS_13TIntermSymbolES5_11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull align 8 dereferenceable(256) %2, ptr noundef nonnull align 8 dereferenceable(256) %3, i32 noundef %4) #0 align 2 personality ptr @__gxx_personality_v0 {
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca i8, align 1
  %12 = alloca i8, align 1
  %13 = alloca i8, align 1
  %14 = alloca i8, align 1
  %15 = alloca i8, align 1
  %16 = alloca i8, align 1
  %17 = alloca i8, align 1
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %27 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %28 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %29 = alloca %"class.glslang::pool_allocator.92", align 8
  %30 = alloca ptr, align 8
  %31 = alloca i32, align 4
  %32 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %33 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %34 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %35 = alloca %"class.glslang::pool_allocator.92", align 8
  %36 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %37 = alloca %"class.glslang::pool_allocator.92", align 8
  %38 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %39 = alloca %"class.glslang::pool_allocator.92", align 8
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca ptr, align 8
  %43 = alloca ptr, align 8
  %44 = alloca i8, align 1
  %45 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %46 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %47 = alloca %"class.glslang::pool_allocator.92", align 8
  %48 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %49 = alloca %"class.glslang::pool_allocator.92", align 8
  %50 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %51 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %52 = alloca %"class.glslang::pool_allocator.92", align 8
  %53 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %54 = alloca %"class.glslang::pool_allocator.92", align 8
  %55 = alloca i8, align 1
  %56 = alloca i8, align 1
  %57 = alloca i8, align 1
  %58 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %59 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %60 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %61 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %62 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %63 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %64 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %65 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %66 = alloca %"class.glslang::pool_allocator.92", align 8
  %67 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %68 = alloca %"class.glslang::pool_allocator.92", align 8
  %69 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %70 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %71 = alloca %"class.glslang::pool_allocator.92", align 8
  %72 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %73 = alloca %"class.glslang::pool_allocator.92", align 8
  %74 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %75 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %76 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %77 = alloca %"class.glslang::pool_allocator.92", align 8
  %78 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %79 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %80 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %81 = alloca %"class.glslang::pool_allocator.92", align 8
  %82 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %83 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %84 = alloca %"class.glslang::pool_allocator.92", align 8
  %85 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %86 = alloca %"class.glslang::pool_allocator.92", align 8
  %87 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %88 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %89 = alloca %"class.glslang::pool_allocator.92", align 8
  %90 = alloca %"class.std::__cxx11::basic_string.91", align 8
  %91 = alloca %"class.glslang::pool_allocator.92", align 8
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !5
  store ptr %2, ptr %8, align 8, !tbaa !5
  store ptr %3, ptr %9, align 8, !tbaa !5
  store i32 %4, ptr %10, align 4, !tbaa !9
  %92 = load ptr, ptr %6, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #6
  %93 = call noundef i32 @_ZNK7glslang13TIntermediate8getStageEv(ptr noundef nonnull align 8 dereferenceable(1784) %92)
  %94 = load i32, ptr %10, align 4, !tbaa !9
  %95 = icmp ne i32 %93, %94
  %96 = zext i1 %95 to i8
  store i8 %96, ptr %11, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #6
  store i8 0, ptr %12, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %13) #6
  store i8 0, ptr %13, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #6
  store i8 0, ptr %14, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %15) #6
  store i8 0, ptr %15, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #6
  store i8 0, ptr %16, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #6
  store i8 0, ptr %17, align 1, !tbaa !11
  %97 = load ptr, ptr %8, align 8, !tbaa !5
  %98 = load ptr, ptr %97, align 8, !tbaa !13
  %99 = getelementptr inbounds ptr, ptr %98, i64 30
  %100 = load ptr, ptr %99, align 8
  %101 = call noundef nonnull align 8 dereferenceable(144) ptr %100(ptr noundef nonnull align 8 dereferenceable(176) %97)
  %102 = call noundef i32 @_ZNK7glslang13TIntermediate8getStageEv(ptr noundef nonnull align 8 dereferenceable(1784) %92)
  %103 = call noundef zeroext i1 @_ZN7glslang13TIntermediate15isIoResizeArrayERKNS_5TTypeE11EShLanguage(ptr noundef nonnull align 8 dereferenceable(144) %101, i32 noundef %102)
  br i1 %103, label %112, label %104

104:                                              ; preds = %5
  %105 = load ptr, ptr %9, align 8, !tbaa !5
  %106 = load ptr, ptr %105, align 8, !tbaa !13
  %107 = getelementptr inbounds ptr, ptr %106, i64 30
  %108 = load ptr, ptr %107, align 8
  %109 = call noundef nonnull align 8 dereferenceable(144) ptr %108(ptr noundef nonnull align 8 dereferenceable(176) %105)
  %110 = load i32, ptr %10, align 4, !tbaa !9
  %111 = call noundef zeroext i1 @_ZN7glslang13TIntermediate15isIoResizeArrayERKNS_5TTypeE11EShLanguage(ptr noundef nonnull align 8 dereferenceable(144) %109, i32 noundef %110)
  br i1 %111, label %112, label %210

112:                                              ; preds = %104, %5
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #6
  %113 = load ptr, ptr %8, align 8, !tbaa !5
  %114 = load ptr, ptr %113, align 8, !tbaa !13
  %115 = getelementptr inbounds ptr, ptr %114, i64 30
  %116 = load ptr, ptr %115, align 8
  %117 = call noundef nonnull align 8 dereferenceable(144) ptr %116(ptr noundef nonnull align 8 dereferenceable(176) %113)
  %118 = call noundef i32 @_ZNK7glslang13TIntermediate8getStageEv(ptr noundef nonnull align 8 dereferenceable(1784) %92)
  %119 = call noundef zeroext i1 @_ZN7glslang13TIntermediate15isIoResizeArrayERKNS_5TTypeE11EShLanguage(ptr noundef nonnull align 8 dereferenceable(144) %117, i32 noundef %118)
  %120 = zext i1 %119 to i64
  %121 = select i1 %119, i32 1, i32 0
  store i32 %121, ptr %18, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #6
  %122 = load ptr, ptr %8, align 8, !tbaa !5
  %123 = load ptr, ptr %122, align 8, !tbaa !13
  %124 = getelementptr inbounds ptr, ptr %123, i64 36
  %125 = load ptr, ptr %124, align 8
  %126 = call noundef ptr %125(ptr noundef nonnull align 8 dereferenceable(176) %122)
  %127 = icmp ne ptr %126, null
  br i1 %127, label %128, label %135

128:                                              ; preds = %112
  %129 = load ptr, ptr %8, align 8, !tbaa !5
  %130 = load ptr, ptr %129, align 8, !tbaa !13
  %131 = getelementptr inbounds ptr, ptr %130, i64 36
  %132 = load ptr, ptr %131, align 8
  %133 = call noundef ptr %132(ptr noundef nonnull align 8 dereferenceable(176) %129)
  %134 = call noundef i32 @_ZNK7glslang11TArraySizes10getNumDimsEv(ptr noundef nonnull align 8 dereferenceable(21) %133)
  br label %136

135:                                              ; preds = %112
  br label %136

136:                                              ; preds = %135, %128
  %137 = phi i32 [ %134, %128 ], [ 0, %135 ]
  store i32 %137, ptr %19, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #6
  %138 = load ptr, ptr %9, align 8, !tbaa !5
  %139 = load ptr, ptr %138, align 8, !tbaa !13
  %140 = getelementptr inbounds ptr, ptr %139, i64 30
  %141 = load ptr, ptr %140, align 8
  %142 = call noundef nonnull align 8 dereferenceable(144) ptr %141(ptr noundef nonnull align 8 dereferenceable(176) %138)
  %143 = load i32, ptr %10, align 4, !tbaa !9
  %144 = call noundef zeroext i1 @_ZN7glslang13TIntermediate15isIoResizeArrayERKNS_5TTypeE11EShLanguage(ptr noundef nonnull align 8 dereferenceable(144) %142, i32 noundef %143)
  %145 = zext i1 %144 to i64
  %146 = select i1 %144, i32 1, i32 0
  store i32 %146, ptr %20, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #6
  %147 = load ptr, ptr %9, align 8, !tbaa !5
  %148 = load ptr, ptr %147, align 8, !tbaa !13
  %149 = getelementptr inbounds ptr, ptr %148, i64 36
  %150 = load ptr, ptr %149, align 8
  %151 = call noundef ptr %150(ptr noundef nonnull align 8 dereferenceable(176) %147)
  %152 = icmp ne ptr %151, null
  br i1 %152, label %153, label %160

153:                                              ; preds = %136
  %154 = load ptr, ptr %9, align 8, !tbaa !5
  %155 = load ptr, ptr %154, align 8, !tbaa !13
  %156 = getelementptr inbounds ptr, ptr %155, i64 36
  %157 = load ptr, ptr %156, align 8
  %158 = call noundef ptr %157(ptr noundef nonnull align 8 dereferenceable(176) %154)
  %159 = call noundef i32 @_ZNK7glslang11TArraySizes10getNumDimsEv(ptr noundef nonnull align 8 dereferenceable(21) %158)
  br label %161

160:                                              ; preds = %136
  br label %161

161:                                              ; preds = %160, %153
  %162 = phi i32 [ %159, %153 ], [ 0, %160 ]
  store i32 %162, ptr %21, align 4, !tbaa !15
  %163 = load i32, ptr %19, align 4, !tbaa !15
  %164 = load i32, ptr %18, align 4, !tbaa !15
  %165 = sub i32 %163, %164
  %166 = load i32, ptr %21, align 4, !tbaa !15
  %167 = load i32, ptr %20, align 4, !tbaa !15
  %168 = sub i32 %166, %167
  %169 = icmp eq i32 %165, %168
  %170 = zext i1 %169 to i8
  store i8 %170, ptr %17, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #6
  store i32 0, ptr %22, align 4, !tbaa !15
  br label %171

171:                                              ; preds = %205, %161
  %172 = load i32, ptr %22, align 4, !tbaa !15
  %173 = load i32, ptr %19, align 4, !tbaa !15
  %174 = load i32, ptr %18, align 4, !tbaa !15
  %175 = sub i32 %173, %174
  %176 = icmp ult i32 %172, %175
  br i1 %176, label %177, label %180

177:                                              ; preds = %171
  %178 = load i8, ptr %17, align 1, !tbaa !11, !range !17, !noundef !18
  %179 = trunc i8 %178 to i1
  br label %180

180:                                              ; preds = %177, %171
  %181 = phi i1 [ false, %171 ], [ %179, %177 ]
  br i1 %181, label %183, label %182

182:                                              ; preds = %180
  store i32 2, ptr %23, align 4
  br label %208

183:                                              ; preds = %180
  %184 = load ptr, ptr %8, align 8, !tbaa !5
  %185 = load ptr, ptr %184, align 8, !tbaa !13
  %186 = getelementptr inbounds ptr, ptr %185, i64 36
  %187 = load ptr, ptr %186, align 8
  %188 = call noundef ptr %187(ptr noundef nonnull align 8 dereferenceable(176) %184)
  %189 = load i32, ptr %18, align 4, !tbaa !15
  %190 = load i32, ptr %22, align 4, !tbaa !15
  %191 = add i32 %189, %190
  %192 = call noundef i32 @_ZNK7glslang11TArraySizes10getDimSizeEi(ptr noundef nonnull align 8 dereferenceable(21) %188, i32 noundef %191)
  %193 = load ptr, ptr %9, align 8, !tbaa !5
  %194 = load ptr, ptr %193, align 8, !tbaa !13
  %195 = getelementptr inbounds ptr, ptr %194, i64 36
  %196 = load ptr, ptr %195, align 8
  %197 = call noundef ptr %196(ptr noundef nonnull align 8 dereferenceable(176) %193)
  %198 = load i32, ptr %20, align 4, !tbaa !15
  %199 = load i32, ptr %22, align 4, !tbaa !15
  %200 = add i32 %198, %199
  %201 = call noundef i32 @_ZNK7glslang11TArraySizes10getDimSizeEi(ptr noundef nonnull align 8 dereferenceable(21) %197, i32 noundef %200)
  %202 = icmp ne i32 %192, %201
  br i1 %202, label %203, label %204

203:                                              ; preds = %183
  store i8 0, ptr %17, align 1, !tbaa !11
  store i32 2, ptr %23, align 4
  br label %208

204:                                              ; preds = %183
  br label %205

205:                                              ; preds = %204
  %206 = load i32, ptr %22, align 4, !tbaa !15
  %207 = add i32 %206, 1
  store i32 %207, ptr %22, align 4, !tbaa !15
  br label %171, !llvm.loop !19

208:                                              ; preds = %203, %182
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #6
  br label %209

209:                                              ; preds = %208
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #6
  br label %269

210:                                              ; preds = %104
  %211 = load ptr, ptr %8, align 8, !tbaa !5
  %212 = load ptr, ptr %211, align 8, !tbaa !13
  %213 = getelementptr inbounds ptr, ptr %212, i64 30
  %214 = load ptr, ptr %213, align 8
  %215 = call noundef nonnull align 8 dereferenceable(144) ptr %214(ptr noundef nonnull align 8 dereferenceable(176) %211)
  %216 = load ptr, ptr %9, align 8, !tbaa !5
  %217 = load ptr, ptr %216, align 8, !tbaa !13
  %218 = getelementptr inbounds ptr, ptr %217, i64 30
  %219 = load ptr, ptr %218, align 8
  %220 = call noundef nonnull align 8 dereferenceable(144) ptr %219(ptr noundef nonnull align 8 dereferenceable(176) %216)
  %221 = call noundef zeroext i1 @_ZNK7glslang5TType13sameArraynessERKS0_(ptr noundef nonnull align 8 dereferenceable(144) %215, ptr noundef nonnull align 8 dereferenceable(144) %220)
  br i1 %221, label %266, label %222

222:                                              ; preds = %210
  %223 = load ptr, ptr %8, align 8, !tbaa !5
  %224 = load ptr, ptr %223, align 8, !tbaa !13
  %225 = getelementptr inbounds ptr, ptr %224, i64 30
  %226 = load ptr, ptr %225, align 8
  %227 = call noundef nonnull align 8 dereferenceable(144) ptr %226(ptr noundef nonnull align 8 dereferenceable(176) %223)
  %228 = load ptr, ptr %227, align 8, !tbaa !13
  %229 = getelementptr inbounds ptr, ptr %228, i64 29
  %230 = load ptr, ptr %229, align 8
  %231 = call noundef zeroext i1 %230(ptr noundef nonnull align 8 dereferenceable(144) %227)
  br i1 %231, label %232, label %264

232:                                              ; preds = %222
  %233 = load ptr, ptr %9, align 8, !tbaa !5
  %234 = load ptr, ptr %233, align 8, !tbaa !13
  %235 = getelementptr inbounds ptr, ptr %234, i64 30
  %236 = load ptr, ptr %235, align 8
  %237 = call noundef nonnull align 8 dereferenceable(144) ptr %236(ptr noundef nonnull align 8 dereferenceable(176) %233)
  %238 = load ptr, ptr %237, align 8, !tbaa !13
  %239 = getelementptr inbounds ptr, ptr %238, i64 29
  %240 = load ptr, ptr %239, align 8
  %241 = call noundef zeroext i1 %240(ptr noundef nonnull align 8 dereferenceable(144) %237)
  br i1 %241, label %242, label %264

242:                                              ; preds = %232
  %243 = load ptr, ptr %8, align 8, !tbaa !5
  %244 = load ptr, ptr %243, align 8, !tbaa !13
  %245 = getelementptr inbounds ptr, ptr %244, i64 30
  %246 = load ptr, ptr %245, align 8
  %247 = call noundef nonnull align 8 dereferenceable(144) ptr %246(ptr noundef nonnull align 8 dereferenceable(176) %243)
  %248 = load ptr, ptr %247, align 8, !tbaa !13
  %249 = getelementptr inbounds ptr, ptr %248, i64 31
  %250 = load ptr, ptr %249, align 8
  %251 = call noundef zeroext i1 %250(ptr noundef nonnull align 8 dereferenceable(144) %247)
  br i1 %251, label %262, label %252

252:                                              ; preds = %242
  %253 = load ptr, ptr %9, align 8, !tbaa !5
  %254 = load ptr, ptr %253, align 8, !tbaa !13
  %255 = getelementptr inbounds ptr, ptr %254, i64 30
  %256 = load ptr, ptr %255, align 8
  %257 = call noundef nonnull align 8 dereferenceable(144) ptr %256(ptr noundef nonnull align 8 dereferenceable(176) %253)
  %258 = load ptr, ptr %257, align 8, !tbaa !13
  %259 = getelementptr inbounds ptr, ptr %258, i64 31
  %260 = load ptr, ptr %259, align 8
  %261 = call noundef zeroext i1 %260(ptr noundef nonnull align 8 dereferenceable(144) %257)
  br label %262

262:                                              ; preds = %252, %242
  %263 = phi i1 [ true, %242 ], [ %261, %252 ]
  br label %264

264:                                              ; preds = %262, %232, %222
  %265 = phi i1 [ false, %232 ], [ false, %222 ], [ %263, %262 ]
  br label %266

266:                                              ; preds = %264, %210
  %267 = phi i1 [ true, %210 ], [ %265, %264 ]
  %268 = zext i1 %267 to i8
  store i8 %268, ptr %17, align 1, !tbaa !11
  br label %269

269:                                              ; preds = %266, %209
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #6
  store i32 -1, ptr %24, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #6
  store i32 -1, ptr %25, align 4, !tbaa !15
  %270 = load ptr, ptr %8, align 8, !tbaa !5
  %271 = load ptr, ptr %270, align 8, !tbaa !13
  %272 = getelementptr inbounds ptr, ptr %271, i64 30
  %273 = load ptr, ptr %272, align 8
  %274 = call noundef nonnull align 8 dereferenceable(144) ptr %273(ptr noundef nonnull align 8 dereferenceable(176) %270)
  %275 = load ptr, ptr %9, align 8, !tbaa !5
  %276 = load ptr, ptr %275, align 8, !tbaa !13
  %277 = getelementptr inbounds ptr, ptr %276, i64 30
  %278 = load ptr, ptr %277, align 8
  %279 = call noundef nonnull align 8 dereferenceable(144) ptr %278(ptr noundef nonnull align 8 dereferenceable(176) %275)
  %280 = call noundef zeroext i1 @_ZNK7glslang5TType15sameElementTypeERKS0_PiS3_(ptr noundef nonnull align 8 dereferenceable(144) %274, ptr noundef nonnull align 8 dereferenceable(144) %279, ptr noundef %24, ptr noundef %25)
  br i1 %280, label %621, label %281

281:                                              ; preds = %269
  %282 = load i32, ptr %24, align 4, !tbaa !15
  %283 = icmp sge i32 %282, 0
  br i1 %283, label %284, label %412

284:                                              ; preds = %281
  %285 = load i32, ptr %25, align 4, !tbaa !15
  %286 = icmp sge i32 %285, 0
  br i1 %286, label %287, label %412

287:                                              ; preds = %284
  %288 = load ptr, ptr %7, align 8, !tbaa !5
  %289 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %288, ptr noundef @.str.35, i32 noundef %289)
  %290 = load ptr, ptr %7, align 8, !tbaa !5
  %291 = getelementptr inbounds %class.TInfoSink, ptr %290, i32 0, i32 0
  %292 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %291, ptr noundef @.str.36)
  %293 = load ptr, ptr %8, align 8, !tbaa !5
  %294 = load ptr, ptr %293, align 8, !tbaa !13
  %295 = getelementptr inbounds ptr, ptr %294, i64 30
  %296 = load ptr, ptr %295, align 8
  %297 = call noundef nonnull align 8 dereferenceable(144) ptr %296(ptr noundef nonnull align 8 dereferenceable(176) %293)
  %298 = load ptr, ptr %297, align 8, !tbaa !13
  %299 = getelementptr inbounds ptr, ptr %298, i64 5
  %300 = load ptr, ptr %299, align 8
  %301 = call noundef nonnull align 8 dereferenceable(40) ptr %300(ptr noundef nonnull align 8 dereferenceable(144) %297)
  %302 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %292, ptr noundef nonnull align 8 dereferenceable(40) %301)
  %303 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %302, ptr noundef @.str.3)
  %304 = load ptr, ptr %7, align 8, !tbaa !5
  %305 = getelementptr inbounds %class.TInfoSink, ptr %304, i32 0, i32 0
  %306 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %305, ptr noundef @.str.37)
  %307 = call noundef i32 @_ZNK7glslang13TIntermediate8getStageEv(ptr noundef nonnull align 8 dereferenceable(1784) %92)
  %308 = call ptr @StageName(i32 noundef %307)
  %309 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %306, ptr noundef %308)
  %310 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %309, ptr noundef @.str.38)
  call void @llvm.lifetime.start.p0(i64 40, ptr %26) #6
  %311 = load ptr, ptr %8, align 8, !tbaa !5
  %312 = load ptr, ptr %311, align 8, !tbaa !13
  %313 = getelementptr inbounds ptr, ptr %312, i64 30
  %314 = load ptr, ptr %313, align 8
  %315 = call noundef nonnull align 8 dereferenceable(144) ptr %314(ptr noundef nonnull align 8 dereferenceable(176) %311)
  %316 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %315)
  %317 = load i32, ptr %24, align 4, !tbaa !15
  %318 = sext i32 %317 to i64
  %319 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %316, i64 noundef %318) #6
  %320 = getelementptr inbounds %"struct.glslang::TTypeLoc", ptr %319, i32 0, i32 0
  %321 = load ptr, ptr %320, align 8, !tbaa !21
  %322 = load ptr, ptr %8, align 8, !tbaa !5
  %323 = load ptr, ptr %322, align 8, !tbaa !13
  %324 = getelementptr inbounds ptr, ptr %323, i64 30
  %325 = load ptr, ptr %324, align 8
  %326 = call noundef nonnull align 8 dereferenceable(144) ptr %325(ptr noundef nonnull align 8 dereferenceable(176) %322)
  %327 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %326)
  %328 = load i32, ptr %24, align 4, !tbaa !15
  %329 = sext i32 %328 to i64
  %330 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %327, i64 noundef %329) #6
  %331 = getelementptr inbounds %"struct.glslang::TTypeLoc", ptr %330, i32 0, i32 0
  %332 = load ptr, ptr %331, align 8, !tbaa !21
  %333 = load ptr, ptr %332, align 8, !tbaa !13
  %334 = getelementptr inbounds ptr, ptr %333, i64 6
  %335 = load ptr, ptr %334, align 8
  %336 = call noundef nonnull align 8 dereferenceable(40) ptr %335(ptr noundef nonnull align 8 dereferenceable(144) %332)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(40) %27, ptr noundef nonnull align 8 dereferenceable(40) %336)
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #6
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %29)
          to label %337 unwind label %384

337:                                              ; preds = %287
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %28, ptr noundef @.str.31, ptr noundef nonnull align 8 dereferenceable(8) %29)
          to label %338 unwind label %384

338:                                              ; preds = %337
  invoke void @_ZNK7glslang5TType17getCompleteStringEbbbbNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string.91") align 8 %26, ptr noundef nonnull align 8 dereferenceable(144) %321, i1 noundef zeroext true, i1 noundef zeroext false, i1 noundef zeroext false, i1 noundef zeroext true, ptr noundef %27, ptr noundef %28)
          to label %339 unwind label %388

339:                                              ; preds = %338
  %340 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %310, ptr noundef nonnull align 8 dereferenceable(40) %26)
          to label %341 unwind label %392

341:                                              ; preds = %339
  %342 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %340, ptr noundef @.str.33)
          to label %343 unwind label %392

343:                                              ; preds = %341
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %26) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %28) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %27) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %26) #6
  %344 = load ptr, ptr %7, align 8, !tbaa !5
  %345 = getelementptr inbounds %class.TInfoSink, ptr %344, i32 0, i32 0
  %346 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %345, ptr noundef @.str.37)
  %347 = load i32, ptr %10, align 4, !tbaa !9
  %348 = call ptr @StageName(i32 noundef %347)
  %349 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %346, ptr noundef %348)
  %350 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %349, ptr noundef @.str.38)
  call void @llvm.lifetime.start.p0(i64 40, ptr %32) #6
  %351 = load ptr, ptr %9, align 8, !tbaa !5
  %352 = load ptr, ptr %351, align 8, !tbaa !13
  %353 = getelementptr inbounds ptr, ptr %352, i64 30
  %354 = load ptr, ptr %353, align 8
  %355 = call noundef nonnull align 8 dereferenceable(144) ptr %354(ptr noundef nonnull align 8 dereferenceable(176) %351)
  %356 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %355)
  %357 = load i32, ptr %25, align 4, !tbaa !15
  %358 = sext i32 %357 to i64
  %359 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %356, i64 noundef %358) #6
  %360 = getelementptr inbounds %"struct.glslang::TTypeLoc", ptr %359, i32 0, i32 0
  %361 = load ptr, ptr %360, align 8, !tbaa !21
  %362 = load ptr, ptr %9, align 8, !tbaa !5
  %363 = load ptr, ptr %362, align 8, !tbaa !13
  %364 = getelementptr inbounds ptr, ptr %363, i64 30
  %365 = load ptr, ptr %364, align 8
  %366 = call noundef nonnull align 8 dereferenceable(144) ptr %365(ptr noundef nonnull align 8 dereferenceable(176) %362)
  %367 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %366)
  %368 = load i32, ptr %25, align 4, !tbaa !15
  %369 = sext i32 %368 to i64
  %370 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %367, i64 noundef %369) #6
  %371 = getelementptr inbounds %"struct.glslang::TTypeLoc", ptr %370, i32 0, i32 0
  %372 = load ptr, ptr %371, align 8, !tbaa !21
  %373 = load ptr, ptr %372, align 8, !tbaa !13
  %374 = getelementptr inbounds ptr, ptr %373, i64 6
  %375 = load ptr, ptr %374, align 8
  %376 = call noundef nonnull align 8 dereferenceable(40) ptr %375(ptr noundef nonnull align 8 dereferenceable(144) %372)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(40) %33, ptr noundef nonnull align 8 dereferenceable(40) %376)
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #6
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %35)
          to label %377 unwind label %398

377:                                              ; preds = %343
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %34, ptr noundef @.str.31, ptr noundef nonnull align 8 dereferenceable(8) %35)
          to label %378 unwind label %398

378:                                              ; preds = %377
  invoke void @_ZNK7glslang5TType17getCompleteStringEbbbbNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string.91") align 8 %32, ptr noundef nonnull align 8 dereferenceable(144) %361, i1 noundef zeroext true, i1 noundef zeroext false, i1 noundef zeroext false, i1 noundef zeroext true, ptr noundef %33, ptr noundef %34)
          to label %379 unwind label %402

379:                                              ; preds = %378
  %380 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %350, ptr noundef nonnull align 8 dereferenceable(40) %32)
          to label %381 unwind label %406

381:                                              ; preds = %379
  %382 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %380, ptr noundef @.str.33)
          to label %383 unwind label %406

383:                                              ; preds = %381
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %32) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %34) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %33) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %32) #6
  store i8 1, ptr %13, align 1, !tbaa !11
  br label %620

384:                                              ; preds = %337, %287
  %385 = landingpad { ptr, i32 }
          cleanup
  %386 = extractvalue { ptr, i32 } %385, 0
  store ptr %386, ptr %30, align 8
  %387 = extractvalue { ptr, i32 } %385, 1
  store i32 %387, ptr %31, align 4
  br label %397

388:                                              ; preds = %338
  %389 = landingpad { ptr, i32 }
          cleanup
  %390 = extractvalue { ptr, i32 } %389, 0
  store ptr %390, ptr %30, align 8
  %391 = extractvalue { ptr, i32 } %389, 1
  store i32 %391, ptr %31, align 4
  br label %396

392:                                              ; preds = %341, %339
  %393 = landingpad { ptr, i32 }
          cleanup
  %394 = extractvalue { ptr, i32 } %393, 0
  store ptr %394, ptr %30, align 8
  %395 = extractvalue { ptr, i32 } %393, 1
  store i32 %395, ptr %31, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %26) #6
  br label %396

396:                                              ; preds = %392, %388
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %28) #6
  br label %397

397:                                              ; preds = %396, %384
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %27) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %26) #6
  br label %738

398:                                              ; preds = %377, %343
  %399 = landingpad { ptr, i32 }
          cleanup
  %400 = extractvalue { ptr, i32 } %399, 0
  store ptr %400, ptr %30, align 8
  %401 = extractvalue { ptr, i32 } %399, 1
  store i32 %401, ptr %31, align 4
  br label %411

402:                                              ; preds = %378
  %403 = landingpad { ptr, i32 }
          cleanup
  %404 = extractvalue { ptr, i32 } %403, 0
  store ptr %404, ptr %30, align 8
  %405 = extractvalue { ptr, i32 } %403, 1
  store i32 %405, ptr %31, align 4
  br label %410

406:                                              ; preds = %381, %379
  %407 = landingpad { ptr, i32 }
          cleanup
  %408 = extractvalue { ptr, i32 } %407, 0
  store ptr %408, ptr %30, align 8
  %409 = extractvalue { ptr, i32 } %407, 1
  store i32 %409, ptr %31, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %32) #6
  br label %410

410:                                              ; preds = %406, %402
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %34) #6
  br label %411

411:                                              ; preds = %410, %398
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %33) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %32) #6
  br label %738

412:                                              ; preds = %284, %281
  %413 = load i32, ptr %24, align 4, !tbaa !15
  %414 = icmp sge i32 %413, 0
  br i1 %414, label %415, label %513

415:                                              ; preds = %412
  %416 = load i32, ptr %25, align 4, !tbaa !15
  %417 = icmp eq i32 %416, -1
  br i1 %417, label %418, label %513

418:                                              ; preds = %415
  call void @llvm.lifetime.start.p0(i64 40, ptr %36) #6
  %419 = call noundef i32 @_ZNK7glslang13TIntermediate8getStageEv(ptr noundef nonnull align 8 dereferenceable(1784) %92)
  %420 = call ptr @StageName(i32 noundef %419)
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #6
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %37)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %36, ptr noundef %420, ptr noundef nonnull align 8 dereferenceable(8) %37)
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #6
  %421 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(40) %36, ptr noundef @.str.39)
          to label %422 unwind label %509

422:                                              ; preds = %418
  %423 = load i32, ptr %10, align 4, !tbaa !9
  %424 = invoke ptr @StageName(i32 noundef %423)
          to label %425 unwind label %509

425:                                              ; preds = %422
  %426 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(40) %421, ptr noundef %424)
          to label %427 unwind label %509

427:                                              ; preds = %425
  %428 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(40) %426, ptr noundef @.str.40)
          to label %429 unwind label %509

429:                                              ; preds = %427
  %430 = load ptr, ptr %7, align 8, !tbaa !5
  %431 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %36) #6
  %432 = load i32, ptr %10, align 4, !tbaa !9
  invoke void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %430, ptr noundef %431, i32 noundef %432)
          to label %433 unwind label %509

433:                                              ; preds = %429
  %434 = load ptr, ptr %7, align 8, !tbaa !5
  %435 = getelementptr inbounds %class.TInfoSink, ptr %434, i32 0, i32 0
  %436 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %435, ptr noundef @.str.26)
          to label %437 unwind label %509

437:                                              ; preds = %433
  %438 = invoke noundef i32 @_ZNK7glslang13TIntermediate8getStageEv(ptr noundef nonnull align 8 dereferenceable(1784) %92)
          to label %439 unwind label %509

439:                                              ; preds = %437
  %440 = invoke ptr @StageName(i32 noundef %438)
          to label %441 unwind label %509

441:                                              ; preds = %439
  %442 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %436, ptr noundef %440)
          to label %443 unwind label %509

443:                                              ; preds = %441
  %444 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %442, ptr noundef @.str.41)
          to label %445 unwind label %509

445:                                              ; preds = %443
  %446 = load ptr, ptr %8, align 8, !tbaa !5
  %447 = load ptr, ptr %446, align 8, !tbaa !13
  %448 = getelementptr inbounds ptr, ptr %447, i64 30
  %449 = load ptr, ptr %448, align 8
  %450 = invoke noundef nonnull align 8 dereferenceable(144) ptr %449(ptr noundef nonnull align 8 dereferenceable(176) %446)
          to label %451 unwind label %509

451:                                              ; preds = %445
  %452 = load ptr, ptr %450, align 8, !tbaa !13
  %453 = getelementptr inbounds ptr, ptr %452, i64 5
  %454 = load ptr, ptr %453, align 8
  %455 = invoke noundef nonnull align 8 dereferenceable(40) ptr %454(ptr noundef nonnull align 8 dereferenceable(144) %450)
          to label %456 unwind label %509

456:                                              ; preds = %451
  %457 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %444, ptr noundef nonnull align 8 dereferenceable(40) %455)
          to label %458 unwind label %509

458:                                              ; preds = %456
  %459 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %457, ptr noundef @.str.42)
          to label %460 unwind label %509

460:                                              ; preds = %458
  %461 = load ptr, ptr %8, align 8, !tbaa !5
  %462 = load ptr, ptr %461, align 8, !tbaa !13
  %463 = getelementptr inbounds ptr, ptr %462, i64 30
  %464 = load ptr, ptr %463, align 8
  %465 = invoke noundef nonnull align 8 dereferenceable(144) ptr %464(ptr noundef nonnull align 8 dereferenceable(176) %461)
          to label %466 unwind label %509

466:                                              ; preds = %460
  %467 = invoke noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %465)
          to label %468 unwind label %509

468:                                              ; preds = %466
  %469 = load i32, ptr %24, align 4, !tbaa !15
  %470 = sext i32 %469 to i64
  %471 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %467, i64 noundef %470) #6
  %472 = getelementptr inbounds %"struct.glslang::TTypeLoc", ptr %471, i32 0, i32 0
  %473 = load ptr, ptr %472, align 8, !tbaa !21
  %474 = load ptr, ptr %473, align 8, !tbaa !13
  %475 = getelementptr inbounds ptr, ptr %474, i64 6
  %476 = load ptr, ptr %475, align 8
  %477 = invoke noundef nonnull align 8 dereferenceable(40) ptr %476(ptr noundef nonnull align 8 dereferenceable(144) %473)
          to label %478 unwind label %509

478:                                              ; preds = %468
  %479 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %459, ptr noundef nonnull align 8 dereferenceable(40) %477)
          to label %480 unwind label %509

480:                                              ; preds = %478
  %481 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %479, ptr noundef @.str.3)
          to label %482 unwind label %509

482:                                              ; preds = %480
  %483 = load ptr, ptr %7, align 8, !tbaa !5
  %484 = getelementptr inbounds %class.TInfoSink, ptr %483, i32 0, i32 0
  %485 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %484, ptr noundef @.str.26)
          to label %486 unwind label %509

486:                                              ; preds = %482
  %487 = load i32, ptr %10, align 4, !tbaa !9
  %488 = invoke ptr @StageName(i32 noundef %487)
          to label %489 unwind label %509

489:                                              ; preds = %486
  %490 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %485, ptr noundef %488)
          to label %491 unwind label %509

491:                                              ; preds = %489
  %492 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %490, ptr noundef @.str.41)
          to label %493 unwind label %509

493:                                              ; preds = %491
  %494 = load ptr, ptr %9, align 8, !tbaa !5
  %495 = load ptr, ptr %494, align 8, !tbaa !13
  %496 = getelementptr inbounds ptr, ptr %495, i64 30
  %497 = load ptr, ptr %496, align 8
  %498 = invoke noundef nonnull align 8 dereferenceable(144) ptr %497(ptr noundef nonnull align 8 dereferenceable(176) %494)
          to label %499 unwind label %509

499:                                              ; preds = %493
  %500 = load ptr, ptr %498, align 8, !tbaa !13
  %501 = getelementptr inbounds ptr, ptr %500, i64 5
  %502 = load ptr, ptr %501, align 8
  %503 = invoke noundef nonnull align 8 dereferenceable(40) ptr %502(ptr noundef nonnull align 8 dereferenceable(144) %498)
          to label %504 unwind label %509

504:                                              ; preds = %499
  %505 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %492, ptr noundef nonnull align 8 dereferenceable(40) %503)
          to label %506 unwind label %509

506:                                              ; preds = %504
  %507 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %505, ptr noundef @.str.43)
          to label %508 unwind label %509

508:                                              ; preds = %506
  store i8 1, ptr %13, align 1, !tbaa !11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %36) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %36) #6
  br label %619

509:                                              ; preds = %506, %504, %499, %493, %491, %489, %486, %482, %480, %478, %468, %466, %460, %458, %456, %451, %445, %443, %441, %439, %437, %433, %429, %427, %425, %422, %418
  %510 = landingpad { ptr, i32 }
          cleanup
  %511 = extractvalue { ptr, i32 } %510, 0
  store ptr %511, ptr %30, align 8
  %512 = extractvalue { ptr, i32 } %510, 1
  store i32 %512, ptr %31, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %36) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %36) #6
  br label %738

513:                                              ; preds = %415, %412
  %514 = load i32, ptr %24, align 4, !tbaa !15
  %515 = icmp eq i32 %514, -1
  br i1 %515, label %516, label %615

516:                                              ; preds = %513
  %517 = load i32, ptr %25, align 4, !tbaa !15
  %518 = icmp sge i32 %517, 0
  br i1 %518, label %519, label %615

519:                                              ; preds = %516
  call void @llvm.lifetime.start.p0(i64 40, ptr %38) #6
  %520 = load i32, ptr %10, align 4, !tbaa !9
  %521 = call ptr @StageName(i32 noundef %520)
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #6
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %39)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %38, ptr noundef %521, ptr noundef nonnull align 8 dereferenceable(8) %39)
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #6
  %522 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(40) %38, ptr noundef @.str.39)
          to label %523 unwind label %611

523:                                              ; preds = %519
  %524 = invoke noundef i32 @_ZNK7glslang13TIntermediate8getStageEv(ptr noundef nonnull align 8 dereferenceable(1784) %92)
          to label %525 unwind label %611

525:                                              ; preds = %523
  %526 = invoke ptr @StageName(i32 noundef %524)
          to label %527 unwind label %611

527:                                              ; preds = %525
  %528 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(40) %522, ptr noundef %526)
          to label %529 unwind label %611

529:                                              ; preds = %527
  %530 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(40) %528, ptr noundef @.str.40)
          to label %531 unwind label %611

531:                                              ; preds = %529
  %532 = load ptr, ptr %7, align 8, !tbaa !5
  %533 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %38) #6
  %534 = load i32, ptr %10, align 4, !tbaa !9
  invoke void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %532, ptr noundef %533, i32 noundef %534)
          to label %535 unwind label %611

535:                                              ; preds = %531
  %536 = load ptr, ptr %7, align 8, !tbaa !5
  %537 = getelementptr inbounds %class.TInfoSink, ptr %536, i32 0, i32 0
  %538 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %537, ptr noundef @.str.26)
          to label %539 unwind label %611

539:                                              ; preds = %535
  %540 = load i32, ptr %10, align 4, !tbaa !9
  %541 = invoke ptr @StageName(i32 noundef %540)
          to label %542 unwind label %611

542:                                              ; preds = %539
  %543 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %538, ptr noundef %541)
          to label %544 unwind label %611

544:                                              ; preds = %542
  %545 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %543, ptr noundef @.str.41)
          to label %546 unwind label %611

546:                                              ; preds = %544
  %547 = load ptr, ptr %9, align 8, !tbaa !5
  %548 = load ptr, ptr %547, align 8, !tbaa !13
  %549 = getelementptr inbounds ptr, ptr %548, i64 30
  %550 = load ptr, ptr %549, align 8
  %551 = invoke noundef nonnull align 8 dereferenceable(144) ptr %550(ptr noundef nonnull align 8 dereferenceable(176) %547)
          to label %552 unwind label %611

552:                                              ; preds = %546
  %553 = load ptr, ptr %551, align 8, !tbaa !13
  %554 = getelementptr inbounds ptr, ptr %553, i64 5
  %555 = load ptr, ptr %554, align 8
  %556 = invoke noundef nonnull align 8 dereferenceable(40) ptr %555(ptr noundef nonnull align 8 dereferenceable(144) %551)
          to label %557 unwind label %611

557:                                              ; preds = %552
  %558 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %545, ptr noundef nonnull align 8 dereferenceable(40) %556)
          to label %559 unwind label %611

559:                                              ; preds = %557
  %560 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %558, ptr noundef @.str.42)
          to label %561 unwind label %611

561:                                              ; preds = %559
  %562 = load ptr, ptr %9, align 8, !tbaa !5
  %563 = load ptr, ptr %562, align 8, !tbaa !13
  %564 = getelementptr inbounds ptr, ptr %563, i64 30
  %565 = load ptr, ptr %564, align 8
  %566 = invoke noundef nonnull align 8 dereferenceable(144) ptr %565(ptr noundef nonnull align 8 dereferenceable(176) %562)
          to label %567 unwind label %611

567:                                              ; preds = %561
  %568 = invoke noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %566)
          to label %569 unwind label %611

569:                                              ; preds = %567
  %570 = load i32, ptr %25, align 4, !tbaa !15
  %571 = sext i32 %570 to i64
  %572 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %568, i64 noundef %571) #6
  %573 = getelementptr inbounds %"struct.glslang::TTypeLoc", ptr %572, i32 0, i32 0
  %574 = load ptr, ptr %573, align 8, !tbaa !21
  %575 = load ptr, ptr %574, align 8, !tbaa !13
  %576 = getelementptr inbounds ptr, ptr %575, i64 6
  %577 = load ptr, ptr %576, align 8
  %578 = invoke noundef nonnull align 8 dereferenceable(40) ptr %577(ptr noundef nonnull align 8 dereferenceable(144) %574)
          to label %579 unwind label %611

579:                                              ; preds = %569
  %580 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %560, ptr noundef nonnull align 8 dereferenceable(40) %578)
          to label %581 unwind label %611

581:                                              ; preds = %579
  %582 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %580, ptr noundef @.str.3)
          to label %583 unwind label %611

583:                                              ; preds = %581
  %584 = load ptr, ptr %7, align 8, !tbaa !5
  %585 = getelementptr inbounds %class.TInfoSink, ptr %584, i32 0, i32 0
  %586 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %585, ptr noundef @.str.26)
          to label %587 unwind label %611

587:                                              ; preds = %583
  %588 = invoke noundef i32 @_ZNK7glslang13TIntermediate8getStageEv(ptr noundef nonnull align 8 dereferenceable(1784) %92)
          to label %589 unwind label %611

589:                                              ; preds = %587
  %590 = invoke ptr @StageName(i32 noundef %588)
          to label %591 unwind label %611

591:                                              ; preds = %589
  %592 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %586, ptr noundef %590)
          to label %593 unwind label %611

593:                                              ; preds = %591
  %594 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %592, ptr noundef @.str.41)
          to label %595 unwind label %611

595:                                              ; preds = %593
  %596 = load ptr, ptr %8, align 8, !tbaa !5
  %597 = load ptr, ptr %596, align 8, !tbaa !13
  %598 = getelementptr inbounds ptr, ptr %597, i64 30
  %599 = load ptr, ptr %598, align 8
  %600 = invoke noundef nonnull align 8 dereferenceable(144) ptr %599(ptr noundef nonnull align 8 dereferenceable(176) %596)
          to label %601 unwind label %611

601:                                              ; preds = %595
  %602 = load ptr, ptr %600, align 8, !tbaa !13
  %603 = getelementptr inbounds ptr, ptr %602, i64 5
  %604 = load ptr, ptr %603, align 8
  %605 = invoke noundef nonnull align 8 dereferenceable(40) ptr %604(ptr noundef nonnull align 8 dereferenceable(144) %600)
          to label %606 unwind label %611

606:                                              ; preds = %601
  %607 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %594, ptr noundef nonnull align 8 dereferenceable(40) %605)
          to label %608 unwind label %611

608:                                              ; preds = %606
  %609 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %607, ptr noundef @.str.43)
          to label %610 unwind label %611

610:                                              ; preds = %608
  store i8 1, ptr %13, align 1, !tbaa !11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %38) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %38) #6
  br label %618

611:                                              ; preds = %608, %606, %601, %595, %593, %591, %589, %587, %583, %581, %579, %569, %567, %561, %559, %557, %552, %546, %544, %542, %539, %535, %531, %529, %527, %525, %523, %519
  %612 = landingpad { ptr, i32 }
          cleanup
  %613 = extractvalue { ptr, i32 } %612, 0
  store ptr %613, ptr %30, align 8
  %614 = extractvalue { ptr, i32 } %612, 1
  store i32 %614, ptr %31, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %38) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %38) #6
  br label %738

615:                                              ; preds = %516, %513
  %616 = load ptr, ptr %7, align 8, !tbaa !5
  %617 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %616, ptr noundef @.str.28, i32 noundef %617)
  store i8 1, ptr %12, align 1, !tbaa !11
  store i8 1, ptr %16, align 1, !tbaa !11
  br label %618

618:                                              ; preds = %615, %610
  br label %619

619:                                              ; preds = %618, %508
  br label %620

620:                                              ; preds = %619, %383
  br label %644

621:                                              ; preds = %269
  %622 = load i8, ptr %17, align 1, !tbaa !11, !range !17, !noundef !18
  %623 = trunc i8 %622 to i1
  br i1 %623, label %627, label %624

624:                                              ; preds = %621
  %625 = load ptr, ptr %7, align 8, !tbaa !5
  %626 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %625, ptr noundef @.str.44, i32 noundef %626)
  store i8 1, ptr %12, align 1, !tbaa !11
  store i8 1, ptr %16, align 1, !tbaa !11
  br label %643

627:                                              ; preds = %621
  %628 = load ptr, ptr %8, align 8, !tbaa !5
  %629 = load ptr, ptr %628, align 8, !tbaa !13
  %630 = getelementptr inbounds ptr, ptr %629, i64 30
  %631 = load ptr, ptr %630, align 8
  %632 = call noundef nonnull align 8 dereferenceable(144) ptr %631(ptr noundef nonnull align 8 dereferenceable(176) %628)
  %633 = load ptr, ptr %9, align 8, !tbaa !5
  %634 = load ptr, ptr %633, align 8, !tbaa !13
  %635 = getelementptr inbounds ptr, ptr %634, i64 30
  %636 = load ptr, ptr %635, align 8
  %637 = call noundef nonnull align 8 dereferenceable(144) ptr %636(ptr noundef nonnull align 8 dereferenceable(176) %633)
  %638 = call noundef zeroext i1 @_ZNK7glslang5TType18sameTypeParametersERKS0_(ptr noundef nonnull align 8 dereferenceable(144) %632, ptr noundef nonnull align 8 dereferenceable(144) %637)
  br i1 %638, label %642, label %639

639:                                              ; preds = %627
  %640 = load ptr, ptr %7, align 8, !tbaa !5
  %641 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %640, ptr noundef @.str.45, i32 noundef %641)
  store i8 1, ptr %12, align 1, !tbaa !11
  store i8 1, ptr %16, align 1, !tbaa !11
  br label %642

642:                                              ; preds = %639, %627
  br label %643

643:                                              ; preds = %642, %624
  br label %644

644:                                              ; preds = %643, %620
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #6
  %645 = load ptr, ptr %8, align 8, !tbaa !5
  %646 = load ptr, ptr %645, align 8, !tbaa !13
  %647 = getelementptr inbounds ptr, ptr %646, i64 30
  %648 = load ptr, ptr %647, align 8
  %649 = call noundef nonnull align 8 dereferenceable(144) ptr %648(ptr noundef nonnull align 8 dereferenceable(176) %645)
  %650 = load ptr, ptr %649, align 8, !tbaa !13
  %651 = getelementptr inbounds ptr, ptr %650, i64 7
  %652 = load ptr, ptr %651, align 8
  %653 = call noundef i32 %652(ptr noundef nonnull align 8 dereferenceable(144) %649)
  %654 = icmp eq i32 %653, 16
  br i1 %654, label %655, label %1004

655:                                              ; preds = %644
  %656 = load ptr, ptr %9, align 8, !tbaa !5
  %657 = load ptr, ptr %656, align 8, !tbaa !13
  %658 = getelementptr inbounds ptr, ptr %657, i64 30
  %659 = load ptr, ptr %658, align 8
  %660 = call noundef nonnull align 8 dereferenceable(144) ptr %659(ptr noundef nonnull align 8 dereferenceable(176) %656)
  %661 = load ptr, ptr %660, align 8, !tbaa !13
  %662 = getelementptr inbounds ptr, ptr %661, i64 7
  %663 = load ptr, ptr %662, align 8
  %664 = call noundef i32 %663(ptr noundef nonnull align 8 dereferenceable(144) %660)
  %665 = icmp eq i32 %664, 16
  br i1 %665, label %666, label %1004

666:                                              ; preds = %655
  %667 = load ptr, ptr %8, align 8, !tbaa !5
  %668 = load ptr, ptr %667, align 8, !tbaa !13
  %669 = getelementptr inbounds ptr, ptr %668, i64 30
  %670 = load ptr, ptr %669, align 8
  %671 = call noundef nonnull align 8 dereferenceable(144) ptr %670(ptr noundef nonnull align 8 dereferenceable(176) %667)
  %672 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %671)
  %673 = icmp ne ptr %672, null
  br i1 %673, label %674, label %1004

674:                                              ; preds = %666
  %675 = load ptr, ptr %9, align 8, !tbaa !5
  %676 = load ptr, ptr %675, align 8, !tbaa !13
  %677 = getelementptr inbounds ptr, ptr %676, i64 30
  %678 = load ptr, ptr %677, align 8
  %679 = call noundef nonnull align 8 dereferenceable(144) ptr %678(ptr noundef nonnull align 8 dereferenceable(176) %675)
  %680 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %679)
  %681 = icmp ne ptr %680, null
  br i1 %681, label %682, label %1004

682:                                              ; preds = %674
  %683 = load ptr, ptr %8, align 8, !tbaa !5
  %684 = load ptr, ptr %683, align 8, !tbaa !13
  %685 = getelementptr inbounds ptr, ptr %684, i64 30
  %686 = load ptr, ptr %685, align 8
  %687 = call noundef nonnull align 8 dereferenceable(144) ptr %686(ptr noundef nonnull align 8 dereferenceable(176) %683)
  %688 = load ptr, ptr %9, align 8, !tbaa !5
  %689 = load ptr, ptr %688, align 8, !tbaa !13
  %690 = getelementptr inbounds ptr, ptr %689, i64 30
  %691 = load ptr, ptr %690, align 8
  %692 = call noundef nonnull align 8 dereferenceable(144) ptr %691(ptr noundef nonnull align 8 dereferenceable(176) %688)
  %693 = call noundef zeroext i1 @_ZNK7glslang5TType14sameStructTypeERKS0_PiS3_(ptr noundef nonnull align 8 dereferenceable(144) %687, ptr noundef nonnull align 8 dereferenceable(144) %692, ptr noundef null, ptr noundef null)
  br i1 %693, label %694, label %1004

694:                                              ; preds = %682
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #6
  store i32 0, ptr %40, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #6
  store i32 0, ptr %41, align 4, !tbaa !15
  br label %695

695:                                              ; preds = %997, %755, %735, %694
  %696 = load i32, ptr %40, align 4, !tbaa !15
  %697 = zext i32 %696 to i64
  %698 = load ptr, ptr %8, align 8, !tbaa !5
  %699 = load ptr, ptr %698, align 8, !tbaa !13
  %700 = getelementptr inbounds ptr, ptr %699, i64 30
  %701 = load ptr, ptr %700, align 8
  %702 = call noundef nonnull align 8 dereferenceable(144) ptr %701(ptr noundef nonnull align 8 dereferenceable(176) %698)
  %703 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %702)
  %704 = call noundef i64 @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %703) #6
  %705 = icmp ult i64 %697, %704
  br i1 %705, label %706, label %717

706:                                              ; preds = %695
  %707 = load i32, ptr %41, align 4, !tbaa !15
  %708 = zext i32 %707 to i64
  %709 = load ptr, ptr %9, align 8, !tbaa !5
  %710 = load ptr, ptr %709, align 8, !tbaa !13
  %711 = getelementptr inbounds ptr, ptr %710, i64 30
  %712 = load ptr, ptr %711, align 8
  %713 = call noundef nonnull align 8 dereferenceable(144) ptr %712(ptr noundef nonnull align 8 dereferenceable(176) %709)
  %714 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %713)
  %715 = call noundef i64 @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %714) #6
  %716 = icmp ult i64 %708, %715
  br label %717

717:                                              ; preds = %706, %695
  %718 = phi i1 [ false, %695 ], [ %716, %706 ]
  br i1 %718, label %719, label %1003

719:                                              ; preds = %717
  %720 = load ptr, ptr %8, align 8, !tbaa !5
  %721 = load ptr, ptr %720, align 8, !tbaa !13
  %722 = getelementptr inbounds ptr, ptr %721, i64 30
  %723 = load ptr, ptr %722, align 8
  %724 = call noundef nonnull align 8 dereferenceable(144) ptr %723(ptr noundef nonnull align 8 dereferenceable(176) %720)
  %725 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %724)
  %726 = load i32, ptr %40, align 4, !tbaa !15
  %727 = zext i32 %726 to i64
  %728 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %725, i64 noundef %727) #6
  %729 = getelementptr inbounds %"struct.glslang::TTypeLoc", ptr %728, i32 0, i32 0
  %730 = load ptr, ptr %729, align 8, !tbaa !21
  %731 = load ptr, ptr %730, align 8, !tbaa !13
  %732 = getelementptr inbounds ptr, ptr %731, i64 3
  %733 = load ptr, ptr %732, align 8
  %734 = call noundef zeroext i1 %733(ptr noundef nonnull align 8 dereferenceable(144) %730)
  br i1 %734, label %735, label %739

735:                                              ; preds = %719
  %736 = load i32, ptr %40, align 4, !tbaa !15
  %737 = add i32 %736, 1
  store i32 %737, ptr %40, align 4, !tbaa !15
  br label %695, !llvm.loop !24

738:                                              ; preds = %611, %509, %411, %397
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #6
  br label %2371

739:                                              ; preds = %719
  %740 = load ptr, ptr %9, align 8, !tbaa !5
  %741 = load ptr, ptr %740, align 8, !tbaa !13
  %742 = getelementptr inbounds ptr, ptr %741, i64 30
  %743 = load ptr, ptr %742, align 8
  %744 = call noundef nonnull align 8 dereferenceable(144) ptr %743(ptr noundef nonnull align 8 dereferenceable(176) %740)
  %745 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %744)
  %746 = load i32, ptr %41, align 4, !tbaa !15
  %747 = zext i32 %746 to i64
  %748 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %745, i64 noundef %747) #6
  %749 = getelementptr inbounds %"struct.glslang::TTypeLoc", ptr %748, i32 0, i32 0
  %750 = load ptr, ptr %749, align 8, !tbaa !21
  %751 = load ptr, ptr %750, align 8, !tbaa !13
  %752 = getelementptr inbounds ptr, ptr %751, i64 3
  %753 = load ptr, ptr %752, align 8
  %754 = call noundef zeroext i1 %753(ptr noundef nonnull align 8 dereferenceable(144) %750)
  br i1 %754, label %755, label %758

755:                                              ; preds = %739
  %756 = load i32, ptr %41, align 4, !tbaa !15
  %757 = add i32 %756, 1
  store i32 %757, ptr %41, align 4, !tbaa !15
  br label %695, !llvm.loop !24

758:                                              ; preds = %739
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #6
  %759 = load ptr, ptr %8, align 8, !tbaa !5
  %760 = load ptr, ptr %759, align 8, !tbaa !13
  %761 = getelementptr inbounds ptr, ptr %760, i64 30
  %762 = load ptr, ptr %761, align 8
  %763 = call noundef nonnull align 8 dereferenceable(144) ptr %762(ptr noundef nonnull align 8 dereferenceable(176) %759)
  %764 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %763)
  %765 = load i32, ptr %40, align 4, !tbaa !15
  %766 = zext i32 %765 to i64
  %767 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %764, i64 noundef %766) #6
  %768 = getelementptr inbounds %"struct.glslang::TTypeLoc", ptr %767, i32 0, i32 0
  %769 = load ptr, ptr %768, align 8, !tbaa !21
  %770 = load ptr, ptr %769, align 8, !tbaa !13
  %771 = getelementptr inbounds ptr, ptr %770, i64 10
  %772 = load ptr, ptr %771, align 8
  %773 = call noundef nonnull align 8 dereferenceable(72) ptr %772(ptr noundef nonnull align 8 dereferenceable(144) %769)
  store ptr %773, ptr %42, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #6
  %774 = load ptr, ptr %9, align 8, !tbaa !5
  %775 = load ptr, ptr %774, align 8, !tbaa !13
  %776 = getelementptr inbounds ptr, ptr %775, i64 30
  %777 = load ptr, ptr %776, align 8
  %778 = call noundef nonnull align 8 dereferenceable(144) ptr %777(ptr noundef nonnull align 8 dereferenceable(176) %774)
  %779 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %778)
  %780 = load i32, ptr %41, align 4, !tbaa !15
  %781 = zext i32 %780 to i64
  %782 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %779, i64 noundef %781) #6
  %783 = getelementptr inbounds %"struct.glslang::TTypeLoc", ptr %782, i32 0, i32 0
  %784 = load ptr, ptr %783, align 8, !tbaa !21
  %785 = load ptr, ptr %784, align 8, !tbaa !13
  %786 = getelementptr inbounds ptr, ptr %785, i64 10
  %787 = load ptr, ptr %786, align 8
  %788 = call noundef nonnull align 8 dereferenceable(72) ptr %787(ptr noundef nonnull align 8 dereferenceable(144) %784)
  store ptr %788, ptr %43, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %44) #6
  store i8 0, ptr %44, align 1, !tbaa !11
  %789 = load ptr, ptr %42, align 8, !tbaa !5
  %790 = getelementptr inbounds %"class.glslang::TQualifier", ptr %789, i32 0, i32 1
  %791 = load i64, ptr %790, align 8
  %792 = lshr i64 %791, 59
  %793 = and i64 %792, 7
  %794 = trunc i64 %793 to i32
  %795 = load ptr, ptr %43, align 8, !tbaa !5
  %796 = getelementptr inbounds %"class.glslang::TQualifier", ptr %795, i32 0, i32 1
  %797 = load i64, ptr %796, align 8
  %798 = lshr i64 %797, 59
  %799 = and i64 %798, 7
  %800 = trunc i64 %799 to i32
  %801 = icmp ne i32 %794, %800
  br i1 %801, label %802, label %805

802:                                              ; preds = %758
  %803 = load ptr, ptr %7, align 8, !tbaa !5
  %804 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %803, ptr noundef @.str.46, i32 noundef %804)
  store i8 1, ptr %44, align 1, !tbaa !11
  br label %805

805:                                              ; preds = %802, %758
  %806 = load ptr, ptr %42, align 8, !tbaa !5
  %807 = getelementptr inbounds %"class.glslang::TQualifier", ptr %806, i32 0, i32 4
  %808 = load i32, ptr %807, align 4, !tbaa !25
  %809 = load ptr, ptr %43, align 8, !tbaa !5
  %810 = getelementptr inbounds %"class.glslang::TQualifier", ptr %809, i32 0, i32 4
  %811 = load i32, ptr %810, align 4, !tbaa !25
  %812 = icmp ne i32 %808, %811
  br i1 %812, label %813, label %816

813:                                              ; preds = %805
  %814 = load ptr, ptr %7, align 8, !tbaa !5
  %815 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %814, ptr noundef @.str.47, i32 noundef %815)
  store i8 1, ptr %44, align 1, !tbaa !11
  br label %816

816:                                              ; preds = %813, %805
  %817 = load ptr, ptr %42, align 8, !tbaa !5
  %818 = getelementptr inbounds %"class.glslang::TQualifier", ptr %817, i32 0, i32 5
  %819 = load i32, ptr %818, align 8, !tbaa !33
  %820 = load ptr, ptr %43, align 8, !tbaa !5
  %821 = getelementptr inbounds %"class.glslang::TQualifier", ptr %820, i32 0, i32 5
  %822 = load i32, ptr %821, align 8, !tbaa !33
  %823 = icmp ne i32 %819, %822
  br i1 %823, label %824, label %827

824:                                              ; preds = %816
  %825 = load ptr, ptr %7, align 8, !tbaa !5
  %826 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %825, ptr noundef @.str.48, i32 noundef %826)
  store i8 1, ptr %44, align 1, !tbaa !11
  br label %827

827:                                              ; preds = %824, %816
  %828 = load ptr, ptr %42, align 8, !tbaa !5
  %829 = getelementptr inbounds %"class.glslang::TQualifier", ptr %828, i32 0, i32 6
  %830 = load i64, ptr %829, align 4
  %831 = and i64 %830, 4095
  %832 = trunc i64 %831 to i32
  %833 = load ptr, ptr %43, align 8, !tbaa !5
  %834 = getelementptr inbounds %"class.glslang::TQualifier", ptr %833, i32 0, i32 6
  %835 = load i64, ptr %834, align 4
  %836 = and i64 %835, 4095
  %837 = trunc i64 %836 to i32
  %838 = icmp ne i32 %832, %837
  br i1 %838, label %839, label %842

839:                                              ; preds = %827
  %840 = load ptr, ptr %7, align 8, !tbaa !5
  %841 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %840, ptr noundef @.str.49, i32 noundef %841)
  store i8 1, ptr %44, align 1, !tbaa !11
  br label %842

842:                                              ; preds = %839, %827
  %843 = load ptr, ptr %42, align 8, !tbaa !5
  %844 = getelementptr inbounds %"class.glslang::TQualifier", ptr %843, i32 0, i32 6
  %845 = load i64, ptr %844, align 4
  %846 = lshr i64 %845, 12
  %847 = and i64 %846, 7
  %848 = trunc i64 %847 to i32
  %849 = load ptr, ptr %43, align 8, !tbaa !5
  %850 = getelementptr inbounds %"class.glslang::TQualifier", ptr %849, i32 0, i32 6
  %851 = load i64, ptr %850, align 4
  %852 = lshr i64 %851, 12
  %853 = and i64 %852, 7
  %854 = trunc i64 %853 to i32
  %855 = icmp ne i32 %848, %854
  br i1 %855, label %856, label %859

856:                                              ; preds = %842
  %857 = load ptr, ptr %7, align 8, !tbaa !5
  %858 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %857, ptr noundef @.str.50, i32 noundef %858)
  store i8 1, ptr %44, align 1, !tbaa !11
  br label %859

859:                                              ; preds = %856, %842
  %860 = load i8, ptr %44, align 1, !tbaa !11, !range !17, !noundef !18
  %861 = trunc i8 %860 to i1
  br i1 %861, label %862, label %997

862:                                              ; preds = %859
  %863 = load ptr, ptr %7, align 8, !tbaa !5
  %864 = getelementptr inbounds %class.TInfoSink, ptr %863, i32 0, i32 0
  %865 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %864, ptr noundef @.str.26)
  %866 = call noundef i32 @_ZNK7glslang13TIntermediate8getStageEv(ptr noundef nonnull align 8 dereferenceable(1784) %92)
  %867 = call ptr @StageName(i32 noundef %866)
  %868 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %865, ptr noundef %867)
  %869 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %868, ptr noundef @.str.41)
  %870 = load ptr, ptr %8, align 8, !tbaa !5
  %871 = load ptr, ptr %870, align 8, !tbaa !13
  %872 = getelementptr inbounds ptr, ptr %871, i64 30
  %873 = load ptr, ptr %872, align 8
  %874 = call noundef nonnull align 8 dereferenceable(144) ptr %873(ptr noundef nonnull align 8 dereferenceable(176) %870)
  %875 = load ptr, ptr %874, align 8, !tbaa !13
  %876 = getelementptr inbounds ptr, ptr %875, i64 5
  %877 = load ptr, ptr %876, align 8
  %878 = call noundef nonnull align 8 dereferenceable(40) ptr %877(ptr noundef nonnull align 8 dereferenceable(144) %874)
  %879 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %869, ptr noundef nonnull align 8 dereferenceable(40) %878)
  %880 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %879, ptr noundef @.str.42)
  %881 = load ptr, ptr %8, align 8, !tbaa !5
  %882 = load ptr, ptr %881, align 8, !tbaa !13
  %883 = getelementptr inbounds ptr, ptr %882, i64 30
  %884 = load ptr, ptr %883, align 8
  %885 = call noundef nonnull align 8 dereferenceable(144) ptr %884(ptr noundef nonnull align 8 dereferenceable(176) %881)
  %886 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %885)
  %887 = load i32, ptr %40, align 4, !tbaa !15
  %888 = zext i32 %887 to i64
  %889 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %886, i64 noundef %888) #6
  %890 = getelementptr inbounds %"struct.glslang::TTypeLoc", ptr %889, i32 0, i32 0
  %891 = load ptr, ptr %890, align 8, !tbaa !21
  %892 = load ptr, ptr %891, align 8, !tbaa !13
  %893 = getelementptr inbounds ptr, ptr %892, i64 6
  %894 = load ptr, ptr %893, align 8
  %895 = call noundef nonnull align 8 dereferenceable(40) ptr %894(ptr noundef nonnull align 8 dereferenceable(144) %891)
  %896 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %880, ptr noundef nonnull align 8 dereferenceable(40) %895)
  %897 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %896, ptr noundef @.str.51)
  call void @llvm.lifetime.start.p0(i64 40, ptr %45) #6
  %898 = load ptr, ptr %8, align 8, !tbaa !5
  %899 = load ptr, ptr %898, align 8, !tbaa !13
  %900 = getelementptr inbounds ptr, ptr %899, i64 30
  %901 = load ptr, ptr %900, align 8
  %902 = call noundef nonnull align 8 dereferenceable(144) ptr %901(ptr noundef nonnull align 8 dereferenceable(176) %898)
  %903 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %902)
  %904 = load i32, ptr %40, align 4, !tbaa !15
  %905 = zext i32 %904 to i64
  %906 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %903, i64 noundef %905) #6
  %907 = getelementptr inbounds %"struct.glslang::TTypeLoc", ptr %906, i32 0, i32 0
  %908 = load ptr, ptr %907, align 8, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #6
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %47)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %46, ptr noundef @.str.31, ptr noundef nonnull align 8 dereferenceable(8) %47)
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #6
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %49)
          to label %909 unwind label %969

909:                                              ; preds = %862
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %48, ptr noundef @.str.31, ptr noundef nonnull align 8 dereferenceable(8) %49)
          to label %910 unwind label %969

910:                                              ; preds = %909
  invoke void @_ZNK7glslang5TType17getCompleteStringEbbbbNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string.91") align 8 %45, ptr noundef nonnull align 8 dereferenceable(144) %908, i1 noundef zeroext true, i1 noundef zeroext true, i1 noundef zeroext false, i1 noundef zeroext false, ptr noundef %46, ptr noundef %48)
          to label %911 unwind label %973

911:                                              ; preds = %910
  %912 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %897, ptr noundef nonnull align 8 dereferenceable(40) %45)
          to label %913 unwind label %977

913:                                              ; preds = %911
  %914 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %912, ptr noundef @.str.33)
          to label %915 unwind label %977

915:                                              ; preds = %913
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %45) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %48) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %46) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %45) #6
  %916 = load ptr, ptr %7, align 8, !tbaa !5
  %917 = getelementptr inbounds %class.TInfoSink, ptr %916, i32 0, i32 0
  %918 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %917, ptr noundef @.str.26)
  %919 = load i32, ptr %10, align 4, !tbaa !9
  %920 = call ptr @StageName(i32 noundef %919)
  %921 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %918, ptr noundef %920)
  %922 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %921, ptr noundef @.str.41)
  %923 = load ptr, ptr %9, align 8, !tbaa !5
  %924 = load ptr, ptr %923, align 8, !tbaa !13
  %925 = getelementptr inbounds ptr, ptr %924, i64 30
  %926 = load ptr, ptr %925, align 8
  %927 = call noundef nonnull align 8 dereferenceable(144) ptr %926(ptr noundef nonnull align 8 dereferenceable(176) %923)
  %928 = load ptr, ptr %927, align 8, !tbaa !13
  %929 = getelementptr inbounds ptr, ptr %928, i64 5
  %930 = load ptr, ptr %929, align 8
  %931 = call noundef nonnull align 8 dereferenceable(40) ptr %930(ptr noundef nonnull align 8 dereferenceable(144) %927)
  %932 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %922, ptr noundef nonnull align 8 dereferenceable(40) %931)
  %933 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %932, ptr noundef @.str.42)
  %934 = load ptr, ptr %9, align 8, !tbaa !5
  %935 = load ptr, ptr %934, align 8, !tbaa !13
  %936 = getelementptr inbounds ptr, ptr %935, i64 30
  %937 = load ptr, ptr %936, align 8
  %938 = call noundef nonnull align 8 dereferenceable(144) ptr %937(ptr noundef nonnull align 8 dereferenceable(176) %934)
  %939 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %938)
  %940 = load i32, ptr %41, align 4, !tbaa !15
  %941 = zext i32 %940 to i64
  %942 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %939, i64 noundef %941) #6
  %943 = getelementptr inbounds %"struct.glslang::TTypeLoc", ptr %942, i32 0, i32 0
  %944 = load ptr, ptr %943, align 8, !tbaa !21
  %945 = load ptr, ptr %944, align 8, !tbaa !13
  %946 = getelementptr inbounds ptr, ptr %945, i64 6
  %947 = load ptr, ptr %946, align 8
  %948 = call noundef nonnull align 8 dereferenceable(40) ptr %947(ptr noundef nonnull align 8 dereferenceable(144) %944)
  %949 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %933, ptr noundef nonnull align 8 dereferenceable(40) %948)
  %950 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %949, ptr noundef @.str.51)
  call void @llvm.lifetime.start.p0(i64 40, ptr %50) #6
  %951 = load ptr, ptr %9, align 8, !tbaa !5
  %952 = load ptr, ptr %951, align 8, !tbaa !13
  %953 = getelementptr inbounds ptr, ptr %952, i64 30
  %954 = load ptr, ptr %953, align 8
  %955 = call noundef nonnull align 8 dereferenceable(144) ptr %954(ptr noundef nonnull align 8 dereferenceable(176) %951)
  %956 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %955)
  %957 = load i32, ptr %41, align 4, !tbaa !15
  %958 = zext i32 %957 to i64
  %959 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %956, i64 noundef %958) #6
  %960 = getelementptr inbounds %"struct.glslang::TTypeLoc", ptr %959, i32 0, i32 0
  %961 = load ptr, ptr %960, align 8, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #6
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %52)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %51, ptr noundef @.str.31, ptr noundef nonnull align 8 dereferenceable(8) %52)
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #6
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %54)
          to label %962 unwind label %983

962:                                              ; preds = %915
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %53, ptr noundef @.str.31, ptr noundef nonnull align 8 dereferenceable(8) %54)
          to label %963 unwind label %983

963:                                              ; preds = %962
  invoke void @_ZNK7glslang5TType17getCompleteStringEbbbbNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string.91") align 8 %50, ptr noundef nonnull align 8 dereferenceable(144) %961, i1 noundef zeroext true, i1 noundef zeroext true, i1 noundef zeroext false, i1 noundef zeroext false, ptr noundef %51, ptr noundef %53)
          to label %964 unwind label %987

964:                                              ; preds = %963
  %965 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %950, ptr noundef nonnull align 8 dereferenceable(40) %50)
          to label %966 unwind label %991

966:                                              ; preds = %964
  %967 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %965, ptr noundef @.str.33)
          to label %968 unwind label %991

968:                                              ; preds = %966
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %50) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %53) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %51) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %50) #6
  store i8 1, ptr %13, align 1, !tbaa !11
  br label %997

969:                                              ; preds = %909, %862
  %970 = landingpad { ptr, i32 }
          cleanup
  %971 = extractvalue { ptr, i32 } %970, 0
  store ptr %971, ptr %30, align 8
  %972 = extractvalue { ptr, i32 } %970, 1
  store i32 %972, ptr %31, align 4
  br label %982

973:                                              ; preds = %910
  %974 = landingpad { ptr, i32 }
          cleanup
  %975 = extractvalue { ptr, i32 } %974, 0
  store ptr %975, ptr %30, align 8
  %976 = extractvalue { ptr, i32 } %974, 1
  store i32 %976, ptr %31, align 4
  br label %981

977:                                              ; preds = %913, %911
  %978 = landingpad { ptr, i32 }
          cleanup
  %979 = extractvalue { ptr, i32 } %978, 0
  store ptr %979, ptr %30, align 8
  %980 = extractvalue { ptr, i32 } %978, 1
  store i32 %980, ptr %31, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %45) #6
  br label %981

981:                                              ; preds = %977, %973
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %48) #6
  br label %982

982:                                              ; preds = %981, %969
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %46) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %45) #6
  br label %1002

983:                                              ; preds = %962, %915
  %984 = landingpad { ptr, i32 }
          cleanup
  %985 = extractvalue { ptr, i32 } %984, 0
  store ptr %985, ptr %30, align 8
  %986 = extractvalue { ptr, i32 } %984, 1
  store i32 %986, ptr %31, align 4
  br label %996

987:                                              ; preds = %963
  %988 = landingpad { ptr, i32 }
          cleanup
  %989 = extractvalue { ptr, i32 } %988, 0
  store ptr %989, ptr %30, align 8
  %990 = extractvalue { ptr, i32 } %988, 1
  store i32 %990, ptr %31, align 4
  br label %995

991:                                              ; preds = %966, %964
  %992 = landingpad { ptr, i32 }
          cleanup
  %993 = extractvalue { ptr, i32 } %992, 0
  store ptr %993, ptr %30, align 8
  %994 = extractvalue { ptr, i32 } %992, 1
  store i32 %994, ptr %31, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %50) #6
  br label %995

995:                                              ; preds = %991, %987
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %53) #6
  br label %996

996:                                              ; preds = %995, %983
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %51) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %50) #6
  br label %1002

997:                                              ; preds = %968, %859
  %998 = load i32, ptr %40, align 4, !tbaa !15
  %999 = add i32 %998, 1
  store i32 %999, ptr %40, align 4, !tbaa !15
  %1000 = load i32, ptr %41, align 4, !tbaa !15
  %1001 = add i32 %1000, 1
  store i32 %1001, ptr %41, align 4, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #6
  br label %695, !llvm.loop !24

1002:                                             ; preds = %996, %982
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #6
  br label %2371

1003:                                             ; preds = %717
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #6
  br label %1004

1004:                                             ; preds = %1003, %682, %674, %666, %655, %644
  call void @llvm.lifetime.start.p0(i64 1, ptr %55) #6
  %1005 = load i8, ptr %11, align 1, !tbaa !11, !range !17, !noundef !18
  %1006 = trunc i8 %1005 to i1
  br i1 %1006, label %1007, label %1055

1007:                                             ; preds = %1004
  %1008 = load ptr, ptr %8, align 8, !tbaa !5
  %1009 = load ptr, ptr %1008, align 8, !tbaa !13
  %1010 = getelementptr inbounds ptr, ptr %1009, i64 34
  %1011 = load ptr, ptr %1010, align 8
  %1012 = call noundef nonnull align 8 dereferenceable(72) ptr %1011(ptr noundef nonnull align 8 dereferenceable(176) %1008)
  %1013 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1012, i32 0, i32 1
  %1014 = load i64, ptr %1013, align 8
  %1015 = and i64 %1014, 63
  %1016 = trunc i64 %1015 to i32
  %1017 = icmp eq i32 %1016, 3
  br i1 %1017, label %1018, label %1029

1018:                                             ; preds = %1007
  %1019 = load ptr, ptr %9, align 8, !tbaa !5
  %1020 = load ptr, ptr %1019, align 8, !tbaa !13
  %1021 = getelementptr inbounds ptr, ptr %1020, i64 34
  %1022 = load ptr, ptr %1021, align 8
  %1023 = call noundef nonnull align 8 dereferenceable(72) ptr %1022(ptr noundef nonnull align 8 dereferenceable(176) %1019)
  %1024 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1023, i32 0, i32 1
  %1025 = load i64, ptr %1024, align 8
  %1026 = and i64 %1025, 63
  %1027 = trunc i64 %1026 to i32
  %1028 = icmp eq i32 %1027, 4
  br i1 %1028, label %1053, label %1029

1029:                                             ; preds = %1018, %1007
  %1030 = load ptr, ptr %8, align 8, !tbaa !5
  %1031 = load ptr, ptr %1030, align 8, !tbaa !13
  %1032 = getelementptr inbounds ptr, ptr %1031, i64 34
  %1033 = load ptr, ptr %1032, align 8
  %1034 = call noundef nonnull align 8 dereferenceable(72) ptr %1033(ptr noundef nonnull align 8 dereferenceable(176) %1030)
  %1035 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1034, i32 0, i32 1
  %1036 = load i64, ptr %1035, align 8
  %1037 = and i64 %1036, 63
  %1038 = trunc i64 %1037 to i32
  %1039 = icmp eq i32 %1038, 4
  br i1 %1039, label %1040, label %1051

1040:                                             ; preds = %1029
  %1041 = load ptr, ptr %9, align 8, !tbaa !5
  %1042 = load ptr, ptr %1041, align 8, !tbaa !13
  %1043 = getelementptr inbounds ptr, ptr %1042, i64 34
  %1044 = load ptr, ptr %1043, align 8
  %1045 = call noundef nonnull align 8 dereferenceable(72) ptr %1044(ptr noundef nonnull align 8 dereferenceable(176) %1041)
  %1046 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1045, i32 0, i32 1
  %1047 = load i64, ptr %1046, align 8
  %1048 = and i64 %1047, 63
  %1049 = trunc i64 %1048 to i32
  %1050 = icmp eq i32 %1049, 3
  br label %1051

1051:                                             ; preds = %1040, %1029
  %1052 = phi i1 [ false, %1029 ], [ %1050, %1040 ]
  br label %1053

1053:                                             ; preds = %1051, %1018
  %1054 = phi i1 [ true, %1018 ], [ %1052, %1051 ]
  br label %1055

1055:                                             ; preds = %1053, %1004
  %1056 = phi i1 [ false, %1004 ], [ %1054, %1053 ]
  %1057 = zext i1 %1056 to i8
  store i8 %1057, ptr %55, align 1, !tbaa !11
  %1058 = load i8, ptr %55, align 1, !tbaa !11, !range !17, !noundef !18
  %1059 = trunc i8 %1058 to i1
  br i1 %1059, label %1083, label %1060

1060:                                             ; preds = %1055
  %1061 = load ptr, ptr %8, align 8, !tbaa !5
  %1062 = load ptr, ptr %1061, align 8, !tbaa !13
  %1063 = getelementptr inbounds ptr, ptr %1062, i64 34
  %1064 = load ptr, ptr %1063, align 8
  %1065 = call noundef nonnull align 8 dereferenceable(72) ptr %1064(ptr noundef nonnull align 8 dereferenceable(176) %1061)
  %1066 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1065, i32 0, i32 1
  %1067 = load i64, ptr %1066, align 8
  %1068 = and i64 %1067, 63
  %1069 = trunc i64 %1068 to i32
  %1070 = load ptr, ptr %9, align 8, !tbaa !5
  %1071 = load ptr, ptr %1070, align 8, !tbaa !13
  %1072 = getelementptr inbounds ptr, ptr %1071, i64 34
  %1073 = load ptr, ptr %1072, align 8
  %1074 = call noundef nonnull align 8 dereferenceable(72) ptr %1073(ptr noundef nonnull align 8 dereferenceable(176) %1070)
  %1075 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1074, i32 0, i32 1
  %1076 = load i64, ptr %1075, align 8
  %1077 = and i64 %1076, 63
  %1078 = trunc i64 %1077 to i32
  %1079 = icmp ne i32 %1069, %1078
  br i1 %1079, label %1080, label %1083

1080:                                             ; preds = %1060
  %1081 = load ptr, ptr %7, align 8, !tbaa !5
  %1082 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %1081, ptr noundef @.str.52, i32 noundef %1082)
  store i8 1, ptr %12, align 1, !tbaa !11
  store i8 1, ptr %14, align 1, !tbaa !11
  br label %1083

1083:                                             ; preds = %1080, %1060, %1055
  %1084 = load ptr, ptr %8, align 8, !tbaa !5
  %1085 = load ptr, ptr %1084, align 8, !tbaa !13
  %1086 = getelementptr inbounds ptr, ptr %1085, i64 34
  %1087 = load ptr, ptr %1086, align 8
  %1088 = call noundef nonnull align 8 dereferenceable(72) ptr %1087(ptr noundef nonnull align 8 dereferenceable(176) %1084)
  %1089 = call noundef zeroext i1 @_ZNK7glslang10TQualifier17isUniformOrBufferEv(ptr noundef nonnull align 8 dereferenceable(72) %1088)
  br i1 %1089, label %1090, label %1109

1090:                                             ; preds = %1083
  %1091 = load ptr, ptr %8, align 8, !tbaa !5
  %1092 = load ptr, ptr %1091, align 8, !tbaa !13
  %1093 = getelementptr inbounds ptr, ptr %1092, i64 50
  %1094 = load ptr, ptr %1093, align 8
  %1095 = call noundef nonnull align 8 dereferenceable(40) ptr %1094(ptr noundef nonnull align 8 dereferenceable(256) %1091)
  %1096 = call noundef zeroext i1 @_ZN7glslang11IsAnonymousERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(40) %1095)
  %1097 = zext i1 %1096 to i32
  %1098 = load ptr, ptr %9, align 8, !tbaa !5
  %1099 = load ptr, ptr %1098, align 8, !tbaa !13
  %1100 = getelementptr inbounds ptr, ptr %1099, i64 50
  %1101 = load ptr, ptr %1100, align 8
  %1102 = call noundef nonnull align 8 dereferenceable(40) ptr %1101(ptr noundef nonnull align 8 dereferenceable(256) %1098)
  %1103 = call noundef zeroext i1 @_ZN7glslang11IsAnonymousERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(40) %1102)
  %1104 = zext i1 %1103 to i32
  %1105 = icmp ne i32 %1097, %1104
  br i1 %1105, label %1106, label %1109

1106:                                             ; preds = %1090
  %1107 = load ptr, ptr %7, align 8, !tbaa !5
  %1108 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %1107, ptr noundef @.str.53, i32 noundef %1108)
  store i8 1, ptr %12, align 1, !tbaa !11
  br label %1109

1109:                                             ; preds = %1106, %1090, %1083
  %1110 = load ptr, ptr %8, align 8, !tbaa !5
  %1111 = load ptr, ptr %1110, align 8, !tbaa !13
  %1112 = getelementptr inbounds ptr, ptr %1111, i64 34
  %1113 = load ptr, ptr %1112, align 8
  %1114 = call noundef nonnull align 8 dereferenceable(72) ptr %1113(ptr noundef nonnull align 8 dereferenceable(176) %1110)
  %1115 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1114, i32 0, i32 1
  %1116 = load i64, ptr %1115, align 8
  %1117 = and i64 %1116, 63
  %1118 = trunc i64 %1117 to i32
  %1119 = load ptr, ptr %9, align 8, !tbaa !5
  %1120 = load ptr, ptr %1119, align 8, !tbaa !13
  %1121 = getelementptr inbounds ptr, ptr %1120, i64 34
  %1122 = load ptr, ptr %1121, align 8
  %1123 = call noundef nonnull align 8 dereferenceable(72) ptr %1122(ptr noundef nonnull align 8 dereferenceable(176) %1119)
  %1124 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1123, i32 0, i32 1
  %1125 = load i64, ptr %1124, align 8
  %1126 = and i64 %1125, 63
  %1127 = trunc i64 %1126 to i32
  %1128 = icmp eq i32 %1118, %1127
  br i1 %1128, label %1129, label %1167

1129:                                             ; preds = %1109
  %1130 = load ptr, ptr %8, align 8, !tbaa !5
  %1131 = load ptr, ptr %1130, align 8, !tbaa !13
  %1132 = getelementptr inbounds ptr, ptr %1131, i64 50
  %1133 = load ptr, ptr %1132, align 8
  %1134 = call noundef nonnull align 8 dereferenceable(40) ptr %1133(ptr noundef nonnull align 8 dereferenceable(256) %1130)
  %1135 = call noundef zeroext i1 @_ZN7glslang11IsAnonymousERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(40) %1134)
  %1136 = zext i1 %1135 to i32
  %1137 = load ptr, ptr %9, align 8, !tbaa !5
  %1138 = load ptr, ptr %1137, align 8, !tbaa !13
  %1139 = getelementptr inbounds ptr, ptr %1138, i64 50
  %1140 = load ptr, ptr %1139, align 8
  %1141 = call noundef nonnull align 8 dereferenceable(40) ptr %1140(ptr noundef nonnull align 8 dereferenceable(256) %1137)
  %1142 = call noundef zeroext i1 @_ZN7glslang11IsAnonymousERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(40) %1141)
  %1143 = zext i1 %1142 to i32
  %1144 = icmp ne i32 %1136, %1143
  br i1 %1144, label %1164, label %1145

1145:                                             ; preds = %1129
  %1146 = load ptr, ptr %8, align 8, !tbaa !5
  %1147 = load ptr, ptr %1146, align 8, !tbaa !13
  %1148 = getelementptr inbounds ptr, ptr %1147, i64 50
  %1149 = load ptr, ptr %1148, align 8
  %1150 = call noundef nonnull align 8 dereferenceable(40) ptr %1149(ptr noundef nonnull align 8 dereferenceable(256) %1146)
  %1151 = call noundef zeroext i1 @_ZN7glslang11IsAnonymousERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(40) %1150)
  br i1 %1151, label %1167, label %1152

1152:                                             ; preds = %1145
  %1153 = load ptr, ptr %8, align 8, !tbaa !5
  %1154 = load ptr, ptr %1153, align 8, !tbaa !13
  %1155 = getelementptr inbounds ptr, ptr %1154, i64 50
  %1156 = load ptr, ptr %1155, align 8
  %1157 = call noundef nonnull align 8 dereferenceable(40) ptr %1156(ptr noundef nonnull align 8 dereferenceable(256) %1153)
  %1158 = load ptr, ptr %9, align 8, !tbaa !5
  %1159 = load ptr, ptr %1158, align 8, !tbaa !13
  %1160 = getelementptr inbounds ptr, ptr %1159, i64 50
  %1161 = load ptr, ptr %1160, align 8
  %1162 = call noundef nonnull align 8 dereferenceable(40) ptr %1161(ptr noundef nonnull align 8 dereferenceable(256) %1158)
  %1163 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESC_(ptr noundef nonnull align 8 dereferenceable(40) %1157, ptr noundef nonnull align 8 dereferenceable(40) %1162) #6
  br i1 %1163, label %1164, label %1167

1164:                                             ; preds = %1152, %1129
  %1165 = load ptr, ptr %7, align 8, !tbaa !5
  %1166 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate4warnER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %1165, ptr noundef @.str.54, i32 noundef %1166)
  store i8 1, ptr %12, align 1, !tbaa !11
  br label %1167

1167:                                             ; preds = %1164, %1152, %1145, %1109
  %1168 = load i8, ptr %55, align 1, !tbaa !11, !range !17, !noundef !18
  %1169 = trunc i8 %1168 to i1
  br i1 %1169, label %1195, label %1170

1170:                                             ; preds = %1167
  %1171 = load ptr, ptr %8, align 8, !tbaa !5
  %1172 = load ptr, ptr %1171, align 8, !tbaa !13
  %1173 = getelementptr inbounds ptr, ptr %1172, i64 34
  %1174 = load ptr, ptr %1173, align 8
  %1175 = call noundef nonnull align 8 dereferenceable(72) ptr %1174(ptr noundef nonnull align 8 dereferenceable(176) %1171)
  %1176 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1175, i32 0, i32 1
  %1177 = load i64, ptr %1176, align 8
  %1178 = lshr i64 %1177, 24
  %1179 = and i64 %1178, 7
  %1180 = trunc i64 %1179 to i32
  %1181 = load ptr, ptr %9, align 8, !tbaa !5
  %1182 = load ptr, ptr %1181, align 8, !tbaa !13
  %1183 = getelementptr inbounds ptr, ptr %1182, i64 34
  %1184 = load ptr, ptr %1183, align 8
  %1185 = call noundef nonnull align 8 dereferenceable(72) ptr %1184(ptr noundef nonnull align 8 dereferenceable(176) %1181)
  %1186 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1185, i32 0, i32 1
  %1187 = load i64, ptr %1186, align 8
  %1188 = lshr i64 %1187, 24
  %1189 = and i64 %1188, 7
  %1190 = trunc i64 %1189 to i32
  %1191 = icmp ne i32 %1180, %1190
  br i1 %1191, label %1192, label %1195

1192:                                             ; preds = %1170
  %1193 = load ptr, ptr %7, align 8, !tbaa !5
  %1194 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %1193, ptr noundef @.str.55, i32 noundef %1194)
  store i8 1, ptr %12, align 1, !tbaa !11
  store i8 1, ptr %15, align 1, !tbaa !11
  br label %1195

1195:                                             ; preds = %1192, %1170, %1167
  %1196 = load i8, ptr %11, align 1, !tbaa !11, !range !17, !noundef !18
  %1197 = trunc i8 %1196 to i1
  br i1 %1197, label %1225, label %1198

1198:                                             ; preds = %1195
  %1199 = load ptr, ptr %8, align 8, !tbaa !5
  %1200 = load ptr, ptr %1199, align 8, !tbaa !13
  %1201 = getelementptr inbounds ptr, ptr %1200, i64 34
  %1202 = load ptr, ptr %1201, align 8
  %1203 = call noundef nonnull align 8 dereferenceable(72) ptr %1202(ptr noundef nonnull align 8 dereferenceable(176) %1199)
  %1204 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1203, i32 0, i32 1
  %1205 = load i64, ptr %1204, align 8
  %1206 = lshr i64 %1205, 27
  %1207 = and i64 %1206, 1
  %1208 = trunc i64 %1207 to i1
  %1209 = zext i1 %1208 to i32
  %1210 = load ptr, ptr %9, align 8, !tbaa !5
  %1211 = load ptr, ptr %1210, align 8, !tbaa !13
  %1212 = getelementptr inbounds ptr, ptr %1211, i64 34
  %1213 = load ptr, ptr %1212, align 8
  %1214 = call noundef nonnull align 8 dereferenceable(72) ptr %1213(ptr noundef nonnull align 8 dereferenceable(176) %1210)
  %1215 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1214, i32 0, i32 1
  %1216 = load i64, ptr %1215, align 8
  %1217 = lshr i64 %1216, 27
  %1218 = and i64 %1217, 1
  %1219 = trunc i64 %1218 to i1
  %1220 = zext i1 %1219 to i32
  %1221 = icmp ne i32 %1209, %1220
  br i1 %1221, label %1222, label %1225

1222:                                             ; preds = %1198
  %1223 = load ptr, ptr %7, align 8, !tbaa !5
  %1224 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %1223, ptr noundef @.str.56, i32 noundef %1224)
  store i8 1, ptr %12, align 1, !tbaa !11
  store i8 1, ptr %14, align 1, !tbaa !11
  br label %1225

1225:                                             ; preds = %1222, %1198, %1195
  %1226 = load i8, ptr %11, align 1, !tbaa !11, !range !17, !noundef !18
  %1227 = trunc i8 %1226 to i1
  br i1 %1227, label %1247, label %1228

1228:                                             ; preds = %1225
  %1229 = load ptr, ptr %8, align 8, !tbaa !5
  %1230 = load ptr, ptr %1229, align 8, !tbaa !13
  %1231 = getelementptr inbounds ptr, ptr %1230, i64 34
  %1232 = load ptr, ptr %1231, align 8
  %1233 = call noundef nonnull align 8 dereferenceable(72) ptr %1232(ptr noundef nonnull align 8 dereferenceable(176) %1229)
  %1234 = call noundef zeroext i1 @_ZNK7glslang10TQualifier15isNoContractionEv(ptr noundef nonnull align 8 dereferenceable(72) %1233)
  %1235 = zext i1 %1234 to i32
  %1236 = load ptr, ptr %9, align 8, !tbaa !5
  %1237 = load ptr, ptr %1236, align 8, !tbaa !13
  %1238 = getelementptr inbounds ptr, ptr %1237, i64 34
  %1239 = load ptr, ptr %1238, align 8
  %1240 = call noundef nonnull align 8 dereferenceable(72) ptr %1239(ptr noundef nonnull align 8 dereferenceable(176) %1236)
  %1241 = call noundef zeroext i1 @_ZNK7glslang10TQualifier15isNoContractionEv(ptr noundef nonnull align 8 dereferenceable(72) %1240)
  %1242 = zext i1 %1241 to i32
  %1243 = icmp ne i32 %1235, %1242
  br i1 %1243, label %1244, label %1247

1244:                                             ; preds = %1228
  %1245 = load ptr, ptr %7, align 8, !tbaa !5
  %1246 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %1245, ptr noundef @.str.57, i32 noundef %1246)
  store i8 1, ptr %12, align 1, !tbaa !11
  store i8 1, ptr %15, align 1, !tbaa !11
  br label %1247

1247:                                             ; preds = %1244, %1228, %1225
  %1248 = load i8, ptr %11, align 1, !tbaa !11, !range !17, !noundef !18
  %1249 = trunc i8 %1248 to i1
  br i1 %1249, label %1373, label %1250

1250:                                             ; preds = %1247
  %1251 = load ptr, ptr %8, align 8, !tbaa !5
  %1252 = load ptr, ptr %1251, align 8, !tbaa !13
  %1253 = getelementptr inbounds ptr, ptr %1252, i64 34
  %1254 = load ptr, ptr %1253, align 8
  %1255 = call noundef nonnull align 8 dereferenceable(72) ptr %1254(ptr noundef nonnull align 8 dereferenceable(176) %1251)
  %1256 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1255, i32 0, i32 1
  %1257 = load i64, ptr %1256, align 8
  %1258 = lshr i64 %1257, 28
  %1259 = and i64 %1258, 1
  %1260 = trunc i64 %1259 to i1
  %1261 = zext i1 %1260 to i32
  %1262 = load ptr, ptr %9, align 8, !tbaa !5
  %1263 = load ptr, ptr %1262, align 8, !tbaa !13
  %1264 = getelementptr inbounds ptr, ptr %1263, i64 34
  %1265 = load ptr, ptr %1264, align 8
  %1266 = call noundef nonnull align 8 dereferenceable(72) ptr %1265(ptr noundef nonnull align 8 dereferenceable(176) %1262)
  %1267 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1266, i32 0, i32 1
  %1268 = load i64, ptr %1267, align 8
  %1269 = lshr i64 %1268, 28
  %1270 = and i64 %1269, 1
  %1271 = trunc i64 %1270 to i1
  %1272 = zext i1 %1271 to i32
  %1273 = icmp ne i32 %1261, %1272
  br i1 %1273, label %1370, label %1274

1274:                                             ; preds = %1250
  %1275 = load ptr, ptr %8, align 8, !tbaa !5
  %1276 = load ptr, ptr %1275, align 8, !tbaa !13
  %1277 = getelementptr inbounds ptr, ptr %1276, i64 34
  %1278 = load ptr, ptr %1277, align 8
  %1279 = call noundef nonnull align 8 dereferenceable(72) ptr %1278(ptr noundef nonnull align 8 dereferenceable(176) %1275)
  %1280 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1279, i32 0, i32 1
  %1281 = load i64, ptr %1280, align 8
  %1282 = lshr i64 %1281, 29
  %1283 = and i64 %1282, 1
  %1284 = trunc i64 %1283 to i1
  %1285 = zext i1 %1284 to i32
  %1286 = load ptr, ptr %9, align 8, !tbaa !5
  %1287 = load ptr, ptr %1286, align 8, !tbaa !13
  %1288 = getelementptr inbounds ptr, ptr %1287, i64 34
  %1289 = load ptr, ptr %1288, align 8
  %1290 = call noundef nonnull align 8 dereferenceable(72) ptr %1289(ptr noundef nonnull align 8 dereferenceable(176) %1286)
  %1291 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1290, i32 0, i32 1
  %1292 = load i64, ptr %1291, align 8
  %1293 = lshr i64 %1292, 29
  %1294 = and i64 %1293, 1
  %1295 = trunc i64 %1294 to i1
  %1296 = zext i1 %1295 to i32
  %1297 = icmp ne i32 %1285, %1296
  br i1 %1297, label %1370, label %1298

1298:                                             ; preds = %1274
  %1299 = load ptr, ptr %8, align 8, !tbaa !5
  %1300 = load ptr, ptr %1299, align 8, !tbaa !13
  %1301 = getelementptr inbounds ptr, ptr %1300, i64 34
  %1302 = load ptr, ptr %1301, align 8
  %1303 = call noundef nonnull align 8 dereferenceable(72) ptr %1302(ptr noundef nonnull align 8 dereferenceable(176) %1299)
  %1304 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1303, i32 0, i32 1
  %1305 = load i64, ptr %1304, align 8
  %1306 = lshr i64 %1305, 30
  %1307 = and i64 %1306, 1
  %1308 = trunc i64 %1307 to i1
  %1309 = zext i1 %1308 to i32
  %1310 = load ptr, ptr %9, align 8, !tbaa !5
  %1311 = load ptr, ptr %1310, align 8, !tbaa !13
  %1312 = getelementptr inbounds ptr, ptr %1311, i64 34
  %1313 = load ptr, ptr %1312, align 8
  %1314 = call noundef nonnull align 8 dereferenceable(72) ptr %1313(ptr noundef nonnull align 8 dereferenceable(176) %1310)
  %1315 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1314, i32 0, i32 1
  %1316 = load i64, ptr %1315, align 8
  %1317 = lshr i64 %1316, 30
  %1318 = and i64 %1317, 1
  %1319 = trunc i64 %1318 to i1
  %1320 = zext i1 %1319 to i32
  %1321 = icmp ne i32 %1309, %1320
  br i1 %1321, label %1370, label %1322

1322:                                             ; preds = %1298
  %1323 = load ptr, ptr %8, align 8, !tbaa !5
  %1324 = load ptr, ptr %1323, align 8, !tbaa !13
  %1325 = getelementptr inbounds ptr, ptr %1324, i64 34
  %1326 = load ptr, ptr %1325, align 8
  %1327 = call noundef nonnull align 8 dereferenceable(72) ptr %1326(ptr noundef nonnull align 8 dereferenceable(176) %1323)
  %1328 = call noundef zeroext i1 @_ZNK7glslang10TQualifier8isSampleEv(ptr noundef nonnull align 8 dereferenceable(72) %1327)
  %1329 = zext i1 %1328 to i32
  %1330 = load ptr, ptr %9, align 8, !tbaa !5
  %1331 = load ptr, ptr %1330, align 8, !tbaa !13
  %1332 = getelementptr inbounds ptr, ptr %1331, i64 34
  %1333 = load ptr, ptr %1332, align 8
  %1334 = call noundef nonnull align 8 dereferenceable(72) ptr %1333(ptr noundef nonnull align 8 dereferenceable(176) %1330)
  %1335 = call noundef zeroext i1 @_ZNK7glslang10TQualifier8isSampleEv(ptr noundef nonnull align 8 dereferenceable(72) %1334)
  %1336 = zext i1 %1335 to i32
  %1337 = icmp ne i32 %1329, %1336
  br i1 %1337, label %1370, label %1338

1338:                                             ; preds = %1322
  %1339 = load ptr, ptr %8, align 8, !tbaa !5
  %1340 = load ptr, ptr %1339, align 8, !tbaa !13
  %1341 = getelementptr inbounds ptr, ptr %1340, i64 34
  %1342 = load ptr, ptr %1341, align 8
  %1343 = call noundef nonnull align 8 dereferenceable(72) ptr %1342(ptr noundef nonnull align 8 dereferenceable(176) %1339)
  %1344 = call noundef zeroext i1 @_ZNK7glslang10TQualifier7isPatchEv(ptr noundef nonnull align 8 dereferenceable(72) %1343)
  %1345 = zext i1 %1344 to i32
  %1346 = load ptr, ptr %9, align 8, !tbaa !5
  %1347 = load ptr, ptr %1346, align 8, !tbaa !13
  %1348 = getelementptr inbounds ptr, ptr %1347, i64 34
  %1349 = load ptr, ptr %1348, align 8
  %1350 = call noundef nonnull align 8 dereferenceable(72) ptr %1349(ptr noundef nonnull align 8 dereferenceable(176) %1346)
  %1351 = call noundef zeroext i1 @_ZNK7glslang10TQualifier7isPatchEv(ptr noundef nonnull align 8 dereferenceable(72) %1350)
  %1352 = zext i1 %1351 to i32
  %1353 = icmp ne i32 %1345, %1352
  br i1 %1353, label %1370, label %1354

1354:                                             ; preds = %1338
  %1355 = load ptr, ptr %8, align 8, !tbaa !5
  %1356 = load ptr, ptr %1355, align 8, !tbaa !13
  %1357 = getelementptr inbounds ptr, ptr %1356, i64 34
  %1358 = load ptr, ptr %1357, align 8
  %1359 = call noundef nonnull align 8 dereferenceable(72) ptr %1358(ptr noundef nonnull align 8 dereferenceable(176) %1355)
  %1360 = call noundef zeroext i1 @_ZNK7glslang10TQualifier16isNonPerspectiveEv(ptr noundef nonnull align 8 dereferenceable(72) %1359)
  %1361 = zext i1 %1360 to i32
  %1362 = load ptr, ptr %9, align 8, !tbaa !5
  %1363 = load ptr, ptr %1362, align 8, !tbaa !13
  %1364 = getelementptr inbounds ptr, ptr %1363, i64 34
  %1365 = load ptr, ptr %1364, align 8
  %1366 = call noundef nonnull align 8 dereferenceable(72) ptr %1365(ptr noundef nonnull align 8 dereferenceable(176) %1362)
  %1367 = call noundef zeroext i1 @_ZNK7glslang10TQualifier16isNonPerspectiveEv(ptr noundef nonnull align 8 dereferenceable(72) %1366)
  %1368 = zext i1 %1367 to i32
  %1369 = icmp ne i32 %1361, %1368
  br i1 %1369, label %1370, label %1373

1370:                                             ; preds = %1354, %1338, %1322, %1298, %1274, %1250
  %1371 = load ptr, ptr %7, align 8, !tbaa !5
  %1372 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %1371, ptr noundef @.str.58, i32 noundef %1372)
  store i8 1, ptr %12, align 1, !tbaa !11
  store i8 1, ptr %14, align 1, !tbaa !11
  br label %1373

1373:                                             ; preds = %1370, %1354, %1247
  call void @llvm.lifetime.start.p0(i64 1, ptr %56) #6
  store i8 0, ptr %56, align 1, !tbaa !11
  %1374 = load ptr, ptr %8, align 8, !tbaa !5
  %1375 = load ptr, ptr %1374, align 8, !tbaa !13
  %1376 = getelementptr inbounds ptr, ptr %1375, i64 34
  %1377 = load ptr, ptr %1376, align 8
  %1378 = call noundef nonnull align 8 dereferenceable(72) ptr %1377(ptr noundef nonnull align 8 dereferenceable(176) %1374)
  %1379 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1378, i32 0, i32 1
  %1380 = load i64, ptr %1379, align 8
  %1381 = lshr i64 %1380, 48
  %1382 = and i64 %1381, 1
  %1383 = trunc i64 %1382 to i1
  %1384 = zext i1 %1383 to i32
  %1385 = load ptr, ptr %9, align 8, !tbaa !5
  %1386 = load ptr, ptr %1385, align 8, !tbaa !13
  %1387 = getelementptr inbounds ptr, ptr %1386, i64 34
  %1388 = load ptr, ptr %1387, align 8
  %1389 = call noundef nonnull align 8 dereferenceable(72) ptr %1388(ptr noundef nonnull align 8 dereferenceable(176) %1385)
  %1390 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1389, i32 0, i32 1
  %1391 = load i64, ptr %1390, align 8
  %1392 = lshr i64 %1391, 48
  %1393 = and i64 %1392, 1
  %1394 = trunc i64 %1393 to i1
  %1395 = zext i1 %1394 to i32
  %1396 = icmp ne i32 %1384, %1395
  br i1 %1396, label %1397, label %1400

1397:                                             ; preds = %1373
  %1398 = load ptr, ptr %7, align 8, !tbaa !5
  %1399 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %1398, ptr noundef @.str.59, i32 noundef %1399)
  store i8 1, ptr %56, align 1, !tbaa !11
  br label %1400

1400:                                             ; preds = %1397, %1373
  %1401 = load ptr, ptr %8, align 8, !tbaa !5
  %1402 = load ptr, ptr %1401, align 8, !tbaa !13
  %1403 = getelementptr inbounds ptr, ptr %1402, i64 34
  %1404 = load ptr, ptr %1403, align 8
  %1405 = call noundef nonnull align 8 dereferenceable(72) ptr %1404(ptr noundef nonnull align 8 dereferenceable(176) %1401)
  %1406 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1405, i32 0, i32 1
  %1407 = load i64, ptr %1406, align 8
  %1408 = lshr i64 %1407, 50
  %1409 = and i64 %1408, 1
  %1410 = trunc i64 %1409 to i1
  %1411 = zext i1 %1410 to i32
  %1412 = load ptr, ptr %9, align 8, !tbaa !5
  %1413 = load ptr, ptr %1412, align 8, !tbaa !13
  %1414 = getelementptr inbounds ptr, ptr %1413, i64 34
  %1415 = load ptr, ptr %1414, align 8
  %1416 = call noundef nonnull align 8 dereferenceable(72) ptr %1415(ptr noundef nonnull align 8 dereferenceable(176) %1412)
  %1417 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1416, i32 0, i32 1
  %1418 = load i64, ptr %1417, align 8
  %1419 = lshr i64 %1418, 50
  %1420 = and i64 %1419, 1
  %1421 = trunc i64 %1420 to i1
  %1422 = zext i1 %1421 to i32
  %1423 = icmp ne i32 %1411, %1422
  br i1 %1423, label %1424, label %1427

1424:                                             ; preds = %1400
  %1425 = load ptr, ptr %7, align 8, !tbaa !5
  %1426 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %1425, ptr noundef @.str.60, i32 noundef %1426)
  store i8 1, ptr %56, align 1, !tbaa !11
  br label %1427

1427:                                             ; preds = %1424, %1400
  %1428 = load ptr, ptr %8, align 8, !tbaa !5
  %1429 = load ptr, ptr %1428, align 8, !tbaa !13
  %1430 = getelementptr inbounds ptr, ptr %1429, i64 34
  %1431 = load ptr, ptr %1430, align 8
  %1432 = call noundef nonnull align 8 dereferenceable(72) ptr %1431(ptr noundef nonnull align 8 dereferenceable(176) %1428)
  %1433 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1432, i32 0, i32 1
  %1434 = load i64, ptr %1433, align 8
  %1435 = lshr i64 %1434, 51
  %1436 = and i64 %1435, 1
  %1437 = trunc i64 %1436 to i1
  %1438 = zext i1 %1437 to i32
  %1439 = load ptr, ptr %9, align 8, !tbaa !5
  %1440 = load ptr, ptr %1439, align 8, !tbaa !13
  %1441 = getelementptr inbounds ptr, ptr %1440, i64 34
  %1442 = load ptr, ptr %1441, align 8
  %1443 = call noundef nonnull align 8 dereferenceable(72) ptr %1442(ptr noundef nonnull align 8 dereferenceable(176) %1439)
  %1444 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1443, i32 0, i32 1
  %1445 = load i64, ptr %1444, align 8
  %1446 = lshr i64 %1445, 51
  %1447 = and i64 %1446, 1
  %1448 = trunc i64 %1447 to i1
  %1449 = zext i1 %1448 to i32
  %1450 = icmp ne i32 %1438, %1449
  br i1 %1450, label %1451, label %1454

1451:                                             ; preds = %1427
  %1452 = load ptr, ptr %7, align 8, !tbaa !5
  %1453 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %1452, ptr noundef @.str.61, i32 noundef %1453)
  store i8 1, ptr %56, align 1, !tbaa !11
  br label %1454

1454:                                             ; preds = %1451, %1427
  %1455 = load ptr, ptr %8, align 8, !tbaa !5
  %1456 = load ptr, ptr %1455, align 8, !tbaa !13
  %1457 = getelementptr inbounds ptr, ptr %1456, i64 34
  %1458 = load ptr, ptr %1457, align 8
  %1459 = call noundef nonnull align 8 dereferenceable(72) ptr %1458(ptr noundef nonnull align 8 dereferenceable(176) %1455)
  %1460 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1459, i32 0, i32 1
  %1461 = load i64, ptr %1460, align 8
  %1462 = lshr i64 %1461, 52
  %1463 = and i64 %1462, 1
  %1464 = trunc i64 %1463 to i1
  %1465 = zext i1 %1464 to i32
  %1466 = load ptr, ptr %9, align 8, !tbaa !5
  %1467 = load ptr, ptr %1466, align 8, !tbaa !13
  %1468 = getelementptr inbounds ptr, ptr %1467, i64 34
  %1469 = load ptr, ptr %1468, align 8
  %1470 = call noundef nonnull align 8 dereferenceable(72) ptr %1469(ptr noundef nonnull align 8 dereferenceable(176) %1466)
  %1471 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1470, i32 0, i32 1
  %1472 = load i64, ptr %1471, align 8
  %1473 = lshr i64 %1472, 52
  %1474 = and i64 %1473, 1
  %1475 = trunc i64 %1474 to i1
  %1476 = zext i1 %1475 to i32
  %1477 = icmp ne i32 %1465, %1476
  br i1 %1477, label %1478, label %1481

1478:                                             ; preds = %1454
  %1479 = load ptr, ptr %7, align 8, !tbaa !5
  %1480 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %1479, ptr noundef @.str.62, i32 noundef %1480)
  store i8 1, ptr %56, align 1, !tbaa !11
  br label %1481

1481:                                             ; preds = %1478, %1454
  %1482 = load ptr, ptr %8, align 8, !tbaa !5
  %1483 = load ptr, ptr %1482, align 8, !tbaa !13
  %1484 = getelementptr inbounds ptr, ptr %1483, i64 34
  %1485 = load ptr, ptr %1484, align 8
  %1486 = call noundef nonnull align 8 dereferenceable(72) ptr %1485(ptr noundef nonnull align 8 dereferenceable(176) %1482)
  %1487 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1486, i32 0, i32 1
  %1488 = load i64, ptr %1487, align 8
  %1489 = lshr i64 %1488, 53
  %1490 = and i64 %1489, 1
  %1491 = trunc i64 %1490 to i1
  %1492 = zext i1 %1491 to i32
  %1493 = load ptr, ptr %9, align 8, !tbaa !5
  %1494 = load ptr, ptr %1493, align 8, !tbaa !13
  %1495 = getelementptr inbounds ptr, ptr %1494, i64 34
  %1496 = load ptr, ptr %1495, align 8
  %1497 = call noundef nonnull align 8 dereferenceable(72) ptr %1496(ptr noundef nonnull align 8 dereferenceable(176) %1493)
  %1498 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1497, i32 0, i32 1
  %1499 = load i64, ptr %1498, align 8
  %1500 = lshr i64 %1499, 53
  %1501 = and i64 %1500, 1
  %1502 = trunc i64 %1501 to i1
  %1503 = zext i1 %1502 to i32
  %1504 = icmp ne i32 %1492, %1503
  br i1 %1504, label %1505, label %1508

1505:                                             ; preds = %1481
  %1506 = load ptr, ptr %7, align 8, !tbaa !5
  %1507 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %1506, ptr noundef @.str.63, i32 noundef %1507)
  store i8 1, ptr %56, align 1, !tbaa !11
  br label %1508

1508:                                             ; preds = %1505, %1481
  %1509 = load ptr, ptr %8, align 8, !tbaa !5
  %1510 = load ptr, ptr %1509, align 8, !tbaa !13
  %1511 = getelementptr inbounds ptr, ptr %1510, i64 34
  %1512 = load ptr, ptr %1511, align 8
  %1513 = call noundef nonnull align 8 dereferenceable(72) ptr %1512(ptr noundef nonnull align 8 dereferenceable(176) %1509)
  %1514 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1513, i32 0, i32 1
  %1515 = load i64, ptr %1514, align 8
  %1516 = lshr i64 %1515, 54
  %1517 = and i64 %1516, 1
  %1518 = trunc i64 %1517 to i1
  %1519 = zext i1 %1518 to i32
  %1520 = load ptr, ptr %9, align 8, !tbaa !5
  %1521 = load ptr, ptr %1520, align 8, !tbaa !13
  %1522 = getelementptr inbounds ptr, ptr %1521, i64 34
  %1523 = load ptr, ptr %1522, align 8
  %1524 = call noundef nonnull align 8 dereferenceable(72) ptr %1523(ptr noundef nonnull align 8 dereferenceable(176) %1520)
  %1525 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1524, i32 0, i32 1
  %1526 = load i64, ptr %1525, align 8
  %1527 = lshr i64 %1526, 54
  %1528 = and i64 %1527, 1
  %1529 = trunc i64 %1528 to i1
  %1530 = zext i1 %1529 to i32
  %1531 = icmp ne i32 %1519, %1530
  br i1 %1531, label %1532, label %1535

1532:                                             ; preds = %1508
  %1533 = load ptr, ptr %7, align 8, !tbaa !5
  %1534 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %1533, ptr noundef @.str.64, i32 noundef %1534)
  store i8 1, ptr %56, align 1, !tbaa !11
  br label %1535

1535:                                             ; preds = %1532, %1508
  %1536 = load ptr, ptr %8, align 8, !tbaa !5
  %1537 = load ptr, ptr %1536, align 8, !tbaa !13
  %1538 = getelementptr inbounds ptr, ptr %1537, i64 34
  %1539 = load ptr, ptr %1538, align 8
  %1540 = call noundef nonnull align 8 dereferenceable(72) ptr %1539(ptr noundef nonnull align 8 dereferenceable(176) %1536)
  %1541 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1540, i32 0, i32 1
  %1542 = load i64, ptr %1541, align 8
  %1543 = lshr i64 %1542, 55
  %1544 = and i64 %1543, 1
  %1545 = trunc i64 %1544 to i1
  %1546 = zext i1 %1545 to i32
  %1547 = load ptr, ptr %9, align 8, !tbaa !5
  %1548 = load ptr, ptr %1547, align 8, !tbaa !13
  %1549 = getelementptr inbounds ptr, ptr %1548, i64 34
  %1550 = load ptr, ptr %1549, align 8
  %1551 = call noundef nonnull align 8 dereferenceable(72) ptr %1550(ptr noundef nonnull align 8 dereferenceable(176) %1547)
  %1552 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1551, i32 0, i32 1
  %1553 = load i64, ptr %1552, align 8
  %1554 = lshr i64 %1553, 55
  %1555 = and i64 %1554, 1
  %1556 = trunc i64 %1555 to i1
  %1557 = zext i1 %1556 to i32
  %1558 = icmp ne i32 %1546, %1557
  br i1 %1558, label %1559, label %1562

1559:                                             ; preds = %1535
  %1560 = load ptr, ptr %7, align 8, !tbaa !5
  %1561 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %1560, ptr noundef @.str.65, i32 noundef %1561)
  store i8 1, ptr %56, align 1, !tbaa !11
  br label %1562

1562:                                             ; preds = %1559, %1535
  %1563 = load ptr, ptr %8, align 8, !tbaa !5
  %1564 = load ptr, ptr %1563, align 8, !tbaa !13
  %1565 = getelementptr inbounds ptr, ptr %1564, i64 34
  %1566 = load ptr, ptr %1565, align 8
  %1567 = call noundef nonnull align 8 dereferenceable(72) ptr %1566(ptr noundef nonnull align 8 dereferenceable(176) %1563)
  %1568 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1567, i32 0, i32 1
  %1569 = load i64, ptr %1568, align 8
  %1570 = lshr i64 %1569, 49
  %1571 = and i64 %1570, 1
  %1572 = trunc i64 %1571 to i1
  %1573 = zext i1 %1572 to i32
  %1574 = load ptr, ptr %9, align 8, !tbaa !5
  %1575 = load ptr, ptr %1574, align 8, !tbaa !13
  %1576 = getelementptr inbounds ptr, ptr %1575, i64 34
  %1577 = load ptr, ptr %1576, align 8
  %1578 = call noundef nonnull align 8 dereferenceable(72) ptr %1577(ptr noundef nonnull align 8 dereferenceable(176) %1574)
  %1579 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1578, i32 0, i32 1
  %1580 = load i64, ptr %1579, align 8
  %1581 = lshr i64 %1580, 49
  %1582 = and i64 %1581, 1
  %1583 = trunc i64 %1582 to i1
  %1584 = zext i1 %1583 to i32
  %1585 = icmp ne i32 %1573, %1584
  br i1 %1585, label %1586, label %1589

1586:                                             ; preds = %1562
  %1587 = load ptr, ptr %7, align 8, !tbaa !5
  %1588 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %1587, ptr noundef @.str.66, i32 noundef %1588)
  store i8 1, ptr %56, align 1, !tbaa !11
  br label %1589

1589:                                             ; preds = %1586, %1562
  %1590 = load ptr, ptr %8, align 8, !tbaa !5
  %1591 = load ptr, ptr %1590, align 8, !tbaa !13
  %1592 = getelementptr inbounds ptr, ptr %1591, i64 34
  %1593 = load ptr, ptr %1592, align 8
  %1594 = call noundef nonnull align 8 dereferenceable(72) ptr %1593(ptr noundef nonnull align 8 dereferenceable(176) %1590)
  %1595 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1594, i32 0, i32 1
  %1596 = load i64, ptr %1595, align 8
  %1597 = lshr i64 %1596, 45
  %1598 = and i64 %1597, 1
  %1599 = trunc i64 %1598 to i1
  %1600 = zext i1 %1599 to i32
  %1601 = load ptr, ptr %9, align 8, !tbaa !5
  %1602 = load ptr, ptr %1601, align 8, !tbaa !13
  %1603 = getelementptr inbounds ptr, ptr %1602, i64 34
  %1604 = load ptr, ptr %1603, align 8
  %1605 = call noundef nonnull align 8 dereferenceable(72) ptr %1604(ptr noundef nonnull align 8 dereferenceable(176) %1601)
  %1606 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1605, i32 0, i32 1
  %1607 = load i64, ptr %1606, align 8
  %1608 = lshr i64 %1607, 45
  %1609 = and i64 %1608, 1
  %1610 = trunc i64 %1609 to i1
  %1611 = zext i1 %1610 to i32
  %1612 = icmp ne i32 %1600, %1611
  br i1 %1612, label %1613, label %1616

1613:                                             ; preds = %1589
  %1614 = load ptr, ptr %7, align 8, !tbaa !5
  %1615 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %1614, ptr noundef @.str.67, i32 noundef %1615)
  store i8 1, ptr %56, align 1, !tbaa !11
  br label %1616

1616:                                             ; preds = %1613, %1589
  %1617 = load ptr, ptr %8, align 8, !tbaa !5
  %1618 = load ptr, ptr %1617, align 8, !tbaa !13
  %1619 = getelementptr inbounds ptr, ptr %1618, i64 34
  %1620 = load ptr, ptr %1619, align 8
  %1621 = call noundef nonnull align 8 dereferenceable(72) ptr %1620(ptr noundef nonnull align 8 dereferenceable(176) %1617)
  %1622 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1621, i32 0, i32 1
  %1623 = load i64, ptr %1622, align 8
  %1624 = lshr i64 %1623, 46
  %1625 = and i64 %1624, 1
  %1626 = trunc i64 %1625 to i1
  %1627 = zext i1 %1626 to i32
  %1628 = load ptr, ptr %9, align 8, !tbaa !5
  %1629 = load ptr, ptr %1628, align 8, !tbaa !13
  %1630 = getelementptr inbounds ptr, ptr %1629, i64 34
  %1631 = load ptr, ptr %1630, align 8
  %1632 = call noundef nonnull align 8 dereferenceable(72) ptr %1631(ptr noundef nonnull align 8 dereferenceable(176) %1628)
  %1633 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1632, i32 0, i32 1
  %1634 = load i64, ptr %1633, align 8
  %1635 = lshr i64 %1634, 46
  %1636 = and i64 %1635, 1
  %1637 = trunc i64 %1636 to i1
  %1638 = zext i1 %1637 to i32
  %1639 = icmp ne i32 %1627, %1638
  br i1 %1639, label %1640, label %1643

1640:                                             ; preds = %1616
  %1641 = load ptr, ptr %7, align 8, !tbaa !5
  %1642 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %1641, ptr noundef @.str.68, i32 noundef %1642)
  store i8 1, ptr %56, align 1, !tbaa !11
  br label %1643

1643:                                             ; preds = %1640, %1616
  %1644 = load ptr, ptr %8, align 8, !tbaa !5
  %1645 = load ptr, ptr %1644, align 8, !tbaa !13
  %1646 = getelementptr inbounds ptr, ptr %1645, i64 34
  %1647 = load ptr, ptr %1646, align 8
  %1648 = call noundef nonnull align 8 dereferenceable(72) ptr %1647(ptr noundef nonnull align 8 dereferenceable(176) %1644)
  %1649 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1648, i32 0, i32 1
  %1650 = load i64, ptr %1649, align 8
  %1651 = lshr i64 %1650, 47
  %1652 = and i64 %1651, 1
  %1653 = trunc i64 %1652 to i1
  %1654 = zext i1 %1653 to i32
  %1655 = load ptr, ptr %9, align 8, !tbaa !5
  %1656 = load ptr, ptr %1655, align 8, !tbaa !13
  %1657 = getelementptr inbounds ptr, ptr %1656, i64 34
  %1658 = load ptr, ptr %1657, align 8
  %1659 = call noundef nonnull align 8 dereferenceable(72) ptr %1658(ptr noundef nonnull align 8 dereferenceable(176) %1655)
  %1660 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1659, i32 0, i32 1
  %1661 = load i64, ptr %1660, align 8
  %1662 = lshr i64 %1661, 47
  %1663 = and i64 %1662, 1
  %1664 = trunc i64 %1663 to i1
  %1665 = zext i1 %1664 to i32
  %1666 = icmp ne i32 %1654, %1665
  br i1 %1666, label %1667, label %1670

1667:                                             ; preds = %1643
  %1668 = load ptr, ptr %7, align 8, !tbaa !5
  %1669 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %1668, ptr noundef @.str.69, i32 noundef %1669)
  store i8 1, ptr %56, align 1, !tbaa !11
  br label %1670

1670:                                             ; preds = %1667, %1643
  %1671 = load i8, ptr %56, align 1, !tbaa !11, !range !17, !noundef !18
  %1672 = trunc i8 %1671 to i1
  br i1 %1672, label %1673, label %1674

1673:                                             ; preds = %1670
  store i8 1, ptr %12, align 1, !tbaa !11
  store i8 1, ptr %14, align 1, !tbaa !11
  br label %1674

1674:                                             ; preds = %1673, %1670
  call void @llvm.lifetime.start.p0(i64 1, ptr %57) #6
  store i8 0, ptr %57, align 1, !tbaa !11
  %1675 = load ptr, ptr %8, align 8, !tbaa !5
  %1676 = load ptr, ptr %1675, align 8, !tbaa !13
  %1677 = getelementptr inbounds ptr, ptr %1676, i64 34
  %1678 = load ptr, ptr %1677, align 8
  %1679 = call noundef nonnull align 8 dereferenceable(72) ptr %1678(ptr noundef nonnull align 8 dereferenceable(176) %1675)
  %1680 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1679, i32 0, i32 1
  %1681 = load i64, ptr %1680, align 8
  %1682 = lshr i64 %1681, 59
  %1683 = and i64 %1682, 7
  %1684 = trunc i64 %1683 to i32
  %1685 = load ptr, ptr %9, align 8, !tbaa !5
  %1686 = load ptr, ptr %1685, align 8, !tbaa !13
  %1687 = getelementptr inbounds ptr, ptr %1686, i64 34
  %1688 = load ptr, ptr %1687, align 8
  %1689 = call noundef nonnull align 8 dereferenceable(72) ptr %1688(ptr noundef nonnull align 8 dereferenceable(176) %1685)
  %1690 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1689, i32 0, i32 1
  %1691 = load i64, ptr %1690, align 8
  %1692 = lshr i64 %1691, 59
  %1693 = and i64 %1692, 7
  %1694 = trunc i64 %1693 to i32
  %1695 = icmp ne i32 %1684, %1694
  br i1 %1695, label %1696, label %1699

1696:                                             ; preds = %1674
  %1697 = load ptr, ptr %7, align 8, !tbaa !5
  %1698 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %1697, ptr noundef @.str.70, i32 noundef %1698)
  store i8 1, ptr %57, align 1, !tbaa !11
  br label %1699

1699:                                             ; preds = %1696, %1674
  %1700 = load ptr, ptr %8, align 8, !tbaa !5
  %1701 = load ptr, ptr %1700, align 8, !tbaa !13
  %1702 = getelementptr inbounds ptr, ptr %1701, i64 34
  %1703 = load ptr, ptr %1702, align 8
  %1704 = call noundef nonnull align 8 dereferenceable(72) ptr %1703(ptr noundef nonnull align 8 dereferenceable(176) %1700)
  %1705 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1704, i32 0, i32 2
  %1706 = load i8, ptr %1705, align 8
  %1707 = and i8 %1706, 15
  %1708 = zext i8 %1707 to i32
  %1709 = load ptr, ptr %9, align 8, !tbaa !5
  %1710 = load ptr, ptr %1709, align 8, !tbaa !13
  %1711 = getelementptr inbounds ptr, ptr %1710, i64 34
  %1712 = load ptr, ptr %1711, align 8
  %1713 = call noundef nonnull align 8 dereferenceable(72) ptr %1712(ptr noundef nonnull align 8 dereferenceable(176) %1709)
  %1714 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1713, i32 0, i32 2
  %1715 = load i8, ptr %1714, align 8
  %1716 = and i8 %1715, 15
  %1717 = zext i8 %1716 to i32
  %1718 = icmp ne i32 %1708, %1717
  br i1 %1718, label %1719, label %1722

1719:                                             ; preds = %1699
  %1720 = load ptr, ptr %7, align 8, !tbaa !5
  %1721 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %1720, ptr noundef @.str.71, i32 noundef %1721)
  store i8 1, ptr %57, align 1, !tbaa !11
  br label %1722

1722:                                             ; preds = %1719, %1699
  %1723 = load ptr, ptr %8, align 8, !tbaa !5
  %1724 = load ptr, ptr %1723, align 8, !tbaa !13
  %1725 = getelementptr inbounds ptr, ptr %1724, i64 34
  %1726 = load ptr, ptr %1725, align 8
  %1727 = call noundef nonnull align 8 dereferenceable(72) ptr %1726(ptr noundef nonnull align 8 dereferenceable(176) %1723)
  %1728 = call noundef zeroext i1 @_ZNK7glslang10TQualifier11hasLocationEv(ptr noundef nonnull align 8 dereferenceable(72) %1727)
  br i1 %1728, label %1729, label %1759

1729:                                             ; preds = %1722
  %1730 = load ptr, ptr %9, align 8, !tbaa !5
  %1731 = load ptr, ptr %1730, align 8, !tbaa !13
  %1732 = getelementptr inbounds ptr, ptr %1731, i64 34
  %1733 = load ptr, ptr %1732, align 8
  %1734 = call noundef nonnull align 8 dereferenceable(72) ptr %1733(ptr noundef nonnull align 8 dereferenceable(176) %1730)
  %1735 = call noundef zeroext i1 @_ZNK7glslang10TQualifier11hasLocationEv(ptr noundef nonnull align 8 dereferenceable(72) %1734)
  br i1 %1735, label %1736, label %1759

1736:                                             ; preds = %1729
  %1737 = load ptr, ptr %8, align 8, !tbaa !5
  %1738 = load ptr, ptr %1737, align 8, !tbaa !13
  %1739 = getelementptr inbounds ptr, ptr %1738, i64 34
  %1740 = load ptr, ptr %1739, align 8
  %1741 = call noundef nonnull align 8 dereferenceable(72) ptr %1740(ptr noundef nonnull align 8 dereferenceable(176) %1737)
  %1742 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1741, i32 0, i32 6
  %1743 = load i64, ptr %1742, align 4
  %1744 = and i64 %1743, 4095
  %1745 = trunc i64 %1744 to i32
  %1746 = load ptr, ptr %9, align 8, !tbaa !5
  %1747 = load ptr, ptr %1746, align 8, !tbaa !13
  %1748 = getelementptr inbounds ptr, ptr %1747, i64 34
  %1749 = load ptr, ptr %1748, align 8
  %1750 = call noundef nonnull align 8 dereferenceable(72) ptr %1749(ptr noundef nonnull align 8 dereferenceable(176) %1746)
  %1751 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1750, i32 0, i32 6
  %1752 = load i64, ptr %1751, align 4
  %1753 = and i64 %1752, 4095
  %1754 = trunc i64 %1753 to i32
  %1755 = icmp ne i32 %1745, %1754
  br i1 %1755, label %1756, label %1759

1756:                                             ; preds = %1736
  %1757 = load ptr, ptr %7, align 8, !tbaa !5
  %1758 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %1757, ptr noundef @.str.72, i32 noundef %1758)
  store i8 1, ptr %57, align 1, !tbaa !11
  br label %1759

1759:                                             ; preds = %1756, %1736, %1729, %1722
  %1760 = load ptr, ptr %8, align 8, !tbaa !5
  %1761 = load ptr, ptr %1760, align 8, !tbaa !13
  %1762 = getelementptr inbounds ptr, ptr %1761, i64 34
  %1763 = load ptr, ptr %1762, align 8
  %1764 = call noundef nonnull align 8 dereferenceable(72) ptr %1763(ptr noundef nonnull align 8 dereferenceable(176) %1760)
  %1765 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1764, i32 0, i32 6
  %1766 = load i64, ptr %1765, align 4
  %1767 = lshr i64 %1766, 12
  %1768 = and i64 %1767, 7
  %1769 = trunc i64 %1768 to i32
  %1770 = load ptr, ptr %9, align 8, !tbaa !5
  %1771 = load ptr, ptr %1770, align 8, !tbaa !13
  %1772 = getelementptr inbounds ptr, ptr %1771, i64 34
  %1773 = load ptr, ptr %1772, align 8
  %1774 = call noundef nonnull align 8 dereferenceable(72) ptr %1773(ptr noundef nonnull align 8 dereferenceable(176) %1770)
  %1775 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1774, i32 0, i32 6
  %1776 = load i64, ptr %1775, align 4
  %1777 = lshr i64 %1776, 12
  %1778 = and i64 %1777, 7
  %1779 = trunc i64 %1778 to i32
  %1780 = icmp ne i32 %1769, %1779
  br i1 %1780, label %1781, label %1784

1781:                                             ; preds = %1759
  %1782 = load ptr, ptr %7, align 8, !tbaa !5
  %1783 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %1782, ptr noundef @.str.73, i32 noundef %1783)
  store i8 1, ptr %57, align 1, !tbaa !11
  br label %1784

1784:                                             ; preds = %1781, %1759
  %1785 = load ptr, ptr %8, align 8, !tbaa !5
  %1786 = load ptr, ptr %1785, align 8, !tbaa !13
  %1787 = getelementptr inbounds ptr, ptr %1786, i64 34
  %1788 = load ptr, ptr %1787, align 8
  %1789 = call noundef nonnull align 8 dereferenceable(72) ptr %1788(ptr noundef nonnull align 8 dereferenceable(176) %1785)
  %1790 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1789, i32 0, i32 6
  %1791 = load i64, ptr %1790, align 4
  %1792 = lshr i64 %1791, 48
  %1793 = and i64 %1792, 255
  %1794 = trunc i64 %1793 to i32
  %1795 = load ptr, ptr %9, align 8, !tbaa !5
  %1796 = load ptr, ptr %1795, align 8, !tbaa !13
  %1797 = getelementptr inbounds ptr, ptr %1796, i64 34
  %1798 = load ptr, ptr %1797, align 8
  %1799 = call noundef nonnull align 8 dereferenceable(72) ptr %1798(ptr noundef nonnull align 8 dereferenceable(176) %1795)
  %1800 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1799, i32 0, i32 6
  %1801 = load i64, ptr %1800, align 4
  %1802 = lshr i64 %1801, 48
  %1803 = and i64 %1802, 255
  %1804 = trunc i64 %1803 to i32
  %1805 = icmp ne i32 %1794, %1804
  br i1 %1805, label %1806, label %1809

1806:                                             ; preds = %1784
  %1807 = load ptr, ptr %7, align 8, !tbaa !5
  %1808 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %1807, ptr noundef @.str.74, i32 noundef %1808)
  store i8 1, ptr %57, align 1, !tbaa !11
  br label %1809

1809:                                             ; preds = %1806, %1784
  %1810 = load ptr, ptr %8, align 8, !tbaa !5
  %1811 = load ptr, ptr %1810, align 8, !tbaa !13
  %1812 = getelementptr inbounds ptr, ptr %1811, i64 34
  %1813 = load ptr, ptr %1812, align 8
  %1814 = call noundef nonnull align 8 dereferenceable(72) ptr %1813(ptr noundef nonnull align 8 dereferenceable(176) %1810)
  %1815 = call noundef zeroext i1 @_ZNK7glslang10TQualifier10hasBindingEv(ptr noundef nonnull align 8 dereferenceable(72) %1814)
  br i1 %1815, label %1816, label %1848

1816:                                             ; preds = %1809
  %1817 = load ptr, ptr %9, align 8, !tbaa !5
  %1818 = load ptr, ptr %1817, align 8, !tbaa !13
  %1819 = getelementptr inbounds ptr, ptr %1818, i64 34
  %1820 = load ptr, ptr %1819, align 8
  %1821 = call noundef nonnull align 8 dereferenceable(72) ptr %1820(ptr noundef nonnull align 8 dereferenceable(176) %1817)
  %1822 = call noundef zeroext i1 @_ZNK7glslang10TQualifier10hasBindingEv(ptr noundef nonnull align 8 dereferenceable(72) %1821)
  br i1 %1822, label %1823, label %1848

1823:                                             ; preds = %1816
  %1824 = load ptr, ptr %8, align 8, !tbaa !5
  %1825 = load ptr, ptr %1824, align 8, !tbaa !13
  %1826 = getelementptr inbounds ptr, ptr %1825, i64 34
  %1827 = load ptr, ptr %1826, align 8
  %1828 = call noundef nonnull align 8 dereferenceable(72) ptr %1827(ptr noundef nonnull align 8 dereferenceable(176) %1824)
  %1829 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1828, i32 0, i32 6
  %1830 = load i64, ptr %1829, align 4
  %1831 = lshr i64 %1830, 32
  %1832 = and i64 %1831, 65535
  %1833 = trunc i64 %1832 to i32
  %1834 = load ptr, ptr %9, align 8, !tbaa !5
  %1835 = load ptr, ptr %1834, align 8, !tbaa !13
  %1836 = getelementptr inbounds ptr, ptr %1835, i64 34
  %1837 = load ptr, ptr %1836, align 8
  %1838 = call noundef nonnull align 8 dereferenceable(72) ptr %1837(ptr noundef nonnull align 8 dereferenceable(176) %1834)
  %1839 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1838, i32 0, i32 6
  %1840 = load i64, ptr %1839, align 4
  %1841 = lshr i64 %1840, 32
  %1842 = and i64 %1841, 65535
  %1843 = trunc i64 %1842 to i32
  %1844 = icmp ne i32 %1833, %1843
  br i1 %1844, label %1845, label %1848

1845:                                             ; preds = %1823
  %1846 = load ptr, ptr %7, align 8, !tbaa !5
  %1847 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %1846, ptr noundef @.str.75, i32 noundef %1847)
  store i8 1, ptr %57, align 1, !tbaa !11
  br label %1848

1848:                                             ; preds = %1845, %1823, %1816, %1809
  %1849 = load ptr, ptr %8, align 8, !tbaa !5
  %1850 = load ptr, ptr %1849, align 8, !tbaa !13
  %1851 = getelementptr inbounds ptr, ptr %1850, i64 34
  %1852 = load ptr, ptr %1851, align 8
  %1853 = call noundef nonnull align 8 dereferenceable(72) ptr %1852(ptr noundef nonnull align 8 dereferenceable(176) %1849)
  %1854 = call noundef zeroext i1 @_ZNK7glslang10TQualifier10hasBindingEv(ptr noundef nonnull align 8 dereferenceable(72) %1853)
  br i1 %1854, label %1855, label %1874

1855:                                             ; preds = %1848
  %1856 = load ptr, ptr %8, align 8, !tbaa !5
  %1857 = load ptr, ptr %1856, align 8, !tbaa !13
  %1858 = getelementptr inbounds ptr, ptr %1857, i64 34
  %1859 = load ptr, ptr %1858, align 8
  %1860 = call noundef nonnull align 8 dereferenceable(72) ptr %1859(ptr noundef nonnull align 8 dereferenceable(176) %1856)
  %1861 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1860, i32 0, i32 4
  %1862 = load i32, ptr %1861, align 4, !tbaa !25
  %1863 = load ptr, ptr %9, align 8, !tbaa !5
  %1864 = load ptr, ptr %1863, align 8, !tbaa !13
  %1865 = getelementptr inbounds ptr, ptr %1864, i64 34
  %1866 = load ptr, ptr %1865, align 8
  %1867 = call noundef nonnull align 8 dereferenceable(72) ptr %1866(ptr noundef nonnull align 8 dereferenceable(176) %1863)
  %1868 = getelementptr inbounds %"class.glslang::TQualifier", ptr %1867, i32 0, i32 4
  %1869 = load i32, ptr %1868, align 4, !tbaa !25
  %1870 = icmp ne i32 %1862, %1869
  br i1 %1870, label %1871, label %1874

1871:                                             ; preds = %1855
  %1872 = load ptr, ptr %7, align 8, !tbaa !5
  %1873 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %1872, ptr noundef @.str.76, i32 noundef %1873)
  store i8 1, ptr %57, align 1, !tbaa !11
  br label %1874

1874:                                             ; preds = %1871, %1855, %1848
  %1875 = load i8, ptr %57, align 1, !tbaa !11, !range !17, !noundef !18
  %1876 = trunc i8 %1875 to i1
  br i1 %1876, label %1877, label %1878

1877:                                             ; preds = %1874
  store i8 1, ptr %12, align 1, !tbaa !11
  store i8 1, ptr %14, align 1, !tbaa !11
  br label %1878

1878:                                             ; preds = %1877, %1874
  %1879 = load i8, ptr %12, align 1, !tbaa !11, !range !17, !noundef !18
  %1880 = trunc i8 %1879 to i1
  br i1 %1880, label %1913, label %1881

1881:                                             ; preds = %1878
  %1882 = load i8, ptr %13, align 1, !tbaa !11, !range !17, !noundef !18
  %1883 = trunc i8 %1882 to i1
  br i1 %1883, label %1913, label %1884

1884:                                             ; preds = %1881
  %1885 = load ptr, ptr %8, align 8, !tbaa !5
  %1886 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang13TIntermSymbol13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(256) %1885)
  %1887 = call noundef zeroext i1 @_ZNK7glslang16TConstUnionArray5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %1886)
  br i1 %1887, label %1912, label %1888

1888:                                             ; preds = %1884
  %1889 = load ptr, ptr %9, align 8, !tbaa !5
  %1890 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang13TIntermSymbol13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(256) %1889)
  %1891 = call noundef zeroext i1 @_ZNK7glslang16TConstUnionArray5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %1890)
  br i1 %1891, label %1912, label %1892

1892:                                             ; preds = %1888
  %1893 = load ptr, ptr %8, align 8, !tbaa !5
  %1894 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang13TIntermSymbol13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(256) %1893)
  %1895 = load ptr, ptr %9, align 8, !tbaa !5
  %1896 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang13TIntermSymbol13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(256) %1895)
  %1897 = call noundef zeroext i1 @_ZNK7glslang16TConstUnionArrayneERKS0_(ptr noundef nonnull align 8 dereferenceable(16) %1894, ptr noundef nonnull align 8 dereferenceable(16) %1896)
  br i1 %1897, label %1898, label %1911

1898:                                             ; preds = %1892
  %1899 = load ptr, ptr %7, align 8, !tbaa !5
  %1900 = load i32, ptr %10, align 4, !tbaa !9
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %92, ptr noundef nonnull align 8 dereferenceable(80) %1899, ptr noundef @.str.77, i32 noundef %1900)
  %1901 = load ptr, ptr %7, align 8, !tbaa !5
  %1902 = getelementptr inbounds %class.TInfoSink, ptr %1901, i32 0, i32 0
  %1903 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1902, ptr noundef @.str.26)
  %1904 = load ptr, ptr %8, align 8, !tbaa !5
  %1905 = load ptr, ptr %1904, align 8, !tbaa !13
  %1906 = getelementptr inbounds ptr, ptr %1905, i64 50
  %1907 = load ptr, ptr %1906, align 8
  %1908 = call noundef nonnull align 8 dereferenceable(40) ptr %1907(ptr noundef nonnull align 8 dereferenceable(256) %1904)
  %1909 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %1903, ptr noundef nonnull align 8 dereferenceable(40) %1908)
  %1910 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1909, ptr noundef @.str.3)
  br label %1911

1911:                                             ; preds = %1898, %1892
  br label %1912

1912:                                             ; preds = %1911, %1888, %1884
  br label %1913

1913:                                             ; preds = %1912, %1881, %1878
  %1914 = load i8, ptr %12, align 1, !tbaa !11, !range !17, !noundef !18
  %1915 = trunc i8 %1914 to i1
  br i1 %1915, label %1916, label %2369

1916:                                             ; preds = %1913
  %1917 = load ptr, ptr %8, align 8, !tbaa !5
  %1918 = load ptr, ptr %1917, align 8, !tbaa !13
  %1919 = getelementptr inbounds ptr, ptr %1918, i64 30
  %1920 = load ptr, ptr %1919, align 8
  %1921 = call noundef nonnull align 8 dereferenceable(144) ptr %1920(ptr noundef nonnull align 8 dereferenceable(176) %1917)
  %1922 = load ptr, ptr %1921, align 8, !tbaa !13
  %1923 = getelementptr inbounds ptr, ptr %1922, i64 7
  %1924 = load ptr, ptr %1923, align 8
  %1925 = call noundef i32 %1924(ptr noundef nonnull align 8 dereferenceable(144) %1921)
  %1926 = icmp eq i32 %1925, 16
  br i1 %1926, label %1927, label %2182

1927:                                             ; preds = %1916
  %1928 = load ptr, ptr %9, align 8, !tbaa !5
  %1929 = load ptr, ptr %1928, align 8, !tbaa !13
  %1930 = getelementptr inbounds ptr, ptr %1929, i64 30
  %1931 = load ptr, ptr %1930, align 8
  %1932 = call noundef nonnull align 8 dereferenceable(144) ptr %1931(ptr noundef nonnull align 8 dereferenceable(176) %1928)
  %1933 = load ptr, ptr %1932, align 8, !tbaa !13
  %1934 = getelementptr inbounds ptr, ptr %1933, i64 7
  %1935 = load ptr, ptr %1934, align 8
  %1936 = call noundef i32 %1935(ptr noundef nonnull align 8 dereferenceable(144) %1932)
  %1937 = icmp eq i32 %1936, 16
  br i1 %1937, label %1938, label %2182

1938:                                             ; preds = %1927
  %1939 = load ptr, ptr %8, align 8, !tbaa !5
  %1940 = load ptr, ptr %1939, align 8, !tbaa !13
  %1941 = getelementptr inbounds ptr, ptr %1940, i64 30
  %1942 = load ptr, ptr %1941, align 8
  %1943 = call noundef nonnull align 8 dereferenceable(144) ptr %1942(ptr noundef nonnull align 8 dereferenceable(176) %1939)
  %1944 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %1943)
  %1945 = icmp ne ptr %1944, null
  br i1 %1945, label %1946, label %2182

1946:                                             ; preds = %1938
  %1947 = load ptr, ptr %9, align 8, !tbaa !5
  %1948 = load ptr, ptr %1947, align 8, !tbaa !13
  %1949 = getelementptr inbounds ptr, ptr %1948, i64 30
  %1950 = load ptr, ptr %1949, align 8
  %1951 = call noundef nonnull align 8 dereferenceable(144) ptr %1950(ptr noundef nonnull align 8 dereferenceable(176) %1947)
  %1952 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %1951)
  %1953 = icmp ne ptr %1952, null
  br i1 %1953, label %1954, label %2182

1954:                                             ; preds = %1946
  %1955 = load i8, ptr %16, align 1, !tbaa !11, !range !17, !noundef !18
  %1956 = trunc i8 %1955 to i1
  br i1 %1956, label %1957, label %2066

1957:                                             ; preds = %1954
  %1958 = load ptr, ptr %7, align 8, !tbaa !5
  %1959 = getelementptr inbounds %class.TInfoSink, ptr %1958, i32 0, i32 0
  %1960 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1959, ptr noundef @.str.26)
  %1961 = call noundef i32 @_ZNK7glslang13TIntermediate8getStageEv(ptr noundef nonnull align 8 dereferenceable(1784) %92)
  %1962 = call ptr @StageName(i32 noundef %1961)
  %1963 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1960, ptr noundef %1962)
  %1964 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1963, ptr noundef @.str.38)
  call void @llvm.lifetime.start.p0(i64 40, ptr %58) #6
  %1965 = load ptr, ptr %8, align 8, !tbaa !5
  %1966 = load ptr, ptr %1965, align 8, !tbaa !13
  %1967 = getelementptr inbounds ptr, ptr %1966, i64 30
  %1968 = load ptr, ptr %1967, align 8
  %1969 = call noundef nonnull align 8 dereferenceable(144) ptr %1968(ptr noundef nonnull align 8 dereferenceable(176) %1965)
  %1970 = load i8, ptr %14, align 1, !tbaa !11, !range !17, !noundef !18
  %1971 = trunc i8 %1970 to i1
  %1972 = load i8, ptr %15, align 1, !tbaa !11, !range !17, !noundef !18
  %1973 = trunc i8 %1972 to i1
  %1974 = load i8, ptr %16, align 1, !tbaa !11, !range !17, !noundef !18
  %1975 = trunc i8 %1974 to i1
  %1976 = load ptr, ptr %8, align 8, !tbaa !5
  %1977 = load ptr, ptr %1976, align 8, !tbaa !13
  %1978 = getelementptr inbounds ptr, ptr %1977, i64 50
  %1979 = load ptr, ptr %1978, align 8
  %1980 = call noundef nonnull align 8 dereferenceable(40) ptr %1979(ptr noundef nonnull align 8 dereferenceable(256) %1976)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(40) %59, ptr noundef nonnull align 8 dereferenceable(40) %1980)
  %1981 = load ptr, ptr %8, align 8, !tbaa !5
  %1982 = load ptr, ptr %1981, align 8, !tbaa !13
  %1983 = getelementptr inbounds ptr, ptr %1982, i64 30
  %1984 = load ptr, ptr %1983, align 8
  %1985 = invoke noundef nonnull align 8 dereferenceable(144) ptr %1984(ptr noundef nonnull align 8 dereferenceable(176) %1981)
          to label %1986 unwind label %2038

1986:                                             ; preds = %1957
  %1987 = load ptr, ptr %1985, align 8, !tbaa !13
  %1988 = getelementptr inbounds ptr, ptr %1987, i64 5
  %1989 = load ptr, ptr %1988, align 8
  %1990 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1989(ptr noundef nonnull align 8 dereferenceable(144) %1985)
          to label %1991 unwind label %2038

1991:                                             ; preds = %1986
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(40) %60, ptr noundef nonnull align 8 dereferenceable(40) %1990)
          to label %1992 unwind label %2038

1992:                                             ; preds = %1991
  invoke void @_ZNK7glslang5TType17getCompleteStringEbbbbNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string.91") align 8 %58, ptr noundef nonnull align 8 dereferenceable(144) %1969, i1 noundef zeroext true, i1 noundef zeroext %1971, i1 noundef zeroext %1973, i1 noundef zeroext %1975, ptr noundef %59, ptr noundef %60)
          to label %1993 unwind label %2042

1993:                                             ; preds = %1992
  %1994 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %1964, ptr noundef nonnull align 8 dereferenceable(40) %58)
          to label %1995 unwind label %2046

1995:                                             ; preds = %1993
  %1996 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1994, ptr noundef @.str.33)
          to label %1997 unwind label %2046

1997:                                             ; preds = %1995
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %58) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %60) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %59) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %58) #6
  %1998 = load ptr, ptr %7, align 8, !tbaa !5
  %1999 = getelementptr inbounds %class.TInfoSink, ptr %1998, i32 0, i32 0
  %2000 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1999, ptr noundef @.str.26)
  %2001 = load i32, ptr %10, align 4, !tbaa !9
  %2002 = call ptr @StageName(i32 noundef %2001)
  %2003 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %2000, ptr noundef %2002)
  %2004 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %2003, ptr noundef @.str.38)
  call void @llvm.lifetime.start.p0(i64 40, ptr %61) #6
  %2005 = load ptr, ptr %9, align 8, !tbaa !5
  %2006 = load ptr, ptr %2005, align 8, !tbaa !13
  %2007 = getelementptr inbounds ptr, ptr %2006, i64 30
  %2008 = load ptr, ptr %2007, align 8
  %2009 = call noundef nonnull align 8 dereferenceable(144) ptr %2008(ptr noundef nonnull align 8 dereferenceable(176) %2005)
  %2010 = load i8, ptr %14, align 1, !tbaa !11, !range !17, !noundef !18
  %2011 = trunc i8 %2010 to i1
  %2012 = load i8, ptr %15, align 1, !tbaa !11, !range !17, !noundef !18
  %2013 = trunc i8 %2012 to i1
  %2014 = load i8, ptr %16, align 1, !tbaa !11, !range !17, !noundef !18
  %2015 = trunc i8 %2014 to i1
  %2016 = load ptr, ptr %9, align 8, !tbaa !5
  %2017 = load ptr, ptr %2016, align 8, !tbaa !13
  %2018 = getelementptr inbounds ptr, ptr %2017, i64 50
  %2019 = load ptr, ptr %2018, align 8
  %2020 = call noundef nonnull align 8 dereferenceable(40) ptr %2019(ptr noundef nonnull align 8 dereferenceable(256) %2016)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(40) %62, ptr noundef nonnull align 8 dereferenceable(40) %2020)
  %2021 = load ptr, ptr %9, align 8, !tbaa !5
  %2022 = load ptr, ptr %2021, align 8, !tbaa !13
  %2023 = getelementptr inbounds ptr, ptr %2022, i64 30
  %2024 = load ptr, ptr %2023, align 8
  %2025 = invoke noundef nonnull align 8 dereferenceable(144) ptr %2024(ptr noundef nonnull align 8 dereferenceable(176) %2021)
          to label %2026 unwind label %2052

2026:                                             ; preds = %1997
  %2027 = load ptr, ptr %2025, align 8, !tbaa !13
  %2028 = getelementptr inbounds ptr, ptr %2027, i64 5
  %2029 = load ptr, ptr %2028, align 8
  %2030 = invoke noundef nonnull align 8 dereferenceable(40) ptr %2029(ptr noundef nonnull align 8 dereferenceable(144) %2025)
          to label %2031 unwind label %2052

2031:                                             ; preds = %2026
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(40) %63, ptr noundef nonnull align 8 dereferenceable(40) %2030)
          to label %2032 unwind label %2052

2032:                                             ; preds = %2031
  invoke void @_ZNK7glslang5TType17getCompleteStringEbbbbNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string.91") align 8 %61, ptr noundef nonnull align 8 dereferenceable(144) %2009, i1 noundef zeroext true, i1 noundef zeroext %2011, i1 noundef zeroext %2013, i1 noundef zeroext %2015, ptr noundef %62, ptr noundef %63)
          to label %2033 unwind label %2056

2033:                                             ; preds = %2032
  %2034 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %2004, ptr noundef nonnull align 8 dereferenceable(40) %61)
          to label %2035 unwind label %2060

2035:                                             ; preds = %2033
  %2036 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %2034, ptr noundef @.str.33)
          to label %2037 unwind label %2060

2037:                                             ; preds = %2035
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %61) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %63) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %62) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %61) #6
  br label %2181

2038:                                             ; preds = %1991, %1986, %1957
  %2039 = landingpad { ptr, i32 }
          cleanup
  %2040 = extractvalue { ptr, i32 } %2039, 0
  store ptr %2040, ptr %30, align 8
  %2041 = extractvalue { ptr, i32 } %2039, 1
  store i32 %2041, ptr %31, align 4
  br label %2051

2042:                                             ; preds = %1992
  %2043 = landingpad { ptr, i32 }
          cleanup
  %2044 = extractvalue { ptr, i32 } %2043, 0
  store ptr %2044, ptr %30, align 8
  %2045 = extractvalue { ptr, i32 } %2043, 1
  store i32 %2045, ptr %31, align 4
  br label %2050

2046:                                             ; preds = %1995, %1993
  %2047 = landingpad { ptr, i32 }
          cleanup
  %2048 = extractvalue { ptr, i32 } %2047, 0
  store ptr %2048, ptr %30, align 8
  %2049 = extractvalue { ptr, i32 } %2047, 1
  store i32 %2049, ptr %31, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %58) #6
  br label %2050

2050:                                             ; preds = %2046, %2042
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %60) #6
  br label %2051

2051:                                             ; preds = %2050, %2038
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %59) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %58) #6
  br label %2370

2052:                                             ; preds = %2031, %2026, %1997
  %2053 = landingpad { ptr, i32 }
          cleanup
  %2054 = extractvalue { ptr, i32 } %2053, 0
  store ptr %2054, ptr %30, align 8
  %2055 = extractvalue { ptr, i32 } %2053, 1
  store i32 %2055, ptr %31, align 4
  br label %2065

2056:                                             ; preds = %2032
  %2057 = landingpad { ptr, i32 }
          cleanup
  %2058 = extractvalue { ptr, i32 } %2057, 0
  store ptr %2058, ptr %30, align 8
  %2059 = extractvalue { ptr, i32 } %2057, 1
  store i32 %2059, ptr %31, align 4
  br label %2064

2060:                                             ; preds = %2035, %2033
  %2061 = landingpad { ptr, i32 }
          cleanup
  %2062 = extractvalue { ptr, i32 } %2061, 0
  store ptr %2062, ptr %30, align 8
  %2063 = extractvalue { ptr, i32 } %2061, 1
  store i32 %2063, ptr %31, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %61) #6
  br label %2064

2064:                                             ; preds = %2060, %2056
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %63) #6
  br label %2065

2065:                                             ; preds = %2064, %2052
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %62) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %61) #6
  br label %2370

2066:                                             ; preds = %1954
  %2067 = load ptr, ptr %7, align 8, !tbaa !5
  %2068 = getelementptr inbounds %class.TInfoSink, ptr %2067, i32 0, i32 0
  %2069 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %2068, ptr noundef @.str.26)
  %2070 = call noundef i32 @_ZNK7glslang13TIntermediate8getStageEv(ptr noundef nonnull align 8 dereferenceable(1784) %92)
  %2071 = call ptr @StageName(i32 noundef %2070)
  %2072 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %2069, ptr noundef %2071)
  %2073 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %2072, ptr noundef @.str.41)
  %2074 = load ptr, ptr %8, align 8, !tbaa !5
  %2075 = load ptr, ptr %2074, align 8, !tbaa !13
  %2076 = getelementptr inbounds ptr, ptr %2075, i64 30
  %2077 = load ptr, ptr %2076, align 8
  %2078 = call noundef nonnull align 8 dereferenceable(144) ptr %2077(ptr noundef nonnull align 8 dereferenceable(176) %2074)
  %2079 = load ptr, ptr %2078, align 8, !tbaa !13
  %2080 = getelementptr inbounds ptr, ptr %2079, i64 5
  %2081 = load ptr, ptr %2080, align 8
  %2082 = call noundef nonnull align 8 dereferenceable(40) ptr %2081(ptr noundef nonnull align 8 dereferenceable(144) %2078)
  %2083 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %2073, ptr noundef nonnull align 8 dereferenceable(40) %2082)
  %2084 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %2083, ptr noundef @.str.78)
  %2085 = load ptr, ptr %8, align 8, !tbaa !5
  %2086 = load ptr, ptr %2085, align 8, !tbaa !13
  %2087 = getelementptr inbounds ptr, ptr %2086, i64 50
  %2088 = load ptr, ptr %2087, align 8
  %2089 = call noundef nonnull align 8 dereferenceable(40) ptr %2088(ptr noundef nonnull align 8 dereferenceable(256) %2085)
  %2090 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %2084, ptr noundef nonnull align 8 dereferenceable(40) %2089)
  %2091 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %2090, ptr noundef @.str.79)
  call void @llvm.lifetime.start.p0(i64 40, ptr %64) #6
  %2092 = load ptr, ptr %8, align 8, !tbaa !5
  %2093 = load ptr, ptr %2092, align 8, !tbaa !13
  %2094 = getelementptr inbounds ptr, ptr %2093, i64 30
  %2095 = load ptr, ptr %2094, align 8
  %2096 = call noundef nonnull align 8 dereferenceable(144) ptr %2095(ptr noundef nonnull align 8 dereferenceable(176) %2092)
  %2097 = load i8, ptr %14, align 1, !tbaa !11, !range !17, !noundef !18
  %2098 = trunc i8 %2097 to i1
  %2099 = load i8, ptr %15, align 1, !tbaa !11, !range !17, !noundef !18
  %2100 = trunc i8 %2099 to i1
  %2101 = load i8, ptr %16, align 1, !tbaa !11, !range !17, !noundef !18
  %2102 = trunc i8 %2101 to i1
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #6
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %66)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %65, ptr noundef @.str.31, ptr noundef nonnull align 8 dereferenceable(8) %66)
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #6
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %68)
          to label %2103 unwind label %2153

2103:                                             ; preds = %2066
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %67, ptr noundef @.str.31, ptr noundef nonnull align 8 dereferenceable(8) %68)
          to label %2104 unwind label %2153

2104:                                             ; preds = %2103
  invoke void @_ZNK7glslang5TType17getCompleteStringEbbbbNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string.91") align 8 %64, ptr noundef nonnull align 8 dereferenceable(144) %2096, i1 noundef zeroext true, i1 noundef zeroext %2098, i1 noundef zeroext %2100, i1 noundef zeroext %2102, ptr noundef %65, ptr noundef %67)
          to label %2105 unwind label %2157

2105:                                             ; preds = %2104
  %2106 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %2091, ptr noundef nonnull align 8 dereferenceable(40) %64)
          to label %2107 unwind label %2161

2107:                                             ; preds = %2105
  %2108 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %2106, ptr noundef @.str.33)
          to label %2109 unwind label %2161

2109:                                             ; preds = %2107
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %64) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %67) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %65) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %64) #6
  %2110 = load ptr, ptr %7, align 8, !tbaa !5
  %2111 = getelementptr inbounds %class.TInfoSink, ptr %2110, i32 0, i32 0
  %2112 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %2111, ptr noundef @.str.26)
  %2113 = load i32, ptr %10, align 4, !tbaa !9
  %2114 = call ptr @StageName(i32 noundef %2113)
  %2115 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %2112, ptr noundef %2114)
  %2116 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %2115, ptr noundef @.str.41)
  %2117 = load ptr, ptr %9, align 8, !tbaa !5
  %2118 = load ptr, ptr %2117, align 8, !tbaa !13
  %2119 = getelementptr inbounds ptr, ptr %2118, i64 30
  %2120 = load ptr, ptr %2119, align 8
  %2121 = call noundef nonnull align 8 dereferenceable(144) ptr %2120(ptr noundef nonnull align 8 dereferenceable(176) %2117)
  %2122 = load ptr, ptr %2121, align 8, !tbaa !13
  %2123 = getelementptr inbounds ptr, ptr %2122, i64 5
  %2124 = load ptr, ptr %2123, align 8
  %2125 = call noundef nonnull align 8 dereferenceable(40) ptr %2124(ptr noundef nonnull align 8 dereferenceable(144) %2121)
  %2126 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %2116, ptr noundef nonnull align 8 dereferenceable(40) %2125)
  %2127 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %2126, ptr noundef @.str.78)
  %2128 = load ptr, ptr %9, align 8, !tbaa !5
  %2129 = load ptr, ptr %2128, align 8, !tbaa !13
  %2130 = getelementptr inbounds ptr, ptr %2129, i64 50
  %2131 = load ptr, ptr %2130, align 8
  %2132 = call noundef nonnull align 8 dereferenceable(40) ptr %2131(ptr noundef nonnull align 8 dereferenceable(256) %2128)
  %2133 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %2127, ptr noundef nonnull align 8 dereferenceable(40) %2132)
  %2134 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %2133, ptr noundef @.str.79)
  call void @llvm.lifetime.start.p0(i64 40, ptr %69) #6
  %2135 = load ptr, ptr %9, align 8, !tbaa !5
  %2136 = load ptr, ptr %2135, align 8, !tbaa !13
  %2137 = getelementptr inbounds ptr, ptr %2136, i64 30
  %2138 = load ptr, ptr %2137, align 8
  %2139 = call noundef nonnull align 8 dereferenceable(144) ptr %2138(ptr noundef nonnull align 8 dereferenceable(176) %2135)
  %2140 = load i8, ptr %14, align 1, !tbaa !11, !range !17, !noundef !18
  %2141 = trunc i8 %2140 to i1
  %2142 = load i8, ptr %15, align 1, !tbaa !11, !range !17, !noundef !18
  %2143 = trunc i8 %2142 to i1
  %2144 = load i8, ptr %16, align 1, !tbaa !11, !range !17, !noundef !18
  %2145 = trunc i8 %2144 to i1
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #6
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %71)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %70, ptr noundef @.str.31, ptr noundef nonnull align 8 dereferenceable(8) %71)
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #6
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %73)
          to label %2146 unwind label %2167

2146:                                             ; preds = %2109
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %72, ptr noundef @.str.31, ptr noundef nonnull align 8 dereferenceable(8) %73)
          to label %2147 unwind label %2167

2147:                                             ; preds = %2146
  invoke void @_ZNK7glslang5TType17getCompleteStringEbbbbNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string.91") align 8 %69, ptr noundef nonnull align 8 dereferenceable(144) %2139, i1 noundef zeroext true, i1 noundef zeroext %2141, i1 noundef zeroext %2143, i1 noundef zeroext %2145, ptr noundef %70, ptr noundef %72)
          to label %2148 unwind label %2171

2148:                                             ; preds = %2147
  %2149 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %2134, ptr noundef nonnull align 8 dereferenceable(40) %69)
          to label %2150 unwind label %2175

2150:                                             ; preds = %2148
  %2151 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %2149, ptr noundef @.str.33)
          to label %2152 unwind label %2175

2152:                                             ; preds = %2150
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %69) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %72) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %70) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %69) #6
  br label %2181

2153:                                             ; preds = %2103, %2066
  %2154 = landingpad { ptr, i32 }
          cleanup
  %2155 = extractvalue { ptr, i32 } %2154, 0
  store ptr %2155, ptr %30, align 8
  %2156 = extractvalue { ptr, i32 } %2154, 1
  store i32 %2156, ptr %31, align 4
  br label %2166

2157:                                             ; preds = %2104
  %2158 = landingpad { ptr, i32 }
          cleanup
  %2159 = extractvalue { ptr, i32 } %2158, 0
  store ptr %2159, ptr %30, align 8
  %2160 = extractvalue { ptr, i32 } %2158, 1
  store i32 %2160, ptr %31, align 4
  br label %2165

2161:                                             ; preds = %2107, %2105
  %2162 = landingpad { ptr, i32 }
          cleanup
  %2163 = extractvalue { ptr, i32 } %2162, 0
  store ptr %2163, ptr %30, align 8
  %2164 = extractvalue { ptr, i32 } %2162, 1
  store i32 %2164, ptr %31, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %64) #6
  br label %2165

2165:                                             ; preds = %2161, %2157
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %67) #6
  br label %2166

2166:                                             ; preds = %2165, %2153
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %65) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %64) #6
  br label %2370

2167:                                             ; preds = %2146, %2109
  %2168 = landingpad { ptr, i32 }
          cleanup
  %2169 = extractvalue { ptr, i32 } %2168, 0
  store ptr %2169, ptr %30, align 8
  %2170 = extractvalue { ptr, i32 } %2168, 1
  store i32 %2170, ptr %31, align 4
  br label %2180

2171:                                             ; preds = %2147
  %2172 = landingpad { ptr, i32 }
          cleanup
  %2173 = extractvalue { ptr, i32 } %2172, 0
  store ptr %2173, ptr %30, align 8
  %2174 = extractvalue { ptr, i32 } %2172, 1
  store i32 %2174, ptr %31, align 4
  br label %2179

2175:                                             ; preds = %2150, %2148
  %2176 = landingpad { ptr, i32 }
          cleanup
  %2177 = extractvalue { ptr, i32 } %2176, 0
  store ptr %2177, ptr %30, align 8
  %2178 = extractvalue { ptr, i32 } %2176, 1
  store i32 %2178, ptr %31, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %69) #6
  br label %2179

2179:                                             ; preds = %2175, %2171
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %72) #6
  br label %2180

2180:                                             ; preds = %2179, %2167
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %70) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %69) #6
  br label %2370

2181:                                             ; preds = %2152, %2037
  br label %2368

2182:                                             ; preds = %1946, %1938, %1927, %1916
  %2183 = load i8, ptr %16, align 1, !tbaa !11, !range !17, !noundef !18
  %2184 = trunc i8 %2183 to i1
  br i1 %2184, label %2185, label %2274

2185:                                             ; preds = %2182
  %2186 = load ptr, ptr %7, align 8, !tbaa !5
  %2187 = getelementptr inbounds %class.TInfoSink, ptr %2186, i32 0, i32 0
  %2188 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %2187, ptr noundef @.str.26)
  %2189 = call noundef i32 @_ZNK7glslang13TIntermediate8getStageEv(ptr noundef nonnull align 8 dereferenceable(1784) %92)
  %2190 = call ptr @StageName(i32 noundef %2189)
  %2191 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %2188, ptr noundef %2190)
  %2192 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %2191, ptr noundef @.str.38)
  call void @llvm.lifetime.start.p0(i64 40, ptr %74) #6
  %2193 = load ptr, ptr %8, align 8, !tbaa !5
  %2194 = load ptr, ptr %2193, align 8, !tbaa !13
  %2195 = getelementptr inbounds ptr, ptr %2194, i64 30
  %2196 = load ptr, ptr %2195, align 8
  %2197 = call noundef nonnull align 8 dereferenceable(144) ptr %2196(ptr noundef nonnull align 8 dereferenceable(176) %2193)
  %2198 = load i8, ptr %14, align 1, !tbaa !11, !range !17, !noundef !18
  %2199 = trunc i8 %2198 to i1
  %2200 = load i8, ptr %15, align 1, !tbaa !11, !range !17, !noundef !18
  %2201 = trunc i8 %2200 to i1
  %2202 = load i8, ptr %16, align 1, !tbaa !11, !range !17, !noundef !18
  %2203 = trunc i8 %2202 to i1
  %2204 = load ptr, ptr %8, align 8, !tbaa !5
  %2205 = load ptr, ptr %2204, align 8, !tbaa !13
  %2206 = getelementptr inbounds ptr, ptr %2205, i64 50
  %2207 = load ptr, ptr %2206, align 8
  %2208 = call noundef nonnull align 8 dereferenceable(40) ptr %2207(ptr noundef nonnull align 8 dereferenceable(256) %2204)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(40) %75, ptr noundef nonnull align 8 dereferenceable(40) %2208)
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #6
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %77)
          to label %2209 unwind label %2246

2209:                                             ; preds = %2185
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %76, ptr noundef @.str.31, ptr noundef nonnull align 8 dereferenceable(8) %77)
          to label %2210 unwind label %2246

2210:                                             ; preds = %2209
  invoke void @_ZNK7glslang5TType17getCompleteStringEbbbbNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string.91") align 8 %74, ptr noundef nonnull align 8 dereferenceable(144) %2197, i1 noundef zeroext true, i1 noundef zeroext %2199, i1 noundef zeroext %2201, i1 noundef zeroext %2203, ptr noundef %75, ptr noundef %76)
          to label %2211 unwind label %2250

2211:                                             ; preds = %2210
  %2212 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %2192, ptr noundef nonnull align 8 dereferenceable(40) %74)
          to label %2213 unwind label %2254

2213:                                             ; preds = %2211
  %2214 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %2212, ptr noundef @.str.33)
          to label %2215 unwind label %2254

2215:                                             ; preds = %2213
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %74) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %76) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %75) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %74) #6
  %2216 = load ptr, ptr %7, align 8, !tbaa !5
  %2217 = getelementptr inbounds %class.TInfoSink, ptr %2216, i32 0, i32 0
  %2218 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %2217, ptr noundef @.str.26)
  %2219 = load i32, ptr %10, align 4, !tbaa !9
  %2220 = call ptr @StageName(i32 noundef %2219)
  %2221 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %2218, ptr noundef %2220)
  %2222 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %2221, ptr noundef @.str.38)
  call void @llvm.lifetime.start.p0(i64 40, ptr %78) #6
  %2223 = load ptr, ptr %9, align 8, !tbaa !5
  %2224 = load ptr, ptr %2223, align 8, !tbaa !13
  %2225 = getelementptr inbounds ptr, ptr %2224, i64 30
  %2226 = load ptr, ptr %2225, align 8
  %2227 = call noundef nonnull align 8 dereferenceable(144) ptr %2226(ptr noundef nonnull align 8 dereferenceable(176) %2223)
  %2228 = load i8, ptr %14, align 1, !tbaa !11, !range !17, !noundef !18
  %2229 = trunc i8 %2228 to i1
  %2230 = load i8, ptr %15, align 1, !tbaa !11, !range !17, !noundef !18
  %2231 = trunc i8 %2230 to i1
  %2232 = load i8, ptr %16, align 1, !tbaa !11, !range !17, !noundef !18
  %2233 = trunc i8 %2232 to i1
  %2234 = load ptr, ptr %9, align 8, !tbaa !5
  %2235 = load ptr, ptr %2234, align 8, !tbaa !13
  %2236 = getelementptr inbounds ptr, ptr %2235, i64 50
  %2237 = load ptr, ptr %2236, align 8
  %2238 = call noundef nonnull align 8 dereferenceable(40) ptr %2237(ptr noundef nonnull align 8 dereferenceable(256) %2234)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(40) %79, ptr noundef nonnull align 8 dereferenceable(40) %2238)
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #6
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %81)
          to label %2239 unwind label %2260

2239:                                             ; preds = %2215
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %80, ptr noundef @.str.31, ptr noundef nonnull align 8 dereferenceable(8) %81)
          to label %2240 unwind label %2260

2240:                                             ; preds = %2239
  invoke void @_ZNK7glslang5TType17getCompleteStringEbbbbNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string.91") align 8 %78, ptr noundef nonnull align 8 dereferenceable(144) %2227, i1 noundef zeroext true, i1 noundef zeroext %2229, i1 noundef zeroext %2231, i1 noundef zeroext %2233, ptr noundef %79, ptr noundef %80)
          to label %2241 unwind label %2264

2241:                                             ; preds = %2240
  %2242 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %2222, ptr noundef nonnull align 8 dereferenceable(40) %78)
          to label %2243 unwind label %2268

2243:                                             ; preds = %2241
  %2244 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %2242, ptr noundef @.str.33)
          to label %2245 unwind label %2268

2245:                                             ; preds = %2243
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %78) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %80) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %79) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %78) #6
  br label %2367

2246:                                             ; preds = %2209, %2185
  %2247 = landingpad { ptr, i32 }
          cleanup
  %2248 = extractvalue { ptr, i32 } %2247, 0
  store ptr %2248, ptr %30, align 8
  %2249 = extractvalue { ptr, i32 } %2247, 1
  store i32 %2249, ptr %31, align 4
  br label %2259

2250:                                             ; preds = %2210
  %2251 = landingpad { ptr, i32 }
          cleanup
  %2252 = extractvalue { ptr, i32 } %2251, 0
  store ptr %2252, ptr %30, align 8
  %2253 = extractvalue { ptr, i32 } %2251, 1
  store i32 %2253, ptr %31, align 4
  br label %2258

2254:                                             ; preds = %2213, %2211
  %2255 = landingpad { ptr, i32 }
          cleanup
  %2256 = extractvalue { ptr, i32 } %2255, 0
  store ptr %2256, ptr %30, align 8
  %2257 = extractvalue { ptr, i32 } %2255, 1
  store i32 %2257, ptr %31, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %74) #6
  br label %2258

2258:                                             ; preds = %2254, %2250
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %76) #6
  br label %2259

2259:                                             ; preds = %2258, %2246
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %75) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %74) #6
  br label %2370

2260:                                             ; preds = %2239, %2215
  %2261 = landingpad { ptr, i32 }
          cleanup
  %2262 = extractvalue { ptr, i32 } %2261, 0
  store ptr %2262, ptr %30, align 8
  %2263 = extractvalue { ptr, i32 } %2261, 1
  store i32 %2263, ptr %31, align 4
  br label %2273

2264:                                             ; preds = %2240
  %2265 = landingpad { ptr, i32 }
          cleanup
  %2266 = extractvalue { ptr, i32 } %2265, 0
  store ptr %2266, ptr %30, align 8
  %2267 = extractvalue { ptr, i32 } %2265, 1
  store i32 %2267, ptr %31, align 4
  br label %2272

2268:                                             ; preds = %2243, %2241
  %2269 = landingpad { ptr, i32 }
          cleanup
  %2270 = extractvalue { ptr, i32 } %2269, 0
  store ptr %2270, ptr %30, align 8
  %2271 = extractvalue { ptr, i32 } %2269, 1
  store i32 %2271, ptr %31, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %78) #6
  br label %2272

2272:                                             ; preds = %2268, %2264
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %80) #6
  br label %2273

2273:                                             ; preds = %2272, %2260
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %79) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %78) #6
  br label %2370

2274:                                             ; preds = %2182
  %2275 = load ptr, ptr %7, align 8, !tbaa !5
  %2276 = getelementptr inbounds %class.TInfoSink, ptr %2275, i32 0, i32 0
  %2277 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %2276, ptr noundef @.str.26)
  %2278 = call noundef i32 @_ZNK7glslang13TIntermediate8getStageEv(ptr noundef nonnull align 8 dereferenceable(1784) %92)
  %2279 = call ptr @StageName(i32 noundef %2278)
  %2280 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %2277, ptr noundef %2279)
  %2281 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %2280, ptr noundef @.str.4)
  %2282 = load ptr, ptr %8, align 8, !tbaa !5
  %2283 = load ptr, ptr %2282, align 8, !tbaa !13
  %2284 = getelementptr inbounds ptr, ptr %2283, i64 50
  %2285 = load ptr, ptr %2284, align 8
  %2286 = call noundef nonnull align 8 dereferenceable(40) ptr %2285(ptr noundef nonnull align 8 dereferenceable(256) %2282)
  %2287 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %2281, ptr noundef nonnull align 8 dereferenceable(40) %2286)
  %2288 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %2287, ptr noundef @.str.51)
  call void @llvm.lifetime.start.p0(i64 40, ptr %82) #6
  %2289 = load ptr, ptr %8, align 8, !tbaa !5
  %2290 = load ptr, ptr %2289, align 8, !tbaa !13
  %2291 = getelementptr inbounds ptr, ptr %2290, i64 30
  %2292 = load ptr, ptr %2291, align 8
  %2293 = call noundef nonnull align 8 dereferenceable(144) ptr %2292(ptr noundef nonnull align 8 dereferenceable(176) %2289)
  %2294 = load i8, ptr %14, align 1, !tbaa !11, !range !17, !noundef !18
  %2295 = trunc i8 %2294 to i1
  %2296 = load i8, ptr %15, align 1, !tbaa !11, !range !17, !noundef !18
  %2297 = trunc i8 %2296 to i1
  %2298 = load i8, ptr %16, align 1, !tbaa !11, !range !17, !noundef !18
  %2299 = trunc i8 %2298 to i1
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #6
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %84)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %83, ptr noundef @.str.31, ptr noundef nonnull align 8 dereferenceable(8) %84)
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #6
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %86)
          to label %2300 unwind label %2339

2300:                                             ; preds = %2274
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %85, ptr noundef @.str.31, ptr noundef nonnull align 8 dereferenceable(8) %86)
          to label %2301 unwind label %2339

2301:                                             ; preds = %2300
  invoke void @_ZNK7glslang5TType17getCompleteStringEbbbbNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string.91") align 8 %82, ptr noundef nonnull align 8 dereferenceable(144) %2293, i1 noundef zeroext true, i1 noundef zeroext %2295, i1 noundef zeroext %2297, i1 noundef zeroext %2299, ptr noundef %83, ptr noundef %85)
          to label %2302 unwind label %2343

2302:                                             ; preds = %2301
  %2303 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %2288, ptr noundef nonnull align 8 dereferenceable(40) %82)
          to label %2304 unwind label %2347

2304:                                             ; preds = %2302
  %2305 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %2303, ptr noundef @.str.33)
          to label %2306 unwind label %2347

2306:                                             ; preds = %2304
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %82) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %85) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %83) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %82) #6
  %2307 = load ptr, ptr %7, align 8, !tbaa !5
  %2308 = getelementptr inbounds %class.TInfoSink, ptr %2307, i32 0, i32 0
  %2309 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %2308, ptr noundef @.str.26)
  %2310 = load i32, ptr %10, align 4, !tbaa !9
  %2311 = call ptr @StageName(i32 noundef %2310)
  %2312 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %2309, ptr noundef %2311)
  %2313 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %2312, ptr noundef @.str.4)
  %2314 = load ptr, ptr %9, align 8, !tbaa !5
  %2315 = load ptr, ptr %2314, align 8, !tbaa !13
  %2316 = getelementptr inbounds ptr, ptr %2315, i64 50
  %2317 = load ptr, ptr %2316, align 8
  %2318 = call noundef nonnull align 8 dereferenceable(40) ptr %2317(ptr noundef nonnull align 8 dereferenceable(256) %2314)
  %2319 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %2313, ptr noundef nonnull align 8 dereferenceable(40) %2318)
  %2320 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %2319, ptr noundef @.str.51)
  call void @llvm.lifetime.start.p0(i64 40, ptr %87) #6
  %2321 = load ptr, ptr %9, align 8, !tbaa !5
  %2322 = load ptr, ptr %2321, align 8, !tbaa !13
  %2323 = getelementptr inbounds ptr, ptr %2322, i64 30
  %2324 = load ptr, ptr %2323, align 8
  %2325 = call noundef nonnull align 8 dereferenceable(144) ptr %2324(ptr noundef nonnull align 8 dereferenceable(176) %2321)
  %2326 = load i8, ptr %14, align 1, !tbaa !11, !range !17, !noundef !18
  %2327 = trunc i8 %2326 to i1
  %2328 = load i8, ptr %15, align 1, !tbaa !11, !range !17, !noundef !18
  %2329 = trunc i8 %2328 to i1
  %2330 = load i8, ptr %16, align 1, !tbaa !11, !range !17, !noundef !18
  %2331 = trunc i8 %2330 to i1
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #6
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %89)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %88, ptr noundef @.str.31, ptr noundef nonnull align 8 dereferenceable(8) %89)
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #6
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %91)
          to label %2332 unwind label %2353

2332:                                             ; preds = %2306
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %90, ptr noundef @.str.31, ptr noundef nonnull align 8 dereferenceable(8) %91)
          to label %2333 unwind label %2353

2333:                                             ; preds = %2332
  invoke void @_ZNK7glslang5TType17getCompleteStringEbbbbNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string.91") align 8 %87, ptr noundef nonnull align 8 dereferenceable(144) %2325, i1 noundef zeroext true, i1 noundef zeroext %2327, i1 noundef zeroext %2329, i1 noundef zeroext %2331, ptr noundef %88, ptr noundef %90)
          to label %2334 unwind label %2357

2334:                                             ; preds = %2333
  %2335 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %2320, ptr noundef nonnull align 8 dereferenceable(40) %87)
          to label %2336 unwind label %2361

2336:                                             ; preds = %2334
  %2337 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %2335, ptr noundef @.str.33)
          to label %2338 unwind label %2361

2338:                                             ; preds = %2336
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %87) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %90) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %88) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %87) #6
  br label %2367

2339:                                             ; preds = %2300, %2274
  %2340 = landingpad { ptr, i32 }
          cleanup
  %2341 = extractvalue { ptr, i32 } %2340, 0
  store ptr %2341, ptr %30, align 8
  %2342 = extractvalue { ptr, i32 } %2340, 1
  store i32 %2342, ptr %31, align 4
  br label %2352

2343:                                             ; preds = %2301
  %2344 = landingpad { ptr, i32 }
          cleanup
  %2345 = extractvalue { ptr, i32 } %2344, 0
  store ptr %2345, ptr %30, align 8
  %2346 = extractvalue { ptr, i32 } %2344, 1
  store i32 %2346, ptr %31, align 4
  br label %2351

2347:                                             ; preds = %2304, %2302
  %2348 = landingpad { ptr, i32 }
          cleanup
  %2349 = extractvalue { ptr, i32 } %2348, 0
  store ptr %2349, ptr %30, align 8
  %2350 = extractvalue { ptr, i32 } %2348, 1
  store i32 %2350, ptr %31, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %82) #6
  br label %2351

2351:                                             ; preds = %2347, %2343
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %85) #6
  br label %2352

2352:                                             ; preds = %2351, %2339
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %83) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %82) #6
  br label %2370

2353:                                             ; preds = %2332, %2306
  %2354 = landingpad { ptr, i32 }
          cleanup
  %2355 = extractvalue { ptr, i32 } %2354, 0
  store ptr %2355, ptr %30, align 8
  %2356 = extractvalue { ptr, i32 } %2354, 1
  store i32 %2356, ptr %31, align 4
  br label %2366

2357:                                             ; preds = %2333
  %2358 = landingpad { ptr, i32 }
          cleanup
  %2359 = extractvalue { ptr, i32 } %2358, 0
  store ptr %2359, ptr %30, align 8
  %2360 = extractvalue { ptr, i32 } %2358, 1
  store i32 %2360, ptr %31, align 4
  br label %2365

2361:                                             ; preds = %2336, %2334
  %2362 = landingpad { ptr, i32 }
          cleanup
  %2363 = extractvalue { ptr, i32 } %2362, 0
  store ptr %2363, ptr %30, align 8
  %2364 = extractvalue { ptr, i32 } %2362, 1
  store i32 %2364, ptr %31, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %87) #6
  br label %2365

2365:                                             ; preds = %2361, %2357
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %90) #6
  br label %2366

2366:                                             ; preds = %2365, %2353
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %88) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %87) #6
  br label %2370

2367:                                             ; preds = %2338, %2245
  br label %2368

2368:                                             ; preds = %2367, %2181
  br label %2369

2369:                                             ; preds = %2368, %1913
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #6
  ret void

2370:                                             ; preds = %2366, %2352, %2273, %2259, %2180, %2166, %2065, %2051
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #6
  br label %2371

2371:                                             ; preds = %2370, %1002, %738
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #6
  br label %2372

2372:                                             ; preds = %2371
  %2373 = load ptr, ptr %30, align 8
  %2374 = load i32, ptr %31, align 4
  %2375 = insertvalue { ptr, i32 } poison, ptr %2373, 0
  %2376 = insertvalue { ptr, i32 } %2375, i32 %2374, 1
  resume { ptr, i32 } %2376
}

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7glslang11IsAnonymousERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(40)) #5

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK7glslang16TConstUnionArrayneERKS0_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) #0 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 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress 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 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { 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 #5 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"_ZTS11EShLanguage", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"bool", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"vtable pointer", !8, i64 0}
!15 = !{!16, !16, i64 0}
!16 = !{!"int", !7, i64 0}
!17 = !{i8 0, i8 2}
!18 = !{}
!19 = distinct !{!19, !20}
!20 = !{!"llvm.loop.mustprogress"}
!21 = !{!22, !6, i64 0}
!22 = !{!"_ZTSN7glslang8TTypeLocE", !6, i64 0, !23, i64 8}
!23 = !{!"_ZTSN7glslang10TSourceLocE", !6, i64 0, !16, i64 8, !16, i64 12, !16, i64 16}
!24 = distinct !{!24, !20}
!25 = !{!26, !16, i64 20}
!26 = !{!"_ZTSN7glslang10TQualifierE", !6, i64 0, !27, i64 8, !28, i64 8, !28, i64 9, !29, i64 11, !12, i64 11, !12, i64 11, !12, i64 11, !12, i64 11, !12, i64 11, !12, i64 12, !12, i64 12, !12, i64 12, !12, i64 12, !12, i64 12, !12, i64 12, !12, i64 12, !12, i64 12, !12, i64 13, !12, i64 13, !12, i64 13, !12, i64 13, !12, i64 13, !12, i64 13, !12, i64 13, !12, i64 13, !12, i64 14, !12, i64 14, !12, i64 14, !12, i64 14, !12, i64 14, !12, i64 14, !12, i64 14, !12, i64 14, !12, i64 15, !12, i64 15, !12, i64 15, !30, i64 15, !31, i64 16, !16, i64 20, !16, i64 24, !16, i64 28, !16, i64 29, !16, i64 29, !16, i64 32, !16, i64 34, !16, i64 35, !16, i64 36, !16, i64 36, !16, i64 38, !16, i64 40, !16, i64 41, !16, i64 42, !32, i64 44, !12, i64 45, !12, i64 46, !12, i64 47, !12, i64 48, !16, i64 52, !12, i64 56, !16, i64 60, !6, i64 64}
!27 = !{!"_ZTSN7glslang17TStorageQualifierE", !7, i64 0}
!28 = !{!"_ZTSN7glslang16TBuiltInVariableE", !7, i64 0}
!29 = !{!"_ZTSN7glslang19TPrecisionQualifierE", !7, i64 0}
!30 = !{!"_ZTSN7glslang13TLayoutMatrixE", !7, i64 0}
!31 = !{!"_ZTSN7glslang14TLayoutPackingE", !7, i64 0}
!32 = !{!"_ZTSN7glslang13TLayoutFormatE", !7, i64 0}
!33 = !{!26, !16, i64 24}


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

%"class.std::__cxx11::basic_string.91" = type { %"struct.std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>::_Alloc_hider", i64, %union.anon.93 }
%"struct.std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>::_Alloc_hider" = type { %"class.glslang::pool_allocator.92", ptr }
%"class.glslang::pool_allocator.92" = type { ptr }
%union.anon.93 = type { i64, [8 x i8] }

@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [4 x i8], align 1

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

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

declare ptr @StageName(i32 noundef) local_unnamed_addr #1

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

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

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

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

71:                                               ; preds = %5
  %72 = load ptr, ptr %3, align 8, !tbaa !5
  %73 = getelementptr inbounds i8, ptr %72, i64 240
  %74 = load ptr, ptr %73, align 8
  %75 = tail call noundef nonnull align 8 dereferenceable(144) ptr %74(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %76 = tail call noundef zeroext i1 @_ZN7glslang13TIntermediate15isIoResizeArrayERKNS_5TTypeE11EShLanguage(ptr noundef nonnull align 8 dereferenceable(144) %75, i32 noundef %4)
  br i1 %76, label %77, label %133

77:                                               ; preds = %71, %5
  %78 = load ptr, ptr %2, align 8, !tbaa !5
  %79 = getelementptr inbounds i8, ptr %78, i64 240
  %80 = load ptr, ptr %79, align 8
  %81 = tail call noundef nonnull align 8 dereferenceable(144) ptr %80(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %82 = tail call noundef i32 @_ZNK7glslang13TIntermediate8getStageEv(ptr noundef nonnull align 8 dereferenceable(1784) %0)
  %83 = tail call noundef zeroext i1 @_ZN7glslang13TIntermediate15isIoResizeArrayERKNS_5TTypeE11EShLanguage(ptr noundef nonnull align 8 dereferenceable(144) %81, i32 noundef %82)
  %84 = zext i1 %83 to i32
  %85 = load ptr, ptr %2, align 8, !tbaa !5
  %86 = getelementptr inbounds i8, ptr %85, i64 288
  %87 = load ptr, ptr %86, align 8
  %88 = tail call noundef ptr %87(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %.not424 = icmp eq ptr %88, null
  br i1 %.not424, label %95, label %89

89:                                               ; preds = %77
  %90 = load ptr, ptr %2, align 8, !tbaa !5
  %91 = getelementptr inbounds i8, ptr %90, i64 288
  %92 = load ptr, ptr %91, align 8
  %93 = tail call noundef ptr %92(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %94 = tail call noundef i32 @_ZNK7glslang11TArraySizes10getNumDimsEv(ptr noundef nonnull align 8 dereferenceable(21) %93)
  br label %95

95:                                               ; preds = %77, %89
  %96 = phi i32 [ %94, %89 ], [ 0, %77 ]
  %97 = load ptr, ptr %3, align 8, !tbaa !5
  %98 = getelementptr inbounds i8, ptr %97, i64 240
  %99 = load ptr, ptr %98, align 8
  %100 = tail call noundef nonnull align 8 dereferenceable(144) ptr %99(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %101 = tail call noundef zeroext i1 @_ZN7glslang13TIntermediate15isIoResizeArrayERKNS_5TTypeE11EShLanguage(ptr noundef nonnull align 8 dereferenceable(144) %100, i32 noundef %4)
  %102 = zext i1 %101 to i32
  %103 = load ptr, ptr %3, align 8, !tbaa !5
  %104 = getelementptr inbounds i8, ptr %103, i64 288
  %105 = load ptr, ptr %104, align 8
  %106 = tail call noundef ptr %105(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %.not425 = icmp eq ptr %106, null
  br i1 %.not425, label %113, label %107

107:                                              ; preds = %95
  %108 = load ptr, ptr %3, align 8, !tbaa !5
  %109 = getelementptr inbounds i8, ptr %108, i64 288
  %110 = load ptr, ptr %109, align 8
  %111 = tail call noundef ptr %110(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %112 = tail call noundef i32 @_ZNK7glslang11TArraySizes10getNumDimsEv(ptr noundef nonnull align 8 dereferenceable(21) %111)
  br label %113

113:                                              ; preds = %95, %107
  %114 = phi i32 [ %112, %107 ], [ 0, %95 ]
  %115 = sub i32 %96, %84
  %116 = sub i32 %114, %102
  %117 = icmp eq i32 %115, %116
  %118 = icmp ne i32 %96, %84
  %119 = and i1 %117, %118
  br i1 %119, label %.lr.ph.split, label %.loopexit

.lr.ph.split:                                     ; preds = %113, %.lr.ph.split
  %.0413564 = phi i32 [ %132, %.lr.ph.split ], [ 0, %113 ]
  %120 = load ptr, ptr %2, align 8, !tbaa !5
  %121 = getelementptr inbounds i8, ptr %120, i64 288
  %122 = load ptr, ptr %121, align 8
  %123 = tail call noundef ptr %122(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %124 = add nuw i32 %.0413564, %84
  %125 = tail call noundef i32 @_ZNK7glslang11TArraySizes10getDimSizeEi(ptr noundef nonnull align 8 dereferenceable(21) %123, i32 noundef %124)
  %126 = load ptr, ptr %3, align 8, !tbaa !5
  %127 = getelementptr inbounds i8, ptr %126, i64 288
  %128 = load ptr, ptr %127, align 8
  %129 = tail call noundef ptr %128(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %130 = add nuw i32 %.0413564, %102
  %131 = tail call noundef i32 @_ZNK7glslang11TArraySizes10getDimSizeEi(ptr noundef nonnull align 8 dereferenceable(21) %129, i32 noundef %130)
  %.not426 = icmp eq i32 %125, %131
  %132 = add nuw i32 %.0413564, 1
  %exitcond.not = icmp ne i32 %132, %115
  %or.cond637.not = select i1 %.not426, i1 %exitcond.not, i1 false
  br i1 %or.cond637.not, label %.lr.ph.split, label %.loopexit, !llvm.loop !8

133:                                              ; preds = %71
  %134 = load ptr, ptr %2, align 8, !tbaa !5
  %135 = getelementptr inbounds i8, ptr %134, i64 240
  %136 = load ptr, ptr %135, align 8
  %137 = tail call noundef nonnull align 8 dereferenceable(144) ptr %136(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %138 = load ptr, ptr %3, align 8, !tbaa !5
  %139 = getelementptr inbounds i8, ptr %138, i64 240
  %140 = load ptr, ptr %139, align 8
  %141 = tail call noundef nonnull align 8 dereferenceable(144) ptr %140(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %142 = tail call noundef zeroext i1 @_ZNK7glslang5TType13sameArraynessERKS0_(ptr noundef nonnull align 8 dereferenceable(144) %137, ptr noundef nonnull align 8 dereferenceable(144) %141)
  br i1 %142, label %.loopexit, label %143

143:                                              ; preds = %133
  %144 = load ptr, ptr %2, align 8, !tbaa !5
  %145 = getelementptr inbounds i8, ptr %144, i64 240
  %146 = load ptr, ptr %145, align 8
  %147 = tail call noundef nonnull align 8 dereferenceable(144) ptr %146(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %148 = load ptr, ptr %147, align 8, !tbaa !5
  %149 = getelementptr inbounds i8, ptr %148, i64 232
  %150 = load ptr, ptr %149, align 8
  %151 = tail call noundef zeroext i1 %150(ptr noundef nonnull align 8 dereferenceable(144) %147)
  br i1 %151, label %152, label %.loopexit

152:                                              ; preds = %143
  %153 = load ptr, ptr %3, align 8, !tbaa !5
  %154 = getelementptr inbounds i8, ptr %153, i64 240
  %155 = load ptr, ptr %154, align 8
  %156 = tail call noundef nonnull align 8 dereferenceable(144) ptr %155(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %157 = load ptr, ptr %156, align 8, !tbaa !5
  %158 = getelementptr inbounds i8, ptr %157, i64 232
  %159 = load ptr, ptr %158, align 8
  %160 = tail call noundef zeroext i1 %159(ptr noundef nonnull align 8 dereferenceable(144) %156)
  br i1 %160, label %161, label %.loopexit

161:                                              ; preds = %152
  %162 = load ptr, ptr %2, align 8, !tbaa !5
  %163 = getelementptr inbounds i8, ptr %162, i64 240
  %164 = load ptr, ptr %163, align 8
  %165 = tail call noundef nonnull align 8 dereferenceable(144) ptr %164(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %166 = load ptr, ptr %165, align 8, !tbaa !5
  %167 = getelementptr inbounds i8, ptr %166, i64 248
  %168 = load ptr, ptr %167, align 8
  %169 = tail call noundef zeroext i1 %168(ptr noundef nonnull align 8 dereferenceable(144) %165)
  br i1 %169, label %.loopexit, label %170

170:                                              ; preds = %161
  %171 = load ptr, ptr %3, align 8, !tbaa !5
  %172 = getelementptr inbounds i8, ptr %171, i64 240
  %173 = load ptr, ptr %172, align 8
  %174 = tail call noundef nonnull align 8 dereferenceable(144) ptr %173(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %175 = load ptr, ptr %174, align 8, !tbaa !5
  %176 = getelementptr inbounds i8, ptr %175, i64 248
  %177 = load ptr, ptr %176, align 8
  %178 = tail call noundef zeroext i1 %177(ptr noundef nonnull align 8 dereferenceable(144) %174)
  br label %.loopexit

.loopexit:                                        ; preds = %.lr.ph.split, %113, %133, %161, %170, %152, %143
  %.1418 = phi i1 [ true, %133 ], [ false, %152 ], [ false, %143 ], [ true, %161 ], [ %178, %170 ], [ %117, %113 ], [ %.not426, %.lr.ph.split ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #6
  store i32 -1, ptr %6, align 4, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #6
  store i32 -1, ptr %7, align 4, !tbaa !10
  %179 = load ptr, ptr %2, align 8, !tbaa !5
  %180 = getelementptr inbounds i8, ptr %179, i64 240
  %181 = load ptr, ptr %180, align 8
  %182 = tail call noundef nonnull align 8 dereferenceable(144) ptr %181(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %183 = load ptr, ptr %3, align 8, !tbaa !5
  %184 = getelementptr inbounds i8, ptr %183, i64 240
  %185 = load ptr, ptr %184, align 8
  %186 = tail call noundef nonnull align 8 dereferenceable(144) ptr %185(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %187 = call noundef zeroext i1 @_ZNK7glslang5TType15sameElementTypeERKS0_PiS3_(ptr noundef nonnull align 8 dereferenceable(144) %182, ptr noundef nonnull align 8 dereferenceable(144) %186, ptr noundef nonnull %6, ptr noundef nonnull %7)
  br i1 %187, label %453, label %188

188:                                              ; preds = %.loopexit
  %189 = load i32, ptr %6, align 4, !tbaa !10
  %190 = icmp sgt i32 %189, -1
  %191 = load i32, ptr %7, align 4
  %192 = icmp sgt i32 %191, -1
  %or.cond = select i1 %190, i1 %192, i1 false
  br i1 %or.cond, label %193, label %288

193:                                              ; preds = %188
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.35, i32 noundef %4)
  %194 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1, ptr noundef nonnull @.str.36)
  %195 = load ptr, ptr %2, align 8, !tbaa !5
  %196 = getelementptr inbounds i8, ptr %195, i64 240
  %197 = load ptr, ptr %196, align 8
  %198 = call noundef nonnull align 8 dereferenceable(144) ptr %197(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %199 = load ptr, ptr %198, align 8, !tbaa !5
  %200 = getelementptr inbounds i8, ptr %199, i64 40
  %201 = load ptr, ptr %200, align 8
  %202 = call noundef nonnull align 8 dereferenceable(40) ptr %201(ptr noundef nonnull align 8 dereferenceable(144) %198)
  %203 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %194, ptr noundef nonnull align 8 dereferenceable(40) %202)
  %204 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %203, ptr noundef nonnull @.str.3)
  %205 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1, ptr noundef nonnull @.str.37)
  %206 = call noundef i32 @_ZNK7glslang13TIntermediate8getStageEv(ptr noundef nonnull align 8 dereferenceable(1784) %0)
  %207 = call ptr @StageName(i32 noundef %206)
  %208 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %205, ptr noundef %207)
  %209 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %208, ptr noundef nonnull @.str.38)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %8) #6
  %210 = load ptr, ptr %2, align 8, !tbaa !5
  %211 = getelementptr inbounds i8, ptr %210, i64 240
  %212 = load ptr, ptr %211, align 8
  %213 = call noundef nonnull align 8 dereferenceable(144) ptr %212(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %214 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %213)
  %215 = load i32, ptr %6, align 4, !tbaa !10
  %216 = sext i32 %215 to i64
  %217 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %214, i64 noundef %216) #6
  %218 = load ptr, ptr %217, align 8, !tbaa !13
  %219 = load ptr, ptr %2, align 8, !tbaa !5
  %220 = getelementptr inbounds i8, ptr %219, i64 240
  %221 = load ptr, ptr %220, align 8
  %222 = call noundef nonnull align 8 dereferenceable(144) ptr %221(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %223 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %222)
  %224 = load i32, ptr %6, align 4, !tbaa !10
  %225 = sext i32 %224 to i64
  %226 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %223, i64 noundef %225) #6
  %227 = load ptr, ptr %226, align 8, !tbaa !13
  %228 = load ptr, ptr %227, align 8, !tbaa !5
  %229 = getelementptr inbounds i8, ptr %228, i64 48
  %230 = load ptr, ptr %229, align 8
  %231 = call noundef nonnull align 8 dereferenceable(40) ptr %230(ptr noundef nonnull align 8 dereferenceable(144) %227)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(40) %9, ptr noundef nonnull align 8 dereferenceable(40) %231)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #6
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %11)
          to label %232 unwind label %272

232:                                              ; preds = %193
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %10, ptr noundef nonnull @.str.31, ptr noundef nonnull align 8 dereferenceable(8) %11)
          to label %233 unwind label %272

233:                                              ; preds = %232
  invoke void @_ZNK7glslang5TType17getCompleteStringEbbbbNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string.91") align 8 %8, ptr noundef nonnull align 8 dereferenceable(144) %218, i1 noundef zeroext true, i1 noundef zeroext false, i1 noundef zeroext false, i1 noundef zeroext true, ptr noundef nonnull %9, ptr noundef nonnull %10)
          to label %234 unwind label %274

234:                                              ; preds = %233
  %235 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %209, ptr noundef nonnull align 8 dereferenceable(40) %8)
          to label %236 unwind label %276

236:                                              ; preds = %234
  %237 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %235, ptr noundef nonnull @.str.33)
          to label %238 unwind label %276

238:                                              ; preds = %236
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %8) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %10) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %9) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %8) #6
  %239 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1, ptr noundef nonnull @.str.37)
  %240 = call ptr @StageName(i32 noundef %4)
  %241 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %239, ptr noundef %240)
  %242 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %241, ptr noundef nonnull @.str.38)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %12) #6
  %243 = load ptr, ptr %3, align 8, !tbaa !5
  %244 = getelementptr inbounds i8, ptr %243, i64 240
  %245 = load ptr, ptr %244, align 8
  %246 = call noundef nonnull align 8 dereferenceable(144) ptr %245(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %247 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %246)
  %248 = load i32, ptr %7, align 4, !tbaa !10
  %249 = sext i32 %248 to i64
  %250 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %247, i64 noundef %249) #6
  %251 = load ptr, ptr %250, align 8, !tbaa !13
  %252 = load ptr, ptr %3, align 8, !tbaa !5
  %253 = getelementptr inbounds i8, ptr %252, i64 240
  %254 = load ptr, ptr %253, align 8
  %255 = call noundef nonnull align 8 dereferenceable(144) ptr %254(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %256 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %255)
  %257 = load i32, ptr %7, align 4, !tbaa !10
  %258 = sext i32 %257 to i64
  %259 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %256, i64 noundef %258) #6
  %260 = load ptr, ptr %259, align 8, !tbaa !13
  %261 = load ptr, ptr %260, align 8, !tbaa !5
  %262 = getelementptr inbounds i8, ptr %261, i64 48
  %263 = load ptr, ptr %262, align 8
  %264 = call noundef nonnull align 8 dereferenceable(40) ptr %263(ptr noundef nonnull align 8 dereferenceable(144) %260)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(40) %13, ptr noundef nonnull align 8 dereferenceable(40) %264)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #6
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %265 unwind label %280

265:                                              ; preds = %238
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %14, ptr noundef nonnull @.str.31, ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %266 unwind label %280

266:                                              ; preds = %265
  invoke void @_ZNK7glslang5TType17getCompleteStringEbbbbNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string.91") align 8 %12, ptr noundef nonnull align 8 dereferenceable(144) %251, i1 noundef zeroext true, i1 noundef zeroext false, i1 noundef zeroext false, i1 noundef zeroext true, ptr noundef nonnull %13, ptr noundef nonnull %14)
          to label %267 unwind label %282

267:                                              ; preds = %266
  %268 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %242, ptr noundef nonnull align 8 dereferenceable(40) %12)
          to label %269 unwind label %284

269:                                              ; preds = %267
  %270 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %268, ptr noundef nonnull @.str.33)
          to label %271 unwind label %284

271:                                              ; preds = %269
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %12) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %14) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %13) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %12) #6
  br label %466

272:                                              ; preds = %232, %193
  %273 = landingpad { ptr, i32 }
          cleanup
  br label %279

274:                                              ; preds = %233
  %275 = landingpad { ptr, i32 }
          cleanup
  br label %278

276:                                              ; preds = %236, %234
  %277 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %8) #6
  br label %278

278:                                              ; preds = %276, %274
  %.pn = phi { ptr, i32 } [ %277, %276 ], [ %275, %274 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %10) #6
  br label %279

279:                                              ; preds = %278, %272
  %.pn.pn = phi { ptr, i32 } [ %.pn, %278 ], [ %273, %272 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %9) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %8) #6
  br label %546

280:                                              ; preds = %265, %238
  %281 = landingpad { ptr, i32 }
          cleanup
  br label %287

282:                                              ; preds = %266
  %283 = landingpad { ptr, i32 }
          cleanup
  br label %286

284:                                              ; preds = %269, %267
  %285 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %12) #6
  br label %286

286:                                              ; preds = %284, %282
  %.pn429 = phi { ptr, i32 } [ %285, %284 ], [ %283, %282 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %14) #6
  br label %287

287:                                              ; preds = %286, %280
  %.pn429.pn = phi { ptr, i32 } [ %.pn429, %286 ], [ %281, %280 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %13) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %12) #6
  br label %546

288:                                              ; preds = %188
  %289 = icmp eq i32 %191, -1
  %or.cond3 = select i1 %190, i1 %289, i1 false
  br i1 %or.cond3, label %290, label %370

290:                                              ; preds = %288
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %16) #6
  %291 = call noundef i32 @_ZNK7glslang13TIntermediate8getStageEv(ptr noundef nonnull align 8 dereferenceable(1784) %0)
  %292 = call ptr @StageName(i32 noundef %291)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #6
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %17)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %16, ptr noundef %292, ptr noundef nonnull align 8 dereferenceable(8) %17)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #6
  %293 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(40) %16, ptr noundef nonnull @.str.39)
          to label %294 unwind label %368

294:                                              ; preds = %290
  %295 = invoke ptr @StageName(i32 noundef %4)
          to label %296 unwind label %368

296:                                              ; preds = %294
  %297 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(40) %293, ptr noundef %295)
          to label %298 unwind label %368

298:                                              ; preds = %296
  %299 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(40) %297, ptr noundef nonnull @.str.40)
          to label %300 unwind label %368

300:                                              ; preds = %298
  %301 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %16) #6
  invoke void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef %301, i32 noundef %4)
          to label %302 unwind label %368

302:                                              ; preds = %300
  %303 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1, ptr noundef nonnull @.str.26)
          to label %304 unwind label %368

304:                                              ; preds = %302
  %305 = call noundef i32 @_ZNK7glslang13TIntermediate8getStageEv(ptr noundef nonnull align 8 dereferenceable(1784) %0)
  %306 = invoke ptr @StageName(i32 noundef %305)
          to label %307 unwind label %368

307:                                              ; preds = %304
  %308 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %303, ptr noundef %306)
          to label %309 unwind label %368

309:                                              ; preds = %307
  %310 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %308, ptr noundef nonnull @.str.41)
          to label %311 unwind label %368

311:                                              ; preds = %309
  %312 = load ptr, ptr %2, align 8, !tbaa !5
  %313 = getelementptr inbounds i8, ptr %312, i64 240
  %314 = load ptr, ptr %313, align 8
  %315 = invoke noundef nonnull align 8 dereferenceable(144) ptr %314(ptr noundef nonnull align 8 dereferenceable(176) %2)
          to label %316 unwind label %368

316:                                              ; preds = %311
  %317 = load ptr, ptr %315, align 8, !tbaa !5
  %318 = getelementptr inbounds i8, ptr %317, i64 40
  %319 = load ptr, ptr %318, align 8
  %320 = invoke noundef nonnull align 8 dereferenceable(40) ptr %319(ptr noundef nonnull align 8 dereferenceable(144) %315)
          to label %321 unwind label %368

321:                                              ; preds = %316
  %322 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %310, ptr noundef nonnull align 8 dereferenceable(40) %320)
          to label %323 unwind label %368

323:                                              ; preds = %321
  %324 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %322, ptr noundef nonnull @.str.42)
          to label %325 unwind label %368

325:                                              ; preds = %323
  %326 = load ptr, ptr %2, align 8, !tbaa !5
  %327 = getelementptr inbounds i8, ptr %326, i64 240
  %328 = load ptr, ptr %327, align 8
  %329 = invoke noundef nonnull align 8 dereferenceable(144) ptr %328(ptr noundef nonnull align 8 dereferenceable(176) %2)
          to label %330 unwind label %368

330:                                              ; preds = %325
  %331 = invoke noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %329)
          to label %332 unwind label %368

332:                                              ; preds = %330
  %333 = load i32, ptr %6, align 4, !tbaa !10
  %334 = sext i32 %333 to i64
  %335 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %331, i64 noundef %334) #6
  %336 = load ptr, ptr %335, align 8, !tbaa !13
  %337 = load ptr, ptr %336, align 8, !tbaa !5
  %338 = getelementptr inbounds i8, ptr %337, i64 48
  %339 = load ptr, ptr %338, align 8
  %340 = invoke noundef nonnull align 8 dereferenceable(40) ptr %339(ptr noundef nonnull align 8 dereferenceable(144) %336)
          to label %341 unwind label %368

341:                                              ; preds = %332
  %342 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %324, ptr noundef nonnull align 8 dereferenceable(40) %340)
          to label %343 unwind label %368

343:                                              ; preds = %341
  %344 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %342, ptr noundef nonnull @.str.3)
          to label %345 unwind label %368

345:                                              ; preds = %343
  %346 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1, ptr noundef nonnull @.str.26)
          to label %347 unwind label %368

347:                                              ; preds = %345
  %348 = invoke ptr @StageName(i32 noundef %4)
          to label %349 unwind label %368

349:                                              ; preds = %347
  %350 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %346, ptr noundef %348)
          to label %351 unwind label %368

351:                                              ; preds = %349
  %352 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %350, ptr noundef nonnull @.str.41)
          to label %353 unwind label %368

353:                                              ; preds = %351
  %354 = load ptr, ptr %3, align 8, !tbaa !5
  %355 = getelementptr inbounds i8, ptr %354, i64 240
  %356 = load ptr, ptr %355, align 8
  %357 = invoke noundef nonnull align 8 dereferenceable(144) ptr %356(ptr noundef nonnull align 8 dereferenceable(176) %3)
          to label %358 unwind label %368

358:                                              ; preds = %353
  %359 = load ptr, ptr %357, align 8, !tbaa !5
  %360 = getelementptr inbounds i8, ptr %359, i64 40
  %361 = load ptr, ptr %360, align 8
  %362 = invoke noundef nonnull align 8 dereferenceable(40) ptr %361(ptr noundef nonnull align 8 dereferenceable(144) %357)
          to label %363 unwind label %368

363:                                              ; preds = %358
  %364 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %352, ptr noundef nonnull align 8 dereferenceable(40) %362)
          to label %365 unwind label %368

365:                                              ; preds = %363
  %366 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %364, ptr noundef nonnull @.str.43)
          to label %367 unwind label %368

367:                                              ; preds = %365
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %16) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %16) #6
  br label %466

368:                                              ; preds = %365, %363, %358, %353, %351, %349, %347, %345, %343, %341, %332, %330, %325, %323, %321, %316, %311, %309, %307, %304, %302, %300, %298, %296, %294, %290
  %369 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %16) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %16) #6
  br label %546

370:                                              ; preds = %288
  %371 = icmp eq i32 %189, -1
  %or.cond5 = select i1 %371, i1 %192, i1 false
  br i1 %or.cond5, label %372, label %452

372:                                              ; preds = %370
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %18) #6
  %373 = call ptr @StageName(i32 noundef %4)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #6
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %19)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %18, ptr noundef %373, ptr noundef nonnull align 8 dereferenceable(8) %19)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #6
  %374 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(40) %18, ptr noundef nonnull @.str.39)
          to label %375 unwind label %450

375:                                              ; preds = %372
  %376 = call noundef i32 @_ZNK7glslang13TIntermediate8getStageEv(ptr noundef nonnull align 8 dereferenceable(1784) %0)
  %377 = invoke ptr @StageName(i32 noundef %376)
          to label %378 unwind label %450

378:                                              ; preds = %375
  %379 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(40) %374, ptr noundef %377)
          to label %380 unwind label %450

380:                                              ; preds = %378
  %381 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(40) %379, ptr noundef nonnull @.str.40)
          to label %382 unwind label %450

382:                                              ; preds = %380
  %383 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %18) #6
  invoke void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef %383, i32 noundef %4)
          to label %384 unwind label %450

384:                                              ; preds = %382
  %385 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1, ptr noundef nonnull @.str.26)
          to label %386 unwind label %450

386:                                              ; preds = %384
  %387 = invoke ptr @StageName(i32 noundef %4)
          to label %388 unwind label %450

388:                                              ; preds = %386
  %389 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %385, ptr noundef %387)
          to label %390 unwind label %450

390:                                              ; preds = %388
  %391 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %389, ptr noundef nonnull @.str.41)
          to label %392 unwind label %450

392:                                              ; preds = %390
  %393 = load ptr, ptr %3, align 8, !tbaa !5
  %394 = getelementptr inbounds i8, ptr %393, i64 240
  %395 = load ptr, ptr %394, align 8
  %396 = invoke noundef nonnull align 8 dereferenceable(144) ptr %395(ptr noundef nonnull align 8 dereferenceable(176) %3)
          to label %397 unwind label %450

397:                                              ; preds = %392
  %398 = load ptr, ptr %396, align 8, !tbaa !5
  %399 = getelementptr inbounds i8, ptr %398, i64 40
  %400 = load ptr, ptr %399, align 8
  %401 = invoke noundef nonnull align 8 dereferenceable(40) ptr %400(ptr noundef nonnull align 8 dereferenceable(144) %396)
          to label %402 unwind label %450

402:                                              ; preds = %397
  %403 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %391, ptr noundef nonnull align 8 dereferenceable(40) %401)
          to label %404 unwind label %450

404:                                              ; preds = %402
  %405 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %403, ptr noundef nonnull @.str.42)
          to label %406 unwind label %450

406:                                              ; preds = %404
  %407 = load ptr, ptr %3, align 8, !tbaa !5
  %408 = getelementptr inbounds i8, ptr %407, i64 240
  %409 = load ptr, ptr %408, align 8
  %410 = invoke noundef nonnull align 8 dereferenceable(144) ptr %409(ptr noundef nonnull align 8 dereferenceable(176) %3)
          to label %411 unwind label %450

411:                                              ; preds = %406
  %412 = invoke noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %410)
          to label %413 unwind label %450

413:                                              ; preds = %411
  %414 = load i32, ptr %7, align 4, !tbaa !10
  %415 = sext i32 %414 to i64
  %416 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %412, i64 noundef %415) #6
  %417 = load ptr, ptr %416, align 8, !tbaa !13
  %418 = load ptr, ptr %417, align 8, !tbaa !5
  %419 = getelementptr inbounds i8, ptr %418, i64 48
  %420 = load ptr, ptr %419, align 8
  %421 = invoke noundef nonnull align 8 dereferenceable(40) ptr %420(ptr noundef nonnull align 8 dereferenceable(144) %417)
          to label %422 unwind label %450

422:                                              ; preds = %413
  %423 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %405, ptr noundef nonnull align 8 dereferenceable(40) %421)
          to label %424 unwind label %450

424:                                              ; preds = %422
  %425 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %423, ptr noundef nonnull @.str.3)
          to label %426 unwind label %450

426:                                              ; preds = %424
  %427 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1, ptr noundef nonnull @.str.26)
          to label %428 unwind label %450

428:                                              ; preds = %426
  %429 = call noundef i32 @_ZNK7glslang13TIntermediate8getStageEv(ptr noundef nonnull align 8 dereferenceable(1784) %0)
  %430 = invoke ptr @StageName(i32 noundef %429)
          to label %431 unwind label %450

431:                                              ; preds = %428
  %432 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %427, ptr noundef %430)
          to label %433 unwind label %450

433:                                              ; preds = %431
  %434 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %432, ptr noundef nonnull @.str.41)
          to label %435 unwind label %450

435:                                              ; preds = %433
  %436 = load ptr, ptr %2, align 8, !tbaa !5
  %437 = getelementptr inbounds i8, ptr %436, i64 240
  %438 = load ptr, ptr %437, align 8
  %439 = invoke noundef nonnull align 8 dereferenceable(144) ptr %438(ptr noundef nonnull align 8 dereferenceable(176) %2)
          to label %440 unwind label %450

440:                                              ; preds = %435
  %441 = load ptr, ptr %439, align 8, !tbaa !5
  %442 = getelementptr inbounds i8, ptr %441, i64 40
  %443 = load ptr, ptr %442, align 8
  %444 = invoke noundef nonnull align 8 dereferenceable(40) ptr %443(ptr noundef nonnull align 8 dereferenceable(144) %439)
          to label %445 unwind label %450

445:                                              ; preds = %440
  %446 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %434, ptr noundef nonnull align 8 dereferenceable(40) %444)
          to label %447 unwind label %450

447:                                              ; preds = %445
  %448 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %446, ptr noundef nonnull @.str.43)
          to label %449 unwind label %450

449:                                              ; preds = %447
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %18) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %18) #6
  br label %466

450:                                              ; preds = %447, %445, %440, %435, %433, %431, %428, %426, %424, %422, %413, %411, %406, %404, %402, %397, %392, %390, %388, %386, %384, %382, %380, %378, %375, %372
  %451 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %18) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %18) #6
  br label %546

452:                                              ; preds = %370
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.28, i32 noundef %4)
  br label %466

453:                                              ; preds = %.loopexit
  br i1 %.1418, label %455, label %454

454:                                              ; preds = %453
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.44, i32 noundef %4)
  br label %466

455:                                              ; preds = %453
  %456 = load ptr, ptr %2, align 8, !tbaa !5
  %457 = getelementptr inbounds i8, ptr %456, i64 240
  %458 = load ptr, ptr %457, align 8
  %459 = call noundef nonnull align 8 dereferenceable(144) ptr %458(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %460 = load ptr, ptr %3, align 8, !tbaa !5
  %461 = getelementptr inbounds i8, ptr %460, i64 240
  %462 = load ptr, ptr %461, align 8
  %463 = call noundef nonnull align 8 dereferenceable(144) ptr %462(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %464 = call noundef zeroext i1 @_ZNK7glslang5TType18sameTypeParametersERKS0_(ptr noundef nonnull align 8 dereferenceable(144) %459, ptr noundef nonnull align 8 dereferenceable(144) %463)
  br i1 %464, label %466, label %465

465:                                              ; preds = %455
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.45, i32 noundef %4)
  br label %466

466:                                              ; preds = %454, %465, %455, %271, %449, %452, %367
  %.0363 = phi i1 [ false, %455 ], [ false, %465 ], [ false, %454 ], [ true, %271 ], [ true, %367 ], [ true, %449 ], [ false, %452 ]
  %.0348 = phi i8 [ 0, %455 ], [ 1, %465 ], [ 1, %454 ], [ 0, %271 ], [ 0, %367 ], [ 0, %449 ], [ 1, %452 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #6
  %467 = load ptr, ptr %2, align 8, !tbaa !5
  %468 = getelementptr inbounds i8, ptr %467, i64 240
  %469 = load ptr, ptr %468, align 8
  %470 = call noundef nonnull align 8 dereferenceable(144) ptr %469(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %471 = load ptr, ptr %470, align 8, !tbaa !5
  %472 = getelementptr inbounds i8, ptr %471, i64 56
  %473 = load ptr, ptr %472, align 8
  %474 = call noundef i32 %473(ptr noundef nonnull align 8 dereferenceable(144) %470)
  %475 = icmp eq i32 %474, 16
  br i1 %475, label %476, label %.critedge

476:                                              ; preds = %466
  %477 = load ptr, ptr %3, align 8, !tbaa !5
  %478 = getelementptr inbounds i8, ptr %477, i64 240
  %479 = load ptr, ptr %478, align 8
  %480 = call noundef nonnull align 8 dereferenceable(144) ptr %479(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %481 = load ptr, ptr %480, align 8, !tbaa !5
  %482 = getelementptr inbounds i8, ptr %481, i64 56
  %483 = load ptr, ptr %482, align 8
  %484 = call noundef i32 %483(ptr noundef nonnull align 8 dereferenceable(144) %480)
  %485 = icmp eq i32 %484, 16
  br i1 %485, label %486, label %.critedge

486:                                              ; preds = %476
  %487 = load ptr, ptr %2, align 8, !tbaa !5
  %488 = getelementptr inbounds i8, ptr %487, i64 240
  %489 = load ptr, ptr %488, align 8
  %490 = call noundef nonnull align 8 dereferenceable(144) ptr %489(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %491 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %490)
  %.not433 = icmp eq ptr %491, null
  br i1 %.not433, label %.critedge, label %492

492:                                              ; preds = %486
  %493 = load ptr, ptr %3, align 8, !tbaa !5
  %494 = getelementptr inbounds i8, ptr %493, i64 240
  %495 = load ptr, ptr %494, align 8
  %496 = call noundef nonnull align 8 dereferenceable(144) ptr %495(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %497 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %496)
  %.not434 = icmp eq ptr %497, null
  br i1 %.not434, label %.critedge, label %498

498:                                              ; preds = %492
  %499 = load ptr, ptr %2, align 8, !tbaa !5
  %500 = getelementptr inbounds i8, ptr %499, i64 240
  %501 = load ptr, ptr %500, align 8
  %502 = call noundef nonnull align 8 dereferenceable(144) ptr %501(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %503 = load ptr, ptr %3, align 8, !tbaa !5
  %504 = getelementptr inbounds i8, ptr %503, i64 240
  %505 = load ptr, ptr %504, align 8
  %506 = call noundef nonnull align 8 dereferenceable(144) ptr %505(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %507 = call noundef zeroext i1 @_ZNK7glslang5TType14sameStructTypeERKS0_PiS3_(ptr noundef nonnull align 8 dereferenceable(144) %502, ptr noundef nonnull align 8 dereferenceable(144) %506, ptr noundef null, ptr noundef null)
  br i1 %507, label %.preheader, label %.critedge

.preheader:                                       ; preds = %498
  %508 = load ptr, ptr %2, align 8, !tbaa !5
  %509 = getelementptr inbounds i8, ptr %508, i64 240
  %510 = load ptr, ptr %509, align 8
  %511 = call noundef nonnull align 8 dereferenceable(144) ptr %510(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %512 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %511)
  %513 = call noundef i64 @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %512) #6
  %.not582 = icmp eq i64 %513, 0
  br i1 %.not582, label %.critedge, label %.lr.ph569.lr.ph

.lr.ph569.lr.ph:                                  ; preds = %.preheader, %.outer.outer
  %514 = phi i64 [ %725, %.outer.outer ], [ 0, %.preheader ]
  %.1364.ph.ph580 = phi i1 [ %.2365, %.outer.outer ], [ %.0363, %.preheader ]
  %.0372.ph.ph579 = phi i32 [ %724, %.outer.outer ], [ 0, %.preheader ]
  %.0373.ph.ph578 = phi i32 [ %723, %.outer.outer ], [ 0, %.preheader ]
  br label %.lr.ph569

.lr.ph569:                                        ; preds = %.lr.ph569.lr.ph, %.outer
  %515 = phi i64 [ %514, %.lr.ph569.lr.ph ], [ %538, %.outer ]
  %.0372.ph575 = phi i32 [ %.0372.ph.ph579, %.lr.ph569.lr.ph ], [ %.0372568, %.outer ]
  %.0373.ph574 = phi i32 [ %.0373.ph.ph578, %.lr.ph569.lr.ph ], [ %537, %.outer ]
  br label %516

516:                                              ; preds = %.lr.ph569, %559
  %.0372568 = phi i32 [ %.0372.ph575, %.lr.ph569 ], [ %560, %559 ]
  %517 = zext i32 %.0372568 to i64
  %518 = load ptr, ptr %3, align 8, !tbaa !5
  %519 = getelementptr inbounds i8, ptr %518, i64 240
  %520 = load ptr, ptr %519, align 8
  %521 = call noundef nonnull align 8 dereferenceable(144) ptr %520(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %522 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %521)
  %523 = call noundef i64 @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %522) #6
  %524 = icmp ugt i64 %523, %517
  br i1 %524, label %525, label %.critedge

525:                                              ; preds = %516
  %526 = load ptr, ptr %2, align 8, !tbaa !5
  %527 = getelementptr inbounds i8, ptr %526, i64 240
  %528 = load ptr, ptr %527, align 8
  %529 = call noundef nonnull align 8 dereferenceable(144) ptr %528(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %530 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %529)
  %531 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %530, i64 noundef %515) #6
  %532 = load ptr, ptr %531, align 8, !tbaa !13
  %533 = load ptr, ptr %532, align 8, !tbaa !5
  %534 = getelementptr inbounds i8, ptr %533, i64 24
  %535 = load ptr, ptr %534, align 8
  %536 = call noundef zeroext i1 %535(ptr noundef nonnull align 8 dereferenceable(144) %532)
  br i1 %536, label %.outer, label %547

.outer:                                           ; preds = %525
  %537 = add i32 %.0373.ph574, 1
  %538 = zext i32 %537 to i64
  %539 = load ptr, ptr %2, align 8, !tbaa !5
  %540 = getelementptr inbounds i8, ptr %539, i64 240
  %541 = load ptr, ptr %540, align 8
  %542 = call noundef nonnull align 8 dereferenceable(144) ptr %541(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %543 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %542)
  %544 = call noundef i64 @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %543) #6
  %545 = icmp ugt i64 %544, %538
  br i1 %545, label %.lr.ph569, label %.critedge, !llvm.loop !17

546:                                              ; preds = %450, %368, %287, %279
  %.pn429.pn.pn = phi { ptr, i32 } [ %.pn429.pn, %287 ], [ %.pn.pn, %279 ], [ %369, %368 ], [ %451, %450 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #6
  br label %1622

547:                                              ; preds = %525
  %548 = load ptr, ptr %3, align 8, !tbaa !5
  %549 = getelementptr inbounds i8, ptr %548, i64 240
  %550 = load ptr, ptr %549, align 8
  %551 = call noundef nonnull align 8 dereferenceable(144) ptr %550(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %552 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %551)
  %553 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %552, i64 noundef %517) #6
  %554 = load ptr, ptr %553, align 8, !tbaa !13
  %555 = load ptr, ptr %554, align 8, !tbaa !5
  %556 = getelementptr inbounds i8, ptr %555, i64 24
  %557 = load ptr, ptr %556, align 8
  %558 = call noundef zeroext i1 %557(ptr noundef nonnull align 8 dereferenceable(144) %554)
  br i1 %558, label %559, label %568

559:                                              ; preds = %547
  %560 = add i32 %.0372568, 1
  %561 = load ptr, ptr %2, align 8, !tbaa !5
  %562 = getelementptr inbounds i8, ptr %561, i64 240
  %563 = load ptr, ptr %562, align 8
  %564 = call noundef nonnull align 8 dereferenceable(144) ptr %563(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %565 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %564)
  %566 = call noundef i64 @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %565) #6
  %567 = icmp ugt i64 %566, %515
  br i1 %567, label %516, label %.critedge, !llvm.loop !17

568:                                              ; preds = %547
  %569 = load ptr, ptr %2, align 8, !tbaa !5
  %570 = getelementptr inbounds i8, ptr %569, i64 240
  %571 = load ptr, ptr %570, align 8
  %572 = call noundef nonnull align 8 dereferenceable(144) ptr %571(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %573 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %572)
  %574 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %573, i64 noundef %515) #6
  %575 = load ptr, ptr %574, align 8, !tbaa !13
  %576 = load ptr, ptr %575, align 8, !tbaa !5
  %577 = getelementptr inbounds i8, ptr %576, i64 80
  %578 = load ptr, ptr %577, align 8
  %579 = call noundef nonnull align 8 dereferenceable(72) ptr %578(ptr noundef nonnull align 8 dereferenceable(144) %575)
  %580 = load ptr, ptr %3, align 8, !tbaa !5
  %581 = getelementptr inbounds i8, ptr %580, i64 240
  %582 = load ptr, ptr %581, align 8
  %583 = call noundef nonnull align 8 dereferenceable(144) ptr %582(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %584 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %583)
  %585 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %584, i64 noundef %517) #6
  %586 = load ptr, ptr %585, align 8, !tbaa !13
  %587 = load ptr, ptr %586, align 8, !tbaa !5
  %588 = getelementptr inbounds i8, ptr %587, i64 80
  %589 = load ptr, ptr %588, align 8
  %590 = call noundef nonnull align 8 dereferenceable(72) ptr %589(ptr noundef nonnull align 8 dereferenceable(144) %586)
  %591 = getelementptr inbounds i8, ptr %579, i64 8
  %592 = load i64, ptr %591, align 8
  %593 = getelementptr inbounds i8, ptr %590, i64 8
  %594 = load i64, ptr %593, align 8
  %595 = xor i64 %594, %592
  %596 = and i64 %595, 4035225266123964416
  %.not492 = icmp ne i64 %596, 0
  br i1 %.not492, label %597, label %598

597:                                              ; preds = %568
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.46, i32 noundef %4)
  br label %598

598:                                              ; preds = %597, %568
  %599 = getelementptr inbounds i8, ptr %579, i64 20
  %600 = load i32, ptr %599, align 4, !tbaa !18
  %601 = getelementptr inbounds i8, ptr %590, i64 20
  %602 = load i32, ptr %601, align 4, !tbaa !18
  %.not493 = icmp eq i32 %600, %602
  br i1 %.not493, label %604, label %603

603:                                              ; preds = %598
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.47, i32 noundef %4)
  br label %604

604:                                              ; preds = %603, %598
  %.1359 = phi i1 [ true, %603 ], [ %.not492, %598 ]
  %605 = getelementptr inbounds i8, ptr %579, i64 24
  %606 = load i32, ptr %605, align 8, !tbaa !27
  %607 = getelementptr inbounds i8, ptr %590, i64 24
  %608 = load i32, ptr %607, align 8, !tbaa !27
  %.not494 = icmp eq i32 %606, %608
  br i1 %.not494, label %610, label %609

609:                                              ; preds = %604
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.48, i32 noundef %4)
  br label %610

610:                                              ; preds = %609, %604
  %.2360 = phi i1 [ true, %609 ], [ %.1359, %604 ]
  %611 = getelementptr inbounds i8, ptr %579, i64 28
  %612 = load i64, ptr %611, align 4
  %613 = getelementptr inbounds i8, ptr %590, i64 28
  %614 = load i64, ptr %613, align 4
  %615 = xor i64 %614, %612
  %616 = and i64 %615, 4095
  %.not495 = icmp eq i64 %616, 0
  br i1 %.not495, label %617, label %.thread

617:                                              ; preds = %610
  %618 = and i64 %615, 28672
  %.not496 = icmp eq i64 %618, 0
  br i1 %.not496, label %623, label %.critedge506

.thread:                                          ; preds = %610
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.49, i32 noundef %4)
  %619 = load i64, ptr %611, align 4
  %620 = load i64, ptr %613, align 4
  %621 = xor i64 %620, %619
  %622 = and i64 %621, 28672
  %.not496513 = icmp eq i64 %622, 0
  br i1 %.not496513, label %.thread515, label %.critedge506

.critedge506:                                     ; preds = %.thread, %617
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.50, i32 noundef %4)
  br label %.thread515

623:                                              ; preds = %617
  br i1 %.2360, label %.thread515, label %.outer.outer

.thread515:                                       ; preds = %.thread, %.critedge506, %623
  %624 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1, ptr noundef nonnull @.str.26)
  %625 = call noundef i32 @_ZNK7glslang13TIntermediate8getStageEv(ptr noundef nonnull align 8 dereferenceable(1784) %0)
  %626 = call ptr @StageName(i32 noundef %625)
  %627 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %624, ptr noundef %626)
  %628 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %627, ptr noundef nonnull @.str.41)
  %629 = load ptr, ptr %2, align 8, !tbaa !5
  %630 = getelementptr inbounds i8, ptr %629, i64 240
  %631 = load ptr, ptr %630, align 8
  %632 = call noundef nonnull align 8 dereferenceable(144) ptr %631(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %633 = load ptr, ptr %632, align 8, !tbaa !5
  %634 = getelementptr inbounds i8, ptr %633, i64 40
  %635 = load ptr, ptr %634, align 8
  %636 = call noundef nonnull align 8 dereferenceable(40) ptr %635(ptr noundef nonnull align 8 dereferenceable(144) %632)
  %637 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %628, ptr noundef nonnull align 8 dereferenceable(40) %636)
  %638 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %637, ptr noundef nonnull @.str.42)
  %639 = load ptr, ptr %2, align 8, !tbaa !5
  %640 = getelementptr inbounds i8, ptr %639, i64 240
  %641 = load ptr, ptr %640, align 8
  %642 = call noundef nonnull align 8 dereferenceable(144) ptr %641(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %643 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %642)
  %644 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %643, i64 noundef %515) #6
  %645 = load ptr, ptr %644, align 8, !tbaa !13
  %646 = load ptr, ptr %645, align 8, !tbaa !5
  %647 = getelementptr inbounds i8, ptr %646, i64 48
  %648 = load ptr, ptr %647, align 8
  %649 = call noundef nonnull align 8 dereferenceable(40) ptr %648(ptr noundef nonnull align 8 dereferenceable(144) %645)
  %650 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %638, ptr noundef nonnull align 8 dereferenceable(40) %649)
  %651 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %650, ptr noundef nonnull @.str.51)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %20) #6
  %652 = load ptr, ptr %2, align 8, !tbaa !5
  %653 = getelementptr inbounds i8, ptr %652, i64 240
  %654 = load ptr, ptr %653, align 8
  %655 = call noundef nonnull align 8 dereferenceable(144) ptr %654(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %656 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %655)
  %657 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %656, i64 noundef %515) #6
  %658 = load ptr, ptr %657, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #6
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %22)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %21, ptr noundef nonnull @.str.31, ptr noundef nonnull align 8 dereferenceable(8) %22)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #6
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %659 unwind label %707

659:                                              ; preds = %.thread515
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %23, ptr noundef nonnull @.str.31, ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %660 unwind label %707

660:                                              ; preds = %659
  invoke void @_ZNK7glslang5TType17getCompleteStringEbbbbNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string.91") align 8 %20, ptr noundef nonnull align 8 dereferenceable(144) %658, i1 noundef zeroext true, i1 noundef zeroext true, i1 noundef zeroext false, i1 noundef zeroext false, ptr noundef nonnull %21, ptr noundef nonnull %23)
          to label %661 unwind label %709

661:                                              ; preds = %660
  %662 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %651, ptr noundef nonnull align 8 dereferenceable(40) %20)
          to label %663 unwind label %711

663:                                              ; preds = %661
  %664 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %662, ptr noundef nonnull @.str.33)
          to label %665 unwind label %711

665:                                              ; preds = %663
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %20) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %23) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %21) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %20) #6
  %666 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1, ptr noundef nonnull @.str.26)
  %667 = call ptr @StageName(i32 noundef %4)
  %668 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %666, ptr noundef %667)
  %669 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %668, ptr noundef nonnull @.str.41)
  %670 = load ptr, ptr %3, align 8, !tbaa !5
  %671 = getelementptr inbounds i8, ptr %670, i64 240
  %672 = load ptr, ptr %671, align 8
  %673 = call noundef nonnull align 8 dereferenceable(144) ptr %672(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %674 = load ptr, ptr %673, align 8, !tbaa !5
  %675 = getelementptr inbounds i8, ptr %674, i64 40
  %676 = load ptr, ptr %675, align 8
  %677 = call noundef nonnull align 8 dereferenceable(40) ptr %676(ptr noundef nonnull align 8 dereferenceable(144) %673)
  %678 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %669, ptr noundef nonnull align 8 dereferenceable(40) %677)
  %679 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %678, ptr noundef nonnull @.str.42)
  %680 = load ptr, ptr %3, align 8, !tbaa !5
  %681 = getelementptr inbounds i8, ptr %680, i64 240
  %682 = load ptr, ptr %681, align 8
  %683 = call noundef nonnull align 8 dereferenceable(144) ptr %682(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %684 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %683)
  %685 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %684, i64 noundef %517) #6
  %686 = load ptr, ptr %685, align 8, !tbaa !13
  %687 = load ptr, ptr %686, align 8, !tbaa !5
  %688 = getelementptr inbounds i8, ptr %687, i64 48
  %689 = load ptr, ptr %688, align 8
  %690 = call noundef nonnull align 8 dereferenceable(40) ptr %689(ptr noundef nonnull align 8 dereferenceable(144) %686)
  %691 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %679, ptr noundef nonnull align 8 dereferenceable(40) %690)
  %692 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %691, ptr noundef nonnull @.str.51)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %25) #6
  %693 = load ptr, ptr %3, align 8, !tbaa !5
  %694 = getelementptr inbounds i8, ptr %693, i64 240
  %695 = load ptr, ptr %694, align 8
  %696 = call noundef nonnull align 8 dereferenceable(144) ptr %695(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %697 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %696)
  %698 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %697, i64 noundef %517) #6
  %699 = load ptr, ptr %698, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #6
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %27)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %26, ptr noundef nonnull @.str.31, ptr noundef nonnull align 8 dereferenceable(8) %27)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #6
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %29)
          to label %700 unwind label %715

700:                                              ; preds = %665
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %28, ptr noundef nonnull @.str.31, ptr noundef nonnull align 8 dereferenceable(8) %29)
          to label %701 unwind label %715

701:                                              ; preds = %700
  invoke void @_ZNK7glslang5TType17getCompleteStringEbbbbNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string.91") align 8 %25, ptr noundef nonnull align 8 dereferenceable(144) %699, i1 noundef zeroext true, i1 noundef zeroext true, i1 noundef zeroext false, i1 noundef zeroext false, ptr noundef nonnull %26, ptr noundef nonnull %28)
          to label %702 unwind label %717

702:                                              ; preds = %701
  %703 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %692, ptr noundef nonnull align 8 dereferenceable(40) %25)
          to label %704 unwind label %719

704:                                              ; preds = %702
  %705 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %703, ptr noundef nonnull @.str.33)
          to label %706 unwind label %719

706:                                              ; preds = %704
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %25) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %28) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %26) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %25) #6
  br label %.outer.outer

707:                                              ; preds = %659, %.thread515
  %708 = landingpad { ptr, i32 }
          cleanup
  br label %714

709:                                              ; preds = %660
  %710 = landingpad { ptr, i32 }
          cleanup
  br label %713

711:                                              ; preds = %663, %661
  %712 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %20) #6
  br label %713

713:                                              ; preds = %711, %709
  %.pn497 = phi { ptr, i32 } [ %712, %711 ], [ %710, %709 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %23) #6
  br label %714

714:                                              ; preds = %713, %707
  %.pn497.pn = phi { ptr, i32 } [ %.pn497, %713 ], [ %708, %707 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %21) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %20) #6
  br label %1622

715:                                              ; preds = %700, %665
  %716 = landingpad { ptr, i32 }
          cleanup
  br label %722

717:                                              ; preds = %701
  %718 = landingpad { ptr, i32 }
          cleanup
  br label %721

719:                                              ; preds = %704, %702
  %720 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %25) #6
  br label %721

721:                                              ; preds = %719, %717
  %.pn500 = phi { ptr, i32 } [ %720, %719 ], [ %718, %717 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %28) #6
  br label %722

722:                                              ; preds = %721, %715
  %.pn500.pn = phi { ptr, i32 } [ %.pn500, %721 ], [ %716, %715 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %26) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %25) #6
  br label %1622

.outer.outer:                                     ; preds = %706, %623
  %.2365 = phi i1 [ true, %706 ], [ %.1364.ph.ph580, %623 ]
  %723 = add i32 %.0373.ph574, 1
  %724 = add i32 %.0372568, 1
  %725 = zext i32 %723 to i64
  %726 = load ptr, ptr %2, align 8, !tbaa !5
  %727 = getelementptr inbounds i8, ptr %726, i64 240
  %728 = load ptr, ptr %727, align 8
  %729 = call noundef nonnull align 8 dereferenceable(144) ptr %728(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %730 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %729)
  %731 = call noundef i64 @_ZNKSt6vectorIN7glslang8TTypeLocENS0_14pool_allocatorIS1_EEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %730) #6
  %732 = icmp ugt i64 %731, %725
  br i1 %732, label %.lr.ph569.lr.ph, label %.critedge, !llvm.loop !17

.critedge:                                        ; preds = %.outer.outer, %.outer, %559, %516, %.preheader, %498, %492, %486, %476, %466
  %.3366 = phi i1 [ %.0363, %498 ], [ %.0363, %492 ], [ %.0363, %486 ], [ %.0363, %476 ], [ %.0363, %466 ], [ %.0363, %.preheader ], [ %.1364.ph.ph580, %516 ], [ %.1364.ph.ph580, %559 ], [ %.1364.ph.ph580, %.outer ], [ %.2365, %.outer.outer ]
  br i1 %.not, label %.thread517, label %733

733:                                              ; preds = %.critedge
  %734 = load ptr, ptr %2, align 8, !tbaa !5
  %735 = getelementptr inbounds i8, ptr %734, i64 272
  %736 = load ptr, ptr %735, align 8
  %737 = call noundef nonnull align 8 dereferenceable(72) ptr %736(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %738 = getelementptr inbounds i8, ptr %737, i64 8
  %739 = load i64, ptr %738, align 8
  %740 = and i64 %739, 63
  %741 = icmp eq i64 %740, 3
  br i1 %741, label %742, label %751

742:                                              ; preds = %733
  %743 = load ptr, ptr %3, align 8, !tbaa !5
  %744 = getelementptr inbounds i8, ptr %743, i64 272
  %745 = load ptr, ptr %744, align 8
  %746 = call noundef nonnull align 8 dereferenceable(72) ptr %745(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %747 = getelementptr inbounds i8, ptr %746, i64 8
  %748 = load i64, ptr %747, align 8
  %749 = and i64 %748, 63
  %750 = icmp eq i64 %749, 4
  br i1 %750, label %.thread518, label %751

751:                                              ; preds = %742, %733
  %752 = load ptr, ptr %2, align 8, !tbaa !5
  %753 = getelementptr inbounds i8, ptr %752, i64 272
  %754 = load ptr, ptr %753, align 8
  %755 = call noundef nonnull align 8 dereferenceable(72) ptr %754(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %756 = getelementptr inbounds i8, ptr %755, i64 8
  %757 = load i64, ptr %756, align 8
  %758 = and i64 %757, 63
  %759 = icmp eq i64 %758, 4
  br i1 %759, label %760, label %.thread517

760:                                              ; preds = %751
  %761 = load ptr, ptr %3, align 8, !tbaa !5
  %762 = getelementptr inbounds i8, ptr %761, i64 272
  %763 = load ptr, ptr %762, align 8
  %764 = call noundef nonnull align 8 dereferenceable(72) ptr %763(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %765 = getelementptr inbounds i8, ptr %764, i64 8
  %766 = load i64, ptr %765, align 8
  %767 = and i64 %766, 63
  %768 = icmp eq i64 %767, 3
  br i1 %768, label %.thread518, label %.thread517

.thread517:                                       ; preds = %751, %.critedge, %760
  %769 = load ptr, ptr %2, align 8, !tbaa !5
  %770 = getelementptr inbounds i8, ptr %769, i64 272
  %771 = load ptr, ptr %770, align 8
  %772 = call noundef nonnull align 8 dereferenceable(72) ptr %771(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %773 = getelementptr inbounds i8, ptr %772, i64 8
  %774 = load i64, ptr %773, align 8
  %775 = load ptr, ptr %3, align 8, !tbaa !5
  %776 = getelementptr inbounds i8, ptr %775, i64 272
  %777 = load ptr, ptr %776, align 8
  %778 = call noundef nonnull align 8 dereferenceable(72) ptr %777(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %779 = getelementptr inbounds i8, ptr %778, i64 8
  %780 = load i64, ptr %779, align 8
  %781 = xor i64 %780, %774
  %782 = and i64 %781, 63
  %.not435 = icmp eq i64 %782, 0
  br i1 %.not435, label %.thread518, label %783

783:                                              ; preds = %.thread517
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.52, i32 noundef %4)
  br label %.thread518

.thread518:                                       ; preds = %742, %783, %.thread517, %760
  %784 = phi i1 [ true, %760 ], [ false, %783 ], [ false, %.thread517 ], [ true, %742 ]
  %.0367 = phi i8 [ 0, %760 ], [ 1, %783 ], [ 0, %.thread517 ], [ 0, %742 ]
  %.1349 = phi i8 [ %.0348, %760 ], [ 1, %783 ], [ %.0348, %.thread517 ], [ %.0348, %742 ]
  %785 = load ptr, ptr %2, align 8, !tbaa !5
  %786 = getelementptr inbounds i8, ptr %785, i64 272
  %787 = load ptr, ptr %786, align 8
  %788 = call noundef nonnull align 8 dereferenceable(72) ptr %787(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %789 = call noundef zeroext i1 @_ZNK7glslang10TQualifier17isUniformOrBufferEv(ptr noundef nonnull align 8 dereferenceable(72) %788)
  br i1 %789, label %790, label %803

790:                                              ; preds = %.thread518
  %791 = load ptr, ptr %2, align 8, !tbaa !5
  %792 = getelementptr inbounds i8, ptr %791, i64 400
  %793 = load ptr, ptr %792, align 8
  %794 = call noundef nonnull align 8 dereferenceable(40) ptr %793(ptr noundef nonnull align 8 dereferenceable(256) %2)
  %795 = call noundef zeroext i1 @_ZN7glslang11IsAnonymousERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(40) %794)
  %796 = load ptr, ptr %3, align 8, !tbaa !5
  %797 = getelementptr inbounds i8, ptr %796, i64 400
  %798 = load ptr, ptr %797, align 8
  %799 = call noundef nonnull align 8 dereferenceable(40) ptr %798(ptr noundef nonnull align 8 dereferenceable(256) %3)
  %800 = call noundef zeroext i1 @_ZN7glslang11IsAnonymousERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(40) %799)
  %801 = xor i1 %795, %800
  br i1 %801, label %802, label %803

802:                                              ; preds = %790
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.53, i32 noundef %4)
  br label %803

803:                                              ; preds = %802, %790, %.thread518
  %.2350 = phi i8 [ 1, %802 ], [ %.1349, %790 ], [ %.1349, %.thread518 ]
  %804 = load ptr, ptr %2, align 8, !tbaa !5
  %805 = getelementptr inbounds i8, ptr %804, i64 272
  %806 = load ptr, ptr %805, align 8
  %807 = call noundef nonnull align 8 dereferenceable(72) ptr %806(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %808 = getelementptr inbounds i8, ptr %807, i64 8
  %809 = load i64, ptr %808, align 8
  %810 = load ptr, ptr %3, align 8, !tbaa !5
  %811 = getelementptr inbounds i8, ptr %810, i64 272
  %812 = load ptr, ptr %811, align 8
  %813 = call noundef nonnull align 8 dereferenceable(72) ptr %812(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %814 = getelementptr inbounds i8, ptr %813, i64 8
  %815 = load i64, ptr %814, align 8
  %816 = xor i64 %815, %809
  %817 = and i64 %816, 63
  %818 = icmp eq i64 %817, 0
  br i1 %818, label %819, label %848

819:                                              ; preds = %803
  %820 = load ptr, ptr %2, align 8, !tbaa !5
  %821 = getelementptr inbounds i8, ptr %820, i64 400
  %822 = load ptr, ptr %821, align 8
  %823 = call noundef nonnull align 8 dereferenceable(40) ptr %822(ptr noundef nonnull align 8 dereferenceable(256) %2)
  %824 = call noundef zeroext i1 @_ZN7glslang11IsAnonymousERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(40) %823)
  %825 = load ptr, ptr %3, align 8, !tbaa !5
  %826 = getelementptr inbounds i8, ptr %825, i64 400
  %827 = load ptr, ptr %826, align 8
  %828 = call noundef nonnull align 8 dereferenceable(40) ptr %827(ptr noundef nonnull align 8 dereferenceable(256) %3)
  %829 = call noundef zeroext i1 @_ZN7glslang11IsAnonymousERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(40) %828)
  %830 = xor i1 %824, %829
  br i1 %830, label %847, label %831

831:                                              ; preds = %819
  %832 = load ptr, ptr %2, align 8, !tbaa !5
  %833 = getelementptr inbounds i8, ptr %832, i64 400
  %834 = load ptr, ptr %833, align 8
  %835 = call noundef nonnull align 8 dereferenceable(40) ptr %834(ptr noundef nonnull align 8 dereferenceable(256) %2)
  %836 = call noundef zeroext i1 @_ZN7glslang11IsAnonymousERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(40) %835)
  br i1 %836, label %848, label %837

837:                                              ; preds = %831
  %838 = load ptr, ptr %2, align 8, !tbaa !5
  %839 = getelementptr inbounds i8, ptr %838, i64 400
  %840 = load ptr, ptr %839, align 8
  %841 = call noundef nonnull align 8 dereferenceable(40) ptr %840(ptr noundef nonnull align 8 dereferenceable(256) %2)
  %842 = load ptr, ptr %3, align 8, !tbaa !5
  %843 = getelementptr inbounds i8, ptr %842, i64 400
  %844 = load ptr, ptr %843, align 8
  %845 = call noundef nonnull align 8 dereferenceable(40) ptr %844(ptr noundef nonnull align 8 dereferenceable(256) %3)
  %846 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESC_(ptr noundef nonnull align 8 dereferenceable(40) %841, ptr noundef nonnull align 8 dereferenceable(40) %845) #6
  br i1 %846, label %847, label %848

847:                                              ; preds = %837, %819
  call void @_ZN7glslang13TIntermediate4warnER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.54, i32 noundef %4)
  br label %848

848:                                              ; preds = %847, %837, %831, %803
  %.3351 = phi i8 [ 1, %847 ], [ %.2350, %831 ], [ %.2350, %837 ], [ %.2350, %803 ]
  br i1 %784, label %865, label %849

849:                                              ; preds = %848
  %850 = load ptr, ptr %2, align 8, !tbaa !5
  %851 = getelementptr inbounds i8, ptr %850, i64 272
  %852 = load ptr, ptr %851, align 8
  %853 = call noundef nonnull align 8 dereferenceable(72) ptr %852(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %854 = getelementptr inbounds i8, ptr %853, i64 8
  %855 = load i64, ptr %854, align 8
  %856 = load ptr, ptr %3, align 8, !tbaa !5
  %857 = getelementptr inbounds i8, ptr %856, i64 272
  %858 = load ptr, ptr %857, align 8
  %859 = call noundef nonnull align 8 dereferenceable(72) ptr %858(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %860 = getelementptr inbounds i8, ptr %859, i64 8
  %861 = load i64, ptr %860, align 8
  %862 = xor i64 %861, %855
  %863 = and i64 %862, 117440512
  %.not438 = icmp eq i64 %863, 0
  br i1 %.not438, label %865, label %864

864:                                              ; preds = %849
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.55, i32 noundef %4)
  br label %865

865:                                              ; preds = %864, %849, %848
  %.0414 = phi i8 [ 0, %848 ], [ 1, %864 ], [ 0, %849 ]
  %.4352 = phi i8 [ %.3351, %848 ], [ 1, %864 ], [ %.3351, %849 ]
  br i1 %.not, label %866, label %977

866:                                              ; preds = %865
  %867 = load ptr, ptr %2, align 8, !tbaa !5
  %868 = getelementptr inbounds i8, ptr %867, i64 272
  %869 = load ptr, ptr %868, align 8
  %870 = call noundef nonnull align 8 dereferenceable(72) ptr %869(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %871 = getelementptr inbounds i8, ptr %870, i64 8
  %872 = load i64, ptr %871, align 8
  %873 = load ptr, ptr %3, align 8, !tbaa !5
  %874 = getelementptr inbounds i8, ptr %873, i64 272
  %875 = load ptr, ptr %874, align 8
  %876 = call noundef nonnull align 8 dereferenceable(72) ptr %875(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %877 = getelementptr inbounds i8, ptr %876, i64 8
  %878 = load i64, ptr %877, align 8
  %879 = xor i64 %878, %872
  %880 = and i64 %879, 134217728
  %.not439 = icmp eq i64 %880, 0
  br i1 %.not439, label %882, label %881

881:                                              ; preds = %866
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.56, i32 noundef %4)
  br label %882

882:                                              ; preds = %881, %866
  %.1368.ph = phi i8 [ %.0367, %866 ], [ 1, %881 ]
  %.5353.ph = phi i8 [ %.4352, %866 ], [ 1, %881 ]
  %883 = load ptr, ptr %2, align 8, !tbaa !5
  %884 = getelementptr inbounds i8, ptr %883, i64 272
  %885 = load ptr, ptr %884, align 8
  %886 = call noundef nonnull align 8 dereferenceable(72) ptr %885(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %887 = call noundef zeroext i1 @_ZNK7glslang10TQualifier15isNoContractionEv(ptr noundef nonnull align 8 dereferenceable(72) %886)
  %888 = load ptr, ptr %3, align 8, !tbaa !5
  %889 = getelementptr inbounds i8, ptr %888, i64 272
  %890 = load ptr, ptr %889, align 8
  %891 = call noundef nonnull align 8 dereferenceable(72) ptr %890(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %892 = call noundef zeroext i1 @_ZNK7glslang10TQualifier15isNoContractionEv(ptr noundef nonnull align 8 dereferenceable(72) %891)
  %893 = xor i1 %887, %892
  br i1 %893, label %894, label %895

894:                                              ; preds = %882
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.57, i32 noundef %4)
  br label %895

895:                                              ; preds = %894, %882
  %.1415.ph = phi i8 [ %.0414, %882 ], [ 1, %894 ]
  %.6354.ph = phi i8 [ %.5353.ph, %882 ], [ 1, %894 ]
  %896 = load ptr, ptr %2, align 8, !tbaa !5
  %897 = getelementptr inbounds i8, ptr %896, i64 272
  %898 = load ptr, ptr %897, align 8
  %899 = call noundef nonnull align 8 dereferenceable(72) ptr %898(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %900 = getelementptr inbounds i8, ptr %899, i64 8
  %901 = load i64, ptr %900, align 8
  %902 = load ptr, ptr %3, align 8, !tbaa !5
  %903 = getelementptr inbounds i8, ptr %902, i64 272
  %904 = load ptr, ptr %903, align 8
  %905 = call noundef nonnull align 8 dereferenceable(72) ptr %904(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %906 = getelementptr inbounds i8, ptr %905, i64 8
  %907 = load i64, ptr %906, align 8
  %908 = xor i64 %907, %901
  %909 = and i64 %908, 268435456
  %.not441 = icmp eq i64 %909, 0
  br i1 %.not441, label %910, label %976

910:                                              ; preds = %895
  %911 = load ptr, ptr %2, align 8, !tbaa !5
  %912 = getelementptr inbounds i8, ptr %911, i64 272
  %913 = load ptr, ptr %912, align 8
  %914 = call noundef nonnull align 8 dereferenceable(72) ptr %913(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %915 = getelementptr inbounds i8, ptr %914, i64 8
  %916 = load i64, ptr %915, align 8
  %917 = load ptr, ptr %3, align 8, !tbaa !5
  %918 = getelementptr inbounds i8, ptr %917, i64 272
  %919 = load ptr, ptr %918, align 8
  %920 = call noundef nonnull align 8 dereferenceable(72) ptr %919(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %921 = getelementptr inbounds i8, ptr %920, i64 8
  %922 = load i64, ptr %921, align 8
  %923 = xor i64 %922, %916
  %924 = and i64 %923, 536870912
  %.not442 = icmp eq i64 %924, 0
  br i1 %.not442, label %925, label %976

925:                                              ; preds = %910
  %926 = load ptr, ptr %2, align 8, !tbaa !5
  %927 = getelementptr inbounds i8, ptr %926, i64 272
  %928 = load ptr, ptr %927, align 8
  %929 = call noundef nonnull align 8 dereferenceable(72) ptr %928(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %930 = getelementptr inbounds i8, ptr %929, i64 8
  %931 = load i64, ptr %930, align 8
  %932 = load ptr, ptr %3, align 8, !tbaa !5
  %933 = getelementptr inbounds i8, ptr %932, i64 272
  %934 = load ptr, ptr %933, align 8
  %935 = call noundef nonnull align 8 dereferenceable(72) ptr %934(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %936 = getelementptr inbounds i8, ptr %935, i64 8
  %937 = load i64, ptr %936, align 8
  %938 = xor i64 %937, %931
  %939 = and i64 %938, 1073741824
  %.not443 = icmp eq i64 %939, 0
  br i1 %.not443, label %940, label %976

940:                                              ; preds = %925
  %941 = load ptr, ptr %2, align 8, !tbaa !5
  %942 = getelementptr inbounds i8, ptr %941, i64 272
  %943 = load ptr, ptr %942, align 8
  %944 = call noundef nonnull align 8 dereferenceable(72) ptr %943(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %945 = call noundef zeroext i1 @_ZNK7glslang10TQualifier8isSampleEv(ptr noundef nonnull align 8 dereferenceable(72) %944)
  %946 = load ptr, ptr %3, align 8, !tbaa !5
  %947 = getelementptr inbounds i8, ptr %946, i64 272
  %948 = load ptr, ptr %947, align 8
  %949 = call noundef nonnull align 8 dereferenceable(72) ptr %948(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %950 = call noundef zeroext i1 @_ZNK7glslang10TQualifier8isSampleEv(ptr noundef nonnull align 8 dereferenceable(72) %949)
  %951 = xor i1 %945, %950
  br i1 %951, label %976, label %952

952:                                              ; preds = %940
  %953 = load ptr, ptr %2, align 8, !tbaa !5
  %954 = getelementptr inbounds i8, ptr %953, i64 272
  %955 = load ptr, ptr %954, align 8
  %956 = call noundef nonnull align 8 dereferenceable(72) ptr %955(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %957 = call noundef zeroext i1 @_ZNK7glslang10TQualifier7isPatchEv(ptr noundef nonnull align 8 dereferenceable(72) %956)
  %958 = load ptr, ptr %3, align 8, !tbaa !5
  %959 = getelementptr inbounds i8, ptr %958, i64 272
  %960 = load ptr, ptr %959, align 8
  %961 = call noundef nonnull align 8 dereferenceable(72) ptr %960(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %962 = call noundef zeroext i1 @_ZNK7glslang10TQualifier7isPatchEv(ptr noundef nonnull align 8 dereferenceable(72) %961)
  %963 = xor i1 %957, %962
  br i1 %963, label %976, label %964

964:                                              ; preds = %952
  %965 = load ptr, ptr %2, align 8, !tbaa !5
  %966 = getelementptr inbounds i8, ptr %965, i64 272
  %967 = load ptr, ptr %966, align 8
  %968 = call noundef nonnull align 8 dereferenceable(72) ptr %967(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %969 = call noundef zeroext i1 @_ZNK7glslang10TQualifier16isNonPerspectiveEv(ptr noundef nonnull align 8 dereferenceable(72) %968)
  %970 = load ptr, ptr %3, align 8, !tbaa !5
  %971 = getelementptr inbounds i8, ptr %970, i64 272
  %972 = load ptr, ptr %971, align 8
  %973 = call noundef nonnull align 8 dereferenceable(72) ptr %972(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %974 = call noundef zeroext i1 @_ZNK7glslang10TQualifier16isNonPerspectiveEv(ptr noundef nonnull align 8 dereferenceable(72) %973)
  %975 = xor i1 %969, %974
  br i1 %975, label %976, label %977

976:                                              ; preds = %964, %952, %940, %925, %910, %895
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.58, i32 noundef %4)
  br label %977

977:                                              ; preds = %865, %976, %964
  %.1415532 = phi i8 [ %.1415.ph, %976 ], [ %.1415.ph, %964 ], [ %.0414, %865 ]
  %.2369 = phi i8 [ 1, %976 ], [ %.1368.ph, %964 ], [ %.0367, %865 ]
  %.7355 = phi i8 [ 1, %976 ], [ %.6354.ph, %964 ], [ %.4352, %865 ]
  %978 = load ptr, ptr %2, align 8, !tbaa !5
  %979 = getelementptr inbounds i8, ptr %978, i64 272
  %980 = load ptr, ptr %979, align 8
  %981 = call noundef nonnull align 8 dereferenceable(72) ptr %980(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %982 = getelementptr inbounds i8, ptr %981, i64 8
  %983 = load i64, ptr %982, align 8
  %984 = load ptr, ptr %3, align 8, !tbaa !5
  %985 = getelementptr inbounds i8, ptr %984, i64 272
  %986 = load ptr, ptr %985, align 8
  %987 = call noundef nonnull align 8 dereferenceable(72) ptr %986(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %988 = getelementptr inbounds i8, ptr %987, i64 8
  %989 = load i64, ptr %988, align 8
  %990 = xor i64 %989, %983
  %991 = and i64 %990, 281474976710656
  %.not447 = icmp ne i64 %991, 0
  br i1 %.not447, label %992, label %993

992:                                              ; preds = %977
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.59, i32 noundef %4)
  br label %993

993:                                              ; preds = %992, %977
  %994 = load ptr, ptr %2, align 8, !tbaa !5
  %995 = getelementptr inbounds i8, ptr %994, i64 272
  %996 = load ptr, ptr %995, align 8
  %997 = call noundef nonnull align 8 dereferenceable(72) ptr %996(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %998 = getelementptr inbounds i8, ptr %997, i64 8
  %999 = load i64, ptr %998, align 8
  %1000 = load ptr, ptr %3, align 8, !tbaa !5
  %1001 = getelementptr inbounds i8, ptr %1000, i64 272
  %1002 = load ptr, ptr %1001, align 8
  %1003 = call noundef nonnull align 8 dereferenceable(72) ptr %1002(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %1004 = getelementptr inbounds i8, ptr %1003, i64 8
  %1005 = load i64, ptr %1004, align 8
  %1006 = xor i64 %1005, %999
  %1007 = and i64 %1006, 1125899906842624
  %.not448 = icmp eq i64 %1007, 0
  br i1 %.not448, label %1009, label %1008

1008:                                             ; preds = %993
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.60, i32 noundef %4)
  br label %1009

1009:                                             ; preds = %1008, %993
  %.1342 = phi i1 [ true, %1008 ], [ %.not447, %993 ]
  %1010 = load ptr, ptr %2, align 8, !tbaa !5
  %1011 = getelementptr inbounds i8, ptr %1010, i64 272
  %1012 = load ptr, ptr %1011, align 8
  %1013 = call noundef nonnull align 8 dereferenceable(72) ptr %1012(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %1014 = getelementptr inbounds i8, ptr %1013, i64 8
  %1015 = load i64, ptr %1014, align 8
  %1016 = load ptr, ptr %3, align 8, !tbaa !5
  %1017 = getelementptr inbounds i8, ptr %1016, i64 272
  %1018 = load ptr, ptr %1017, align 8
  %1019 = call noundef nonnull align 8 dereferenceable(72) ptr %1018(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %1020 = getelementptr inbounds i8, ptr %1019, i64 8
  %1021 = load i64, ptr %1020, align 8
  %1022 = xor i64 %1021, %1015
  %1023 = and i64 %1022, 2251799813685248
  %.not449 = icmp eq i64 %1023, 0
  br i1 %.not449, label %1025, label %1024

1024:                                             ; preds = %1009
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.61, i32 noundef %4)
  br label %1025

1025:                                             ; preds = %1024, %1009
  %.2343 = phi i1 [ true, %1024 ], [ %.1342, %1009 ]
  %1026 = load ptr, ptr %2, align 8, !tbaa !5
  %1027 = getelementptr inbounds i8, ptr %1026, i64 272
  %1028 = load ptr, ptr %1027, align 8
  %1029 = call noundef nonnull align 8 dereferenceable(72) ptr %1028(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %1030 = getelementptr inbounds i8, ptr %1029, i64 8
  %1031 = load i64, ptr %1030, align 8
  %1032 = load ptr, ptr %3, align 8, !tbaa !5
  %1033 = getelementptr inbounds i8, ptr %1032, i64 272
  %1034 = load ptr, ptr %1033, align 8
  %1035 = call noundef nonnull align 8 dereferenceable(72) ptr %1034(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %1036 = getelementptr inbounds i8, ptr %1035, i64 8
  %1037 = load i64, ptr %1036, align 8
  %1038 = xor i64 %1037, %1031
  %1039 = and i64 %1038, 4503599627370496
  %.not450 = icmp eq i64 %1039, 0
  br i1 %.not450, label %1041, label %1040

1040:                                             ; preds = %1025
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.62, i32 noundef %4)
  br label %1041

1041:                                             ; preds = %1040, %1025
  %.3344 = phi i1 [ true, %1040 ], [ %.2343, %1025 ]
  %1042 = load ptr, ptr %2, align 8, !tbaa !5
  %1043 = getelementptr inbounds i8, ptr %1042, i64 272
  %1044 = load ptr, ptr %1043, align 8
  %1045 = call noundef nonnull align 8 dereferenceable(72) ptr %1044(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %1046 = getelementptr inbounds i8, ptr %1045, i64 8
  %1047 = load i64, ptr %1046, align 8
  %1048 = load ptr, ptr %3, align 8, !tbaa !5
  %1049 = getelementptr inbounds i8, ptr %1048, i64 272
  %1050 = load ptr, ptr %1049, align 8
  %1051 = call noundef nonnull align 8 dereferenceable(72) ptr %1050(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %1052 = getelementptr inbounds i8, ptr %1051, i64 8
  %1053 = load i64, ptr %1052, align 8
  %1054 = xor i64 %1053, %1047
  %1055 = and i64 %1054, 9007199254740992
  %.not451 = icmp eq i64 %1055, 0
  br i1 %.not451, label %1057, label %1056

1056:                                             ; preds = %1041
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.63, i32 noundef %4)
  br label %1057

1057:                                             ; preds = %1056, %1041
  %.4345 = phi i1 [ true, %1056 ], [ %.3344, %1041 ]
  %1058 = load ptr, ptr %2, align 8, !tbaa !5
  %1059 = getelementptr inbounds i8, ptr %1058, i64 272
  %1060 = load ptr, ptr %1059, align 8
  %1061 = call noundef nonnull align 8 dereferenceable(72) ptr %1060(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %1062 = getelementptr inbounds i8, ptr %1061, i64 8
  %1063 = load i64, ptr %1062, align 8
  %1064 = load ptr, ptr %3, align 8, !tbaa !5
  %1065 = getelementptr inbounds i8, ptr %1064, i64 272
  %1066 = load ptr, ptr %1065, align 8
  %1067 = call noundef nonnull align 8 dereferenceable(72) ptr %1066(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %1068 = getelementptr inbounds i8, ptr %1067, i64 8
  %1069 = load i64, ptr %1068, align 8
  %1070 = xor i64 %1069, %1063
  %1071 = and i64 %1070, 18014398509481984
  %.not452 = icmp eq i64 %1071, 0
  br i1 %.not452, label %1073, label %1072

1072:                                             ; preds = %1057
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.64, i32 noundef %4)
  br label %1073

1073:                                             ; preds = %1072, %1057
  %.5346 = phi i1 [ true, %1072 ], [ %.4345, %1057 ]
  %1074 = load ptr, ptr %2, align 8, !tbaa !5
  %1075 = getelementptr inbounds i8, ptr %1074, i64 272
  %1076 = load ptr, ptr %1075, align 8
  %1077 = call noundef nonnull align 8 dereferenceable(72) ptr %1076(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %1078 = getelementptr inbounds i8, ptr %1077, i64 8
  %1079 = load i64, ptr %1078, align 8
  %1080 = load ptr, ptr %3, align 8, !tbaa !5
  %1081 = getelementptr inbounds i8, ptr %1080, i64 272
  %1082 = load ptr, ptr %1081, align 8
  %1083 = call noundef nonnull align 8 dereferenceable(72) ptr %1082(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %1084 = getelementptr inbounds i8, ptr %1083, i64 8
  %1085 = load i64, ptr %1084, align 8
  %1086 = xor i64 %1085, %1079
  %1087 = and i64 %1086, 36028797018963968
  %.not453 = icmp eq i64 %1087, 0
  br i1 %.not453, label %1089, label %1088

1088:                                             ; preds = %1073
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.65, i32 noundef %4)
  br label %1089

1089:                                             ; preds = %1088, %1073
  %.6347 = phi i1 [ true, %1088 ], [ %.5346, %1073 ]
  %1090 = load ptr, ptr %2, align 8, !tbaa !5
  %1091 = getelementptr inbounds i8, ptr %1090, i64 272
  %1092 = load ptr, ptr %1091, align 8
  %1093 = call noundef nonnull align 8 dereferenceable(72) ptr %1092(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %1094 = getelementptr inbounds i8, ptr %1093, i64 8
  %1095 = load i64, ptr %1094, align 8
  %1096 = load ptr, ptr %3, align 8, !tbaa !5
  %1097 = getelementptr inbounds i8, ptr %1096, i64 272
  %1098 = load ptr, ptr %1097, align 8
  %1099 = call noundef nonnull align 8 dereferenceable(72) ptr %1098(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %1100 = getelementptr inbounds i8, ptr %1099, i64 8
  %1101 = load i64, ptr %1100, align 8
  %1102 = xor i64 %1101, %1095
  %1103 = and i64 %1102, 562949953421312
  %.not454 = icmp eq i64 %1103, 0
  br i1 %.not454, label %1105, label %1104

1104:                                             ; preds = %1089
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.66, i32 noundef %4)
  br label %1105

1105:                                             ; preds = %1104, %1089
  %.7 = phi i1 [ true, %1104 ], [ %.6347, %1089 ]
  %1106 = load ptr, ptr %2, align 8, !tbaa !5
  %1107 = getelementptr inbounds i8, ptr %1106, i64 272
  %1108 = load ptr, ptr %1107, align 8
  %1109 = call noundef nonnull align 8 dereferenceable(72) ptr %1108(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %1110 = getelementptr inbounds i8, ptr %1109, i64 8
  %1111 = load i64, ptr %1110, align 8
  %1112 = load ptr, ptr %3, align 8, !tbaa !5
  %1113 = getelementptr inbounds i8, ptr %1112, i64 272
  %1114 = load ptr, ptr %1113, align 8
  %1115 = call noundef nonnull align 8 dereferenceable(72) ptr %1114(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %1116 = getelementptr inbounds i8, ptr %1115, i64 8
  %1117 = load i64, ptr %1116, align 8
  %1118 = xor i64 %1117, %1111
  %1119 = and i64 %1118, 35184372088832
  %.not455 = icmp eq i64 %1119, 0
  br i1 %.not455, label %1121, label %1120

1120:                                             ; preds = %1105
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.67, i32 noundef %4)
  br label %1121

1121:                                             ; preds = %1120, %1105
  %.8 = phi i1 [ true, %1120 ], [ %.7, %1105 ]
  %1122 = load ptr, ptr %2, align 8, !tbaa !5
  %1123 = getelementptr inbounds i8, ptr %1122, i64 272
  %1124 = load ptr, ptr %1123, align 8
  %1125 = call noundef nonnull align 8 dereferenceable(72) ptr %1124(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %1126 = getelementptr inbounds i8, ptr %1125, i64 8
  %1127 = load i64, ptr %1126, align 8
  %1128 = load ptr, ptr %3, align 8, !tbaa !5
  %1129 = getelementptr inbounds i8, ptr %1128, i64 272
  %1130 = load ptr, ptr %1129, align 8
  %1131 = call noundef nonnull align 8 dereferenceable(72) ptr %1130(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %1132 = getelementptr inbounds i8, ptr %1131, i64 8
  %1133 = load i64, ptr %1132, align 8
  %1134 = xor i64 %1133, %1127
  %1135 = and i64 %1134, 70368744177664
  %.not456 = icmp eq i64 %1135, 0
  br i1 %.not456, label %1137, label %1136

1136:                                             ; preds = %1121
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.68, i32 noundef %4)
  br label %1137

1137:                                             ; preds = %1136, %1121
  %.9 = phi i1 [ true, %1136 ], [ %.8, %1121 ]
  %1138 = load ptr, ptr %2, align 8, !tbaa !5
  %1139 = getelementptr inbounds i8, ptr %1138, i64 272
  %1140 = load ptr, ptr %1139, align 8
  %1141 = call noundef nonnull align 8 dereferenceable(72) ptr %1140(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %1142 = getelementptr inbounds i8, ptr %1141, i64 8
  %1143 = load i64, ptr %1142, align 8
  %1144 = load ptr, ptr %3, align 8, !tbaa !5
  %1145 = getelementptr inbounds i8, ptr %1144, i64 272
  %1146 = load ptr, ptr %1145, align 8
  %1147 = call noundef nonnull align 8 dereferenceable(72) ptr %1146(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %1148 = getelementptr inbounds i8, ptr %1147, i64 8
  %1149 = load i64, ptr %1148, align 8
  %1150 = xor i64 %1149, %1143
  %1151 = and i64 %1150, 140737488355328
  %.not457 = icmp eq i64 %1151, 0
  br i1 %.not457, label %1152, label %.thread541

.thread541:                                       ; preds = %1137
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.69, i32 noundef %4)
  br label %1153

1152:                                             ; preds = %1137
  %cond.fr535 = freeze i1 %.9
  %spec.select = select i1 %cond.fr535, i8 1, i8 %.2369
  %spec.select550 = select i1 %cond.fr535, i8 1, i8 %.7355
  br label %1153

1153:                                             ; preds = %1152, %.thread541
  %1154 = phi i8 [ 1, %.thread541 ], [ %spec.select, %1152 ]
  %1155 = phi i8 [ 1, %.thread541 ], [ %spec.select550, %1152 ]
  %1156 = load ptr, ptr %2, align 8, !tbaa !5
  %1157 = getelementptr inbounds i8, ptr %1156, i64 272
  %1158 = load ptr, ptr %1157, align 8
  %1159 = call noundef nonnull align 8 dereferenceable(72) ptr %1158(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %1160 = getelementptr inbounds i8, ptr %1159, i64 8
  %1161 = load i64, ptr %1160, align 8
  %1162 = load ptr, ptr %3, align 8, !tbaa !5
  %1163 = getelementptr inbounds i8, ptr %1162, i64 272
  %1164 = load ptr, ptr %1163, align 8
  %1165 = call noundef nonnull align 8 dereferenceable(72) ptr %1164(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %1166 = getelementptr inbounds i8, ptr %1165, i64 8
  %1167 = load i64, ptr %1166, align 8
  %1168 = xor i64 %1167, %1161
  %1169 = and i64 %1168, 4035225266123964416
  %.not458 = icmp ne i64 %1169, 0
  br i1 %.not458, label %1170, label %1171

1170:                                             ; preds = %1153
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.70, i32 noundef %4)
  br label %1171

1171:                                             ; preds = %1170, %1153
  %1172 = load ptr, ptr %2, align 8, !tbaa !5
  %1173 = getelementptr inbounds i8, ptr %1172, i64 272
  %1174 = load ptr, ptr %1173, align 8
  %1175 = call noundef nonnull align 8 dereferenceable(72) ptr %1174(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %1176 = getelementptr inbounds i8, ptr %1175, i64 16
  %1177 = load i8, ptr %1176, align 8
  %1178 = load ptr, ptr %3, align 8, !tbaa !5
  %1179 = getelementptr inbounds i8, ptr %1178, i64 272
  %1180 = load ptr, ptr %1179, align 8
  %1181 = call noundef nonnull align 8 dereferenceable(72) ptr %1180(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %1182 = getelementptr inbounds i8, ptr %1181, i64 16
  %1183 = load i8, ptr %1182, align 8
  %1184 = xor i8 %1183, %1177
  %1185 = and i8 %1184, 15
  %.not459 = icmp eq i8 %1185, 0
  br i1 %.not459, label %1187, label %1186

1186:                                             ; preds = %1171
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.71, i32 noundef %4)
  br label %1187

1187:                                             ; preds = %1186, %1171
  %.1 = phi i1 [ true, %1186 ], [ %.not458, %1171 ]
  %1188 = load ptr, ptr %2, align 8, !tbaa !5
  %1189 = getelementptr inbounds i8, ptr %1188, i64 272
  %1190 = load ptr, ptr %1189, align 8
  %1191 = call noundef nonnull align 8 dereferenceable(72) ptr %1190(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %1192 = call noundef zeroext i1 @_ZNK7glslang10TQualifier11hasLocationEv(ptr noundef nonnull align 8 dereferenceable(72) %1191)
  br i1 %1192, label %1193, label %1215

1193:                                             ; preds = %1187
  %1194 = load ptr, ptr %3, align 8, !tbaa !5
  %1195 = getelementptr inbounds i8, ptr %1194, i64 272
  %1196 = load ptr, ptr %1195, align 8
  %1197 = call noundef nonnull align 8 dereferenceable(72) ptr %1196(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %1198 = call noundef zeroext i1 @_ZNK7glslang10TQualifier11hasLocationEv(ptr noundef nonnull align 8 dereferenceable(72) %1197)
  br i1 %1198, label %1199, label %1215

1199:                                             ; preds = %1193
  %1200 = load ptr, ptr %2, align 8, !tbaa !5
  %1201 = getelementptr inbounds i8, ptr %1200, i64 272
  %1202 = load ptr, ptr %1201, align 8
  %1203 = call noundef nonnull align 8 dereferenceable(72) ptr %1202(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %1204 = getelementptr inbounds i8, ptr %1203, i64 28
  %1205 = load i64, ptr %1204, align 4
  %1206 = load ptr, ptr %3, align 8, !tbaa !5
  %1207 = getelementptr inbounds i8, ptr %1206, i64 272
  %1208 = load ptr, ptr %1207, align 8
  %1209 = call noundef nonnull align 8 dereferenceable(72) ptr %1208(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %1210 = getelementptr inbounds i8, ptr %1209, i64 28
  %1211 = load i64, ptr %1210, align 4
  %1212 = xor i64 %1211, %1205
  %1213 = and i64 %1212, 4095
  %.not460 = icmp eq i64 %1213, 0
  br i1 %.not460, label %1215, label %1214

1214:                                             ; preds = %1199
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.72, i32 noundef %4)
  br label %1215

1215:                                             ; preds = %1214, %1199, %1193, %1187
  %.2 = phi i1 [ true, %1214 ], [ %.1, %1199 ], [ %.1, %1193 ], [ %.1, %1187 ]
  %1216 = load ptr, ptr %2, align 8, !tbaa !5
  %1217 = getelementptr inbounds i8, ptr %1216, i64 272
  %1218 = load ptr, ptr %1217, align 8
  %1219 = call noundef nonnull align 8 dereferenceable(72) ptr %1218(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %1220 = getelementptr inbounds i8, ptr %1219, i64 28
  %1221 = load i64, ptr %1220, align 4
  %1222 = load ptr, ptr %3, align 8, !tbaa !5
  %1223 = getelementptr inbounds i8, ptr %1222, i64 272
  %1224 = load ptr, ptr %1223, align 8
  %1225 = call noundef nonnull align 8 dereferenceable(72) ptr %1224(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %1226 = getelementptr inbounds i8, ptr %1225, i64 28
  %1227 = load i64, ptr %1226, align 4
  %1228 = xor i64 %1227, %1221
  %1229 = and i64 %1228, 28672
  %.not461 = icmp eq i64 %1229, 0
  br i1 %.not461, label %1231, label %1230

1230:                                             ; preds = %1215
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.73, i32 noundef %4)
  br label %1231

1231:                                             ; preds = %1230, %1215
  %.3 = phi i1 [ true, %1230 ], [ %.2, %1215 ]
  %1232 = load ptr, ptr %2, align 8, !tbaa !5
  %1233 = getelementptr inbounds i8, ptr %1232, i64 272
  %1234 = load ptr, ptr %1233, align 8
  %1235 = call noundef nonnull align 8 dereferenceable(72) ptr %1234(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %1236 = getelementptr inbounds i8, ptr %1235, i64 28
  %1237 = load i64, ptr %1236, align 4
  %1238 = load ptr, ptr %3, align 8, !tbaa !5
  %1239 = getelementptr inbounds i8, ptr %1238, i64 272
  %1240 = load ptr, ptr %1239, align 8
  %1241 = call noundef nonnull align 8 dereferenceable(72) ptr %1240(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %1242 = getelementptr inbounds i8, ptr %1241, i64 28
  %1243 = load i64, ptr %1242, align 4
  %1244 = xor i64 %1243, %1237
  %1245 = and i64 %1244, 71776119061217280
  %.not462 = icmp eq i64 %1245, 0
  br i1 %.not462, label %1247, label %1246

1246:                                             ; preds = %1231
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.74, i32 noundef %4)
  br label %1247

1247:                                             ; preds = %1246, %1231
  %.4 = phi i1 [ true, %1246 ], [ %.3, %1231 ]
  %1248 = load ptr, ptr %2, align 8, !tbaa !5
  %1249 = getelementptr inbounds i8, ptr %1248, i64 272
  %1250 = load ptr, ptr %1249, align 8
  %1251 = call noundef nonnull align 8 dereferenceable(72) ptr %1250(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %1252 = call noundef zeroext i1 @_ZNK7glslang10TQualifier10hasBindingEv(ptr noundef nonnull align 8 dereferenceable(72) %1251)
  br i1 %1252, label %1253, label %1275

1253:                                             ; preds = %1247
  %1254 = load ptr, ptr %3, align 8, !tbaa !5
  %1255 = getelementptr inbounds i8, ptr %1254, i64 272
  %1256 = load ptr, ptr %1255, align 8
  %1257 = call noundef nonnull align 8 dereferenceable(72) ptr %1256(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %1258 = call noundef zeroext i1 @_ZNK7glslang10TQualifier10hasBindingEv(ptr noundef nonnull align 8 dereferenceable(72) %1257)
  br i1 %1258, label %1259, label %1275

1259:                                             ; preds = %1253
  %1260 = load ptr, ptr %2, align 8, !tbaa !5
  %1261 = getelementptr inbounds i8, ptr %1260, i64 272
  %1262 = load ptr, ptr %1261, align 8
  %1263 = call noundef nonnull align 8 dereferenceable(72) ptr %1262(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %1264 = getelementptr inbounds i8, ptr %1263, i64 28
  %1265 = load i64, ptr %1264, align 4
  %1266 = load ptr, ptr %3, align 8, !tbaa !5
  %1267 = getelementptr inbounds i8, ptr %1266, i64 272
  %1268 = load ptr, ptr %1267, align 8
  %1269 = call noundef nonnull align 8 dereferenceable(72) ptr %1268(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %1270 = getelementptr inbounds i8, ptr %1269, i64 28
  %1271 = load i64, ptr %1270, align 4
  %1272 = xor i64 %1271, %1265
  %1273 = and i64 %1272, 281470681743360
  %.not463 = icmp eq i64 %1273, 0
  br i1 %.not463, label %1275, label %1274

1274:                                             ; preds = %1259
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.75, i32 noundef %4)
  br label %1275

1275:                                             ; preds = %1274, %1259, %1253, %1247
  %.5 = phi i1 [ true, %1274 ], [ %.4, %1259 ], [ %.4, %1253 ], [ %.4, %1247 ]
  %1276 = load ptr, ptr %2, align 8, !tbaa !5
  %1277 = getelementptr inbounds i8, ptr %1276, i64 272
  %1278 = load ptr, ptr %1277, align 8
  %1279 = call noundef nonnull align 8 dereferenceable(72) ptr %1278(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %1280 = call noundef zeroext i1 @_ZNK7glslang10TQualifier10hasBindingEv(ptr noundef nonnull align 8 dereferenceable(72) %1279)
  br i1 %1280, label %1281, label %1294

1281:                                             ; preds = %1275
  %1282 = load ptr, ptr %2, align 8, !tbaa !5
  %1283 = getelementptr inbounds i8, ptr %1282, i64 272
  %1284 = load ptr, ptr %1283, align 8
  %1285 = call noundef nonnull align 8 dereferenceable(72) ptr %1284(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %1286 = getelementptr inbounds i8, ptr %1285, i64 20
  %1287 = load i32, ptr %1286, align 4, !tbaa !18
  %1288 = load ptr, ptr %3, align 8, !tbaa !5
  %1289 = getelementptr inbounds i8, ptr %1288, i64 272
  %1290 = load ptr, ptr %1289, align 8
  %1291 = call noundef nonnull align 8 dereferenceable(72) ptr %1290(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %1292 = getelementptr inbounds i8, ptr %1291, i64 20
  %1293 = load i32, ptr %1292, align 4, !tbaa !18
  %.not464 = icmp eq i32 %1287, %1293
  br i1 %.not464, label %1294, label %.thread545

.thread545:                                       ; preds = %1281
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.76, i32 noundef %4)
  br label %.critedge511

1294:                                             ; preds = %1281, %1275
  %spec.select508 = select i1 %.5, i8 1, i8 %1154
  %1295 = trunc nuw i8 %1155 to i1
  %1296 = select i1 %.5, i1 true, i1 %1295
  br i1 %1296, label %.critedge511, label %1297

1297:                                             ; preds = %1294
  br i1 %.3366, label %1621, label %1298

1298:                                             ; preds = %1297
  %1299 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang13TIntermSymbol13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(256) %2)
  %1300 = call noundef zeroext i1 @_ZNK7glslang16TConstUnionArray5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %1299)
  br i1 %1300, label %1621, label %1301

1301:                                             ; preds = %1298
  %1302 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang13TIntermSymbol13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(256) %3)
  %1303 = call noundef zeroext i1 @_ZNK7glslang16TConstUnionArray5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %1302)
  br i1 %1303, label %1621, label %1304

1304:                                             ; preds = %1301
  %1305 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang13TIntermSymbol13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(256) %2)
  %1306 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK7glslang13TIntermSymbol13getConstArrayEv(ptr noundef nonnull align 8 dereferenceable(256) %3)
  %1307 = call noundef zeroext i1 @_ZNK7glslang16TConstUnionArrayneERKS0_(ptr noundef nonnull align 8 dereferenceable(16) %1305, ptr noundef nonnull align 8 dereferenceable(16) %1306)
  br i1 %1307, label %1308, label %1621

1308:                                             ; preds = %1304
  call void @_ZN7glslang13TIntermediate5errorER9TInfoSinkPKc11EShLanguage(ptr noundef nonnull align 8 dereferenceable(1784) %0, ptr noundef nonnull align 8 dereferenceable(80) %1, ptr noundef nonnull @.str.77, i32 noundef %4)
  %1309 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1, ptr noundef nonnull @.str.26)
  %1310 = load ptr, ptr %2, align 8, !tbaa !5
  %1311 = getelementptr inbounds i8, ptr %1310, i64 400
  %1312 = load ptr, ptr %1311, align 8
  %1313 = call noundef nonnull align 8 dereferenceable(40) ptr %1312(ptr noundef nonnull align 8 dereferenceable(256) %2)
  %1314 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %1309, ptr noundef nonnull align 8 dereferenceable(40) %1313)
  %1315 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1314, ptr noundef nonnull @.str.3)
  br label %1621

.critedge511:                                     ; preds = %.thread545, %1294
  %spec.select508549 = phi i8 [ 1, %.thread545 ], [ %spec.select508, %1294 ]
  %1316 = load ptr, ptr %2, align 8, !tbaa !5
  %1317 = getelementptr inbounds i8, ptr %1316, i64 240
  %1318 = load ptr, ptr %1317, align 8
  %1319 = call noundef nonnull align 8 dereferenceable(144) ptr %1318(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %1320 = load ptr, ptr %1319, align 8, !tbaa !5
  %1321 = getelementptr inbounds i8, ptr %1320, i64 56
  %1322 = load ptr, ptr %1321, align 8
  %1323 = call noundef i32 %1322(ptr noundef nonnull align 8 dereferenceable(144) %1319)
  %1324 = icmp eq i32 %1323, 16
  br i1 %1324, label %1325, label %1503

1325:                                             ; preds = %.critedge511
  %1326 = load ptr, ptr %3, align 8, !tbaa !5
  %1327 = getelementptr inbounds i8, ptr %1326, i64 240
  %1328 = load ptr, ptr %1327, align 8
  %1329 = call noundef nonnull align 8 dereferenceable(144) ptr %1328(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %1330 = load ptr, ptr %1329, align 8, !tbaa !5
  %1331 = getelementptr inbounds i8, ptr %1330, i64 56
  %1332 = load ptr, ptr %1331, align 8
  %1333 = call noundef i32 %1332(ptr noundef nonnull align 8 dereferenceable(144) %1329)
  %1334 = icmp eq i32 %1333, 16
  br i1 %1334, label %1335, label %1503

1335:                                             ; preds = %1325
  %1336 = load ptr, ptr %2, align 8, !tbaa !5
  %1337 = getelementptr inbounds i8, ptr %1336, i64 240
  %1338 = load ptr, ptr %1337, align 8
  %1339 = call noundef nonnull align 8 dereferenceable(144) ptr %1338(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %1340 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %1339)
  %.not465 = icmp eq ptr %1340, null
  br i1 %.not465, label %1503, label %1341

1341:                                             ; preds = %1335
  %1342 = load ptr, ptr %3, align 8, !tbaa !5
  %1343 = getelementptr inbounds i8, ptr %1342, i64 240
  %1344 = load ptr, ptr %1343, align 8
  %1345 = call noundef nonnull align 8 dereferenceable(144) ptr %1344(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %1346 = call noundef ptr @_ZNK7glslang5TType9getStructEv(ptr noundef nonnull align 8 dereferenceable(144) %1345)
  %.not466 = icmp eq ptr %1346, null
  br i1 %.not466, label %1503, label %1347

1347:                                             ; preds = %1341
  %1348 = trunc nuw i8 %.0348 to i1
  %1349 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1, ptr noundef nonnull @.str.26)
  %1350 = call noundef i32 @_ZNK7glslang13TIntermediate8getStageEv(ptr noundef nonnull align 8 dereferenceable(1784) %0)
  %1351 = call ptr @StageName(i32 noundef %1350)
  %1352 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1349, ptr noundef %1351)
  br i1 %1348, label %1353, label %1425

1353:                                             ; preds = %1347
  %1354 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1352, ptr noundef nonnull @.str.38)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %30) #6
  %1355 = load ptr, ptr %2, align 8, !tbaa !5
  %1356 = getelementptr inbounds i8, ptr %1355, i64 240
  %1357 = load ptr, ptr %1356, align 8
  %1358 = call noundef nonnull align 8 dereferenceable(144) ptr %1357(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %1359 = trunc nuw i8 %spec.select508549 to i1
  %1360 = trunc nuw i8 %.1415532 to i1
  %1361 = load ptr, ptr %2, align 8, !tbaa !5
  %1362 = getelementptr inbounds i8, ptr %1361, i64 400
  %1363 = load ptr, ptr %1362, align 8
  %1364 = call noundef nonnull align 8 dereferenceable(40) ptr %1363(ptr noundef nonnull align 8 dereferenceable(256) %2)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(40) %31, ptr noundef nonnull align 8 dereferenceable(40) %1364)
  %1365 = load ptr, ptr %2, align 8, !tbaa !5
  %1366 = getelementptr inbounds i8, ptr %1365, i64 240
  %1367 = load ptr, ptr %1366, align 8
  %1368 = invoke noundef nonnull align 8 dereferenceable(144) ptr %1367(ptr noundef nonnull align 8 dereferenceable(176) %2)
          to label %1369 unwind label %1409

1369:                                             ; preds = %1353
  %1370 = load ptr, ptr %1368, align 8, !tbaa !5
  %1371 = getelementptr inbounds i8, ptr %1370, i64 40
  %1372 = load ptr, ptr %1371, align 8
  %1373 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1372(ptr noundef nonnull align 8 dereferenceable(144) %1368)
          to label %1374 unwind label %1409

1374:                                             ; preds = %1369
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(40) %32, ptr noundef nonnull align 8 dereferenceable(40) %1373)
          to label %1375 unwind label %1409

1375:                                             ; preds = %1374
  invoke void @_ZNK7glslang5TType17getCompleteStringEbbbbNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string.91") align 8 %30, ptr noundef nonnull align 8 dereferenceable(144) %1358, i1 noundef zeroext true, i1 noundef zeroext %1359, i1 noundef zeroext %1360, i1 noundef zeroext true, ptr noundef nonnull %31, ptr noundef nonnull %32)
          to label %1376 unwind label %1411

1376:                                             ; preds = %1375
  %1377 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %1354, ptr noundef nonnull align 8 dereferenceable(40) %30)
          to label %1378 unwind label %1413

1378:                                             ; preds = %1376
  %1379 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1377, ptr noundef nonnull @.str.33)
          to label %1380 unwind label %1413

1380:                                             ; preds = %1378
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %30) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %32) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %31) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %30) #6
  %1381 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1, ptr noundef nonnull @.str.26)
  %1382 = call ptr @StageName(i32 noundef %4)
  %1383 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1381, ptr noundef %1382)
  %1384 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1383, ptr noundef nonnull @.str.38)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %33) #6
  %1385 = load ptr, ptr %3, align 8, !tbaa !5
  %1386 = getelementptr inbounds i8, ptr %1385, i64 240
  %1387 = load ptr, ptr %1386, align 8
  %1388 = call noundef nonnull align 8 dereferenceable(144) ptr %1387(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %1389 = load ptr, ptr %3, align 8, !tbaa !5
  %1390 = getelementptr inbounds i8, ptr %1389, i64 400
  %1391 = load ptr, ptr %1390, align 8
  %1392 = call noundef nonnull align 8 dereferenceable(40) ptr %1391(ptr noundef nonnull align 8 dereferenceable(256) %3)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(40) %34, ptr noundef nonnull align 8 dereferenceable(40) %1392)
  %1393 = load ptr, ptr %3, align 8, !tbaa !5
  %1394 = getelementptr inbounds i8, ptr %1393, i64 240
  %1395 = load ptr, ptr %1394, align 8
  %1396 = invoke noundef nonnull align 8 dereferenceable(144) ptr %1395(ptr noundef nonnull align 8 dereferenceable(176) %3)
          to label %1397 unwind label %1417

1397:                                             ; preds = %1380
  %1398 = load ptr, ptr %1396, align 8, !tbaa !5
  %1399 = getelementptr inbounds i8, ptr %1398, i64 40
  %1400 = load ptr, ptr %1399, align 8
  %1401 = invoke noundef nonnull align 8 dereferenceable(40) ptr %1400(ptr noundef nonnull align 8 dereferenceable(144) %1396)
          to label %1402 unwind label %1417

1402:                                             ; preds = %1397
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(40) %35, ptr noundef nonnull align 8 dereferenceable(40) %1401)
          to label %1403 unwind label %1417

1403:                                             ; preds = %1402
  invoke void @_ZNK7glslang5TType17getCompleteStringEbbbbNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string.91") align 8 %33, ptr noundef nonnull align 8 dereferenceable(144) %1388, i1 noundef zeroext true, i1 noundef zeroext %1359, i1 noundef zeroext %1360, i1 noundef zeroext true, ptr noundef nonnull %34, ptr noundef nonnull %35)
          to label %1404 unwind label %1419

1404:                                             ; preds = %1403
  %1405 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %1384, ptr noundef nonnull align 8 dereferenceable(40) %33)
          to label %1406 unwind label %1421

1406:                                             ; preds = %1404
  %1407 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1405, ptr noundef nonnull @.str.33)
          to label %1408 unwind label %1421

1408:                                             ; preds = %1406
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %33) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %35) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %34) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %33) #6
  br label %1621

1409:                                             ; preds = %1374, %1369, %1353
  %1410 = landingpad { ptr, i32 }
          cleanup
  br label %1416

1411:                                             ; preds = %1375
  %1412 = landingpad { ptr, i32 }
          cleanup
  br label %1415

1413:                                             ; preds = %1378, %1376
  %1414 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %30) #6
  br label %1415

1415:                                             ; preds = %1413, %1411
  %.pn485 = phi { ptr, i32 } [ %1414, %1413 ], [ %1412, %1411 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %32) #6
  br label %1416

1416:                                             ; preds = %1415, %1409
  %.pn485.pn = phi { ptr, i32 } [ %.pn485, %1415 ], [ %1410, %1409 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %31) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %30) #6
  br label %1622

1417:                                             ; preds = %1402, %1397, %1380
  %1418 = landingpad { ptr, i32 }
          cleanup
  br label %1424

1419:                                             ; preds = %1403
  %1420 = landingpad { ptr, i32 }
          cleanup
  br label %1423

1421:                                             ; preds = %1406, %1404
  %1422 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %33) #6
  br label %1423

1423:                                             ; preds = %1421, %1419
  %.pn488 = phi { ptr, i32 } [ %1422, %1421 ], [ %1420, %1419 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %35) #6
  br label %1424

1424:                                             ; preds = %1423, %1417
  %.pn488.pn = phi { ptr, i32 } [ %.pn488, %1423 ], [ %1418, %1417 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %34) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %33) #6
  br label %1622

1425:                                             ; preds = %1347
  %1426 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1352, ptr noundef nonnull @.str.41)
  %1427 = load ptr, ptr %2, align 8, !tbaa !5
  %1428 = getelementptr inbounds i8, ptr %1427, i64 240
  %1429 = load ptr, ptr %1428, align 8
  %1430 = call noundef nonnull align 8 dereferenceable(144) ptr %1429(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %1431 = load ptr, ptr %1430, align 8, !tbaa !5
  %1432 = getelementptr inbounds i8, ptr %1431, i64 40
  %1433 = load ptr, ptr %1432, align 8
  %1434 = call noundef nonnull align 8 dereferenceable(40) ptr %1433(ptr noundef nonnull align 8 dereferenceable(144) %1430)
  %1435 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %1426, ptr noundef nonnull align 8 dereferenceable(40) %1434)
  %1436 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1435, ptr noundef nonnull @.str.78)
  %1437 = load ptr, ptr %2, align 8, !tbaa !5
  %1438 = getelementptr inbounds i8, ptr %1437, i64 400
  %1439 = load ptr, ptr %1438, align 8
  %1440 = call noundef nonnull align 8 dereferenceable(40) ptr %1439(ptr noundef nonnull align 8 dereferenceable(256) %2)
  %1441 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %1436, ptr noundef nonnull align 8 dereferenceable(40) %1440)
  %1442 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1441, ptr noundef nonnull @.str.79)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %36) #6
  %1443 = load ptr, ptr %2, align 8, !tbaa !5
  %1444 = getelementptr inbounds i8, ptr %1443, i64 240
  %1445 = load ptr, ptr %1444, align 8
  %1446 = call noundef nonnull align 8 dereferenceable(144) ptr %1445(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %1447 = trunc nuw i8 %spec.select508549 to i1
  %1448 = trunc nuw i8 %.1415532 to i1
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #6
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %38)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %37, ptr noundef nonnull @.str.31, ptr noundef nonnull align 8 dereferenceable(8) %38)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #6
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %40)
          to label %1449 unwind label %1487

1449:                                             ; preds = %1425
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %39, ptr noundef nonnull @.str.31, ptr noundef nonnull align 8 dereferenceable(8) %40)
          to label %1450 unwind label %1487

1450:                                             ; preds = %1449
  invoke void @_ZNK7glslang5TType17getCompleteStringEbbbbNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string.91") align 8 %36, ptr noundef nonnull align 8 dereferenceable(144) %1446, i1 noundef zeroext true, i1 noundef zeroext %1447, i1 noundef zeroext %1448, i1 noundef zeroext false, ptr noundef nonnull %37, ptr noundef nonnull %39)
          to label %1451 unwind label %1489

1451:                                             ; preds = %1450
  %1452 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %1442, ptr noundef nonnull align 8 dereferenceable(40) %36)
          to label %1453 unwind label %1491

1453:                                             ; preds = %1451
  %1454 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1452, ptr noundef nonnull @.str.33)
          to label %1455 unwind label %1491

1455:                                             ; preds = %1453
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %36) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %39) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %37) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %36) #6
  %1456 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1, ptr noundef nonnull @.str.26)
  %1457 = call ptr @StageName(i32 noundef %4)
  %1458 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1456, ptr noundef %1457)
  %1459 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1458, ptr noundef nonnull @.str.41)
  %1460 = load ptr, ptr %3, align 8, !tbaa !5
  %1461 = getelementptr inbounds i8, ptr %1460, i64 240
  %1462 = load ptr, ptr %1461, align 8
  %1463 = call noundef nonnull align 8 dereferenceable(144) ptr %1462(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %1464 = load ptr, ptr %1463, align 8, !tbaa !5
  %1465 = getelementptr inbounds i8, ptr %1464, i64 40
  %1466 = load ptr, ptr %1465, align 8
  %1467 = call noundef nonnull align 8 dereferenceable(40) ptr %1466(ptr noundef nonnull align 8 dereferenceable(144) %1463)
  %1468 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %1459, ptr noundef nonnull align 8 dereferenceable(40) %1467)
  %1469 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1468, ptr noundef nonnull @.str.78)
  %1470 = load ptr, ptr %3, align 8, !tbaa !5
  %1471 = getelementptr inbounds i8, ptr %1470, i64 400
  %1472 = load ptr, ptr %1471, align 8
  %1473 = call noundef nonnull align 8 dereferenceable(40) ptr %1472(ptr noundef nonnull align 8 dereferenceable(256) %3)
  %1474 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %1469, ptr noundef nonnull align 8 dereferenceable(40) %1473)
  %1475 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1474, ptr noundef nonnull @.str.79)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %41) #6
  %1476 = load ptr, ptr %3, align 8, !tbaa !5
  %1477 = getelementptr inbounds i8, ptr %1476, i64 240
  %1478 = load ptr, ptr %1477, align 8
  %1479 = call noundef nonnull align 8 dereferenceable(144) ptr %1478(ptr noundef nonnull align 8 dereferenceable(176) %3)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #6
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %43)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %42, ptr noundef nonnull @.str.31, ptr noundef nonnull align 8 dereferenceable(8) %43)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #6
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %45)
          to label %1480 unwind label %1495

1480:                                             ; preds = %1455
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %44, ptr noundef nonnull @.str.31, ptr noundef nonnull align 8 dereferenceable(8) %45)
          to label %1481 unwind label %1495

1481:                                             ; preds = %1480
  invoke void @_ZNK7glslang5TType17getCompleteStringEbbbbNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string.91") align 8 %41, ptr noundef nonnull align 8 dereferenceable(144) %1479, i1 noundef zeroext true, i1 noundef zeroext %1447, i1 noundef zeroext %1448, i1 noundef zeroext false, ptr noundef nonnull %42, ptr noundef nonnull %44)
          to label %1482 unwind label %1497

1482:                                             ; preds = %1481
  %1483 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %1475, ptr noundef nonnull align 8 dereferenceable(40) %41)
          to label %1484 unwind label %1499

1484:                                             ; preds = %1482
  %1485 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1483, ptr noundef nonnull @.str.33)
          to label %1486 unwind label %1499

1486:                                             ; preds = %1484
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %41) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %44) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %42) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %41) #6
  br label %1621

1487:                                             ; preds = %1449, %1425
  %1488 = landingpad { ptr, i32 }
          cleanup
  br label %1494

1489:                                             ; preds = %1450
  %1490 = landingpad { ptr, i32 }
          cleanup
  br label %1493

1491:                                             ; preds = %1453, %1451
  %1492 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %36) #6
  br label %1493

1493:                                             ; preds = %1491, %1489
  %.pn479 = phi { ptr, i32 } [ %1492, %1491 ], [ %1490, %1489 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %39) #6
  br label %1494

1494:                                             ; preds = %1493, %1487
  %.pn479.pn = phi { ptr, i32 } [ %.pn479, %1493 ], [ %1488, %1487 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %37) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %36) #6
  br label %1622

1495:                                             ; preds = %1480, %1455
  %1496 = landingpad { ptr, i32 }
          cleanup
  br label %1502

1497:                                             ; preds = %1481
  %1498 = landingpad { ptr, i32 }
          cleanup
  br label %1501

1499:                                             ; preds = %1484, %1482
  %1500 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %41) #6
  br label %1501

1501:                                             ; preds = %1499, %1497
  %.pn482 = phi { ptr, i32 } [ %1500, %1499 ], [ %1498, %1497 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %44) #6
  br label %1502

1502:                                             ; preds = %1501, %1495
  %.pn482.pn = phi { ptr, i32 } [ %.pn482, %1501 ], [ %1496, %1495 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %42) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %41) #6
  br label %1622

1503:                                             ; preds = %1341, %1335, %1325, %.critedge511
  %1504 = trunc nuw i8 %.0348 to i1
  %1505 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1, ptr noundef nonnull @.str.26)
  %1506 = call noundef i32 @_ZNK7glslang13TIntermediate8getStageEv(ptr noundef nonnull align 8 dereferenceable(1784) %0)
  %1507 = call ptr @StageName(i32 noundef %1506)
  %1508 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1505, ptr noundef %1507)
  br i1 %1504, label %1509, label %1563

1509:                                             ; preds = %1503
  %1510 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1508, ptr noundef nonnull @.str.38)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %46) #6
  %1511 = load ptr, ptr %2, align 8, !tbaa !5
  %1512 = getelementptr inbounds i8, ptr %1511, i64 240
  %1513 = load ptr, ptr %1512, align 8
  %1514 = call noundef nonnull align 8 dereferenceable(144) ptr %1513(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %1515 = trunc nuw i8 %spec.select508549 to i1
  %1516 = trunc nuw i8 %.1415532 to i1
  %1517 = load ptr, ptr %2, align 8, !tbaa !5
  %1518 = getelementptr inbounds i8, ptr %1517, i64 400
  %1519 = load ptr, ptr %1518, align 8
  %1520 = call noundef nonnull align 8 dereferenceable(40) ptr %1519(ptr noundef nonnull align 8 dereferenceable(256) %2)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(40) %47, ptr noundef nonnull align 8 dereferenceable(40) %1520)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #6
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %49)
          to label %1521 unwind label %1547

1521:                                             ; preds = %1509
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %48, ptr noundef nonnull @.str.31, ptr noundef nonnull align 8 dereferenceable(8) %49)
          to label %1522 unwind label %1547

1522:                                             ; preds = %1521
  invoke void @_ZNK7glslang5TType17getCompleteStringEbbbbNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string.91") align 8 %46, ptr noundef nonnull align 8 dereferenceable(144) %1514, i1 noundef zeroext true, i1 noundef zeroext %1515, i1 noundef zeroext %1516, i1 noundef zeroext true, ptr noundef nonnull %47, ptr noundef nonnull %48)
          to label %1523 unwind label %1549

1523:                                             ; preds = %1522
  %1524 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %1510, ptr noundef nonnull align 8 dereferenceable(40) %46)
          to label %1525 unwind label %1551

1525:                                             ; preds = %1523
  %1526 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1524, ptr noundef nonnull @.str.33)
          to label %1527 unwind label %1551

1527:                                             ; preds = %1525
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %46) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %48) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %47) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %46) #6
  %1528 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1, ptr noundef nonnull @.str.26)
  %1529 = call ptr @StageName(i32 noundef %4)
  %1530 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1528, ptr noundef %1529)
  %1531 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1530, ptr noundef nonnull @.str.38)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %50) #6
  %1532 = load ptr, ptr %3, align 8, !tbaa !5
  %1533 = getelementptr inbounds i8, ptr %1532, i64 240
  %1534 = load ptr, ptr %1533, align 8
  %1535 = call noundef nonnull align 8 dereferenceable(144) ptr %1534(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %1536 = load ptr, ptr %3, align 8, !tbaa !5
  %1537 = getelementptr inbounds i8, ptr %1536, i64 400
  %1538 = load ptr, ptr %1537, align 8
  %1539 = call noundef nonnull align 8 dereferenceable(40) ptr %1538(ptr noundef nonnull align 8 dereferenceable(256) %3)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(40) %51, ptr noundef nonnull align 8 dereferenceable(40) %1539)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #6
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %53)
          to label %1540 unwind label %1555

1540:                                             ; preds = %1527
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %52, ptr noundef nonnull @.str.31, ptr noundef nonnull align 8 dereferenceable(8) %53)
          to label %1541 unwind label %1555

1541:                                             ; preds = %1540
  invoke void @_ZNK7glslang5TType17getCompleteStringEbbbbNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string.91") align 8 %50, ptr noundef nonnull align 8 dereferenceable(144) %1535, i1 noundef zeroext true, i1 noundef zeroext %1515, i1 noundef zeroext %1516, i1 noundef zeroext true, ptr noundef nonnull %51, ptr noundef nonnull %52)
          to label %1542 unwind label %1557

1542:                                             ; preds = %1541
  %1543 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %1531, ptr noundef nonnull align 8 dereferenceable(40) %50)
          to label %1544 unwind label %1559

1544:                                             ; preds = %1542
  %1545 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1543, ptr noundef nonnull @.str.33)
          to label %1546 unwind label %1559

1546:                                             ; preds = %1544
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %50) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %52) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %51) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %50) #6
  br label %1621

1547:                                             ; preds = %1521, %1509
  %1548 = landingpad { ptr, i32 }
          cleanup
  br label %1554

1549:                                             ; preds = %1522
  %1550 = landingpad { ptr, i32 }
          cleanup
  br label %1553

1551:                                             ; preds = %1525, %1523
  %1552 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %46) #6
  br label %1553

1553:                                             ; preds = %1551, %1549
  %.pn473 = phi { ptr, i32 } [ %1552, %1551 ], [ %1550, %1549 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %48) #6
  br label %1554

1554:                                             ; preds = %1553, %1547
  %.pn473.pn = phi { ptr, i32 } [ %.pn473, %1553 ], [ %1548, %1547 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %47) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %46) #6
  br label %1622

1555:                                             ; preds = %1540, %1527
  %1556 = landingpad { ptr, i32 }
          cleanup
  br label %1562

1557:                                             ; preds = %1541
  %1558 = landingpad { ptr, i32 }
          cleanup
  br label %1561

1559:                                             ; preds = %1544, %1542
  %1560 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %50) #6
  br label %1561

1561:                                             ; preds = %1559, %1557
  %.pn476 = phi { ptr, i32 } [ %1560, %1559 ], [ %1558, %1557 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %52) #6
  br label %1562

1562:                                             ; preds = %1561, %1555
  %.pn476.pn = phi { ptr, i32 } [ %.pn476, %1561 ], [ %1556, %1555 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %51) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %50) #6
  br label %1622

1563:                                             ; preds = %1503
  %1564 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1508, ptr noundef nonnull @.str.4)
  %1565 = load ptr, ptr %2, align 8, !tbaa !5
  %1566 = getelementptr inbounds i8, ptr %1565, i64 400
  %1567 = load ptr, ptr %1566, align 8
  %1568 = call noundef nonnull align 8 dereferenceable(40) ptr %1567(ptr noundef nonnull align 8 dereferenceable(256) %2)
  %1569 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %1564, ptr noundef nonnull align 8 dereferenceable(40) %1568)
  %1570 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1569, ptr noundef nonnull @.str.51)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %54) #6
  %1571 = load ptr, ptr %2, align 8, !tbaa !5
  %1572 = getelementptr inbounds i8, ptr %1571, i64 240
  %1573 = load ptr, ptr %1572, align 8
  %1574 = call noundef nonnull align 8 dereferenceable(144) ptr %1573(ptr noundef nonnull align 8 dereferenceable(176) %2)
  %1575 = trunc nuw i8 %spec.select508549 to i1
  %1576 = trunc nuw i8 %.1415532 to i1
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %56) #6
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %56)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %55, ptr noundef nonnull @.str.31, ptr noundef nonnull align 8 dereferenceable(8) %56)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %58) #6
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %58)
          to label %1577 unwind label %1605

1577:                                             ; preds = %1563
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %57, ptr noundef nonnull @.str.31, ptr noundef nonnull align 8 dereferenceable(8) %58)
          to label %1578 unwind label %1605

1578:                                             ; preds = %1577
  invoke void @_ZNK7glslang5TType17getCompleteStringEbbbbNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string.91") align 8 %54, ptr noundef nonnull align 8 dereferenceable(144) %1574, i1 noundef zeroext true, i1 noundef zeroext %1575, i1 noundef zeroext %1576, i1 noundef zeroext false, ptr noundef nonnull %55, ptr noundef nonnull %57)
          to label %1579 unwind label %1607

1579:                                             ; preds = %1578
  %1580 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %1570, ptr noundef nonnull align 8 dereferenceable(40) %54)
          to label %1581 unwind label %1609

1581:                                             ; preds = %1579
  %1582 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1580, ptr noundef nonnull @.str.33)
          to label %1583 unwind label %1609

1583:                                             ; preds = %1581
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %54) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %57) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %55) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %54) #6
  %1584 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1, ptr noundef nonnull @.str.26)
  %1585 = call ptr @StageName(i32 noundef %4)
  %1586 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1584, ptr noundef %1585)
  %1587 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1586, ptr noundef nonnull @.str.4)
  %1588 = load ptr, ptr %3, align 8, !tbaa !5
  %1589 = getelementptr inbounds i8, ptr %1588, i64 400
  %1590 = load ptr, ptr %1589, align 8
  %1591 = call noundef nonnull align 8 dereferenceable(40) ptr %1590(ptr noundef nonnull align 8 dereferenceable(256) %3)
  %1592 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %1587, ptr noundef nonnull align 8 dereferenceable(40) %1591)
  %1593 = call noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1592, ptr noundef nonnull @.str.51)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %59) #6
  %1594 = load ptr, ptr %3, align 8, !tbaa !5
  %1595 = getelementptr inbounds i8, ptr %1594, i64 240
  %1596 = load ptr, ptr %1595, align 8
  %1597 = call noundef nonnull align 8 dereferenceable(144) ptr %1596(ptr noundef nonnull align 8 dereferenceable(176) %3)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %61) #6
  call void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %61)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %60, ptr noundef nonnull @.str.31, ptr noundef nonnull align 8 dereferenceable(8) %61)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %63) #6
  invoke void @_ZN7glslang14pool_allocatorIcEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %63)
          to label %1598 unwind label %1613

1598:                                             ; preds = %1583
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEC2IS5_EEPKcRKS5_(ptr noundef nonnull align 8 dereferenceable(40) %62, ptr noundef nonnull @.str.31, ptr noundef nonnull align 8 dereferenceable(8) %63)
          to label %1599 unwind label %1613

1599:                                             ; preds = %1598
  invoke void @_ZNK7glslang5TType17getCompleteStringEbbbbNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEES7_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string.91") align 8 %59, ptr noundef nonnull align 8 dereferenceable(144) %1597, i1 noundef zeroext true, i1 noundef zeroext %1575, i1 noundef zeroext %1576, i1 noundef zeroext false, ptr noundef nonnull %60, ptr noundef nonnull %62)
          to label %1600 unwind label %1615

1600:                                             ; preds = %1599
  %1601 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(36) %1593, ptr noundef nonnull align 8 dereferenceable(40) %59)
          to label %1602 unwind label %1617

1602:                                             ; preds = %1600
  %1603 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN7glslang13TInfoSinkBaselsEPKc(ptr noundef nonnull align 8 dereferenceable(36) %1601, ptr noundef nonnull @.str.33)
          to label %1604 unwind label %1617

1604:                                             ; preds = %1602
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %59) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %62) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %60) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %59) #6
  br label %1621

1605:                                             ; preds = %1577, %1563
  %1606 = landingpad { ptr, i32 }
          cleanup
  br label %1612

1607:                                             ; preds = %1578
  %1608 = landingpad { ptr, i32 }
          cleanup
  br label %1611

1609:                                             ; preds = %1581, %1579
  %1610 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %54) #6
  br label %1611

1611:                                             ; preds = %1609, %1607
  %.pn467 = phi { ptr, i32 } [ %1610, %1609 ], [ %1608, %1607 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %57) #6
  br label %1612

1612:                                             ; preds = %1611, %1605
  %.pn467.pn = phi { ptr, i32 } [ %.pn467, %1611 ], [ %1606, %1605 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %55) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %54) #6
  br label %1622

1613:                                             ; preds = %1598, %1583
  %1614 = landingpad { ptr, i32 }
          cleanup
  br label %1620

1615:                                             ; preds = %1599
  %1616 = landingpad { ptr, i32 }
          cleanup
  br label %1619

1617:                                             ; preds = %1602, %1600
  %1618 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %59) #6
  br label %1619

1619:                                             ; preds = %1617, %1615
  %.pn470 = phi { ptr, i32 } [ %1618, %1617 ], [ %1616, %1615 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %62) #6
  br label %1620

1620:                                             ; preds = %1619, %1613
  %.pn470.pn = phi { ptr, i32 } [ %.pn470, %1619 ], [ %1614, %1613 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %60) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %59) #6
  br label %1622

1621:                                             ; preds = %1297, %1304, %1308, %1301, %1298, %1486, %1408, %1604, %1546
  ret void

1622:                                             ; preds = %1416, %1424, %1494, %1502, %1554, %1562, %1612, %1620, %714, %722, %546
  %.pn500.pn.pn.pn = phi { ptr, i32 } [ %.pn429.pn.pn, %546 ], [ %.pn500.pn, %722 ], [ %.pn497.pn, %714 ], [ %.pn488.pn, %1424 ], [ %.pn485.pn, %1416 ], [ %.pn482.pn, %1502 ], [ %.pn479.pn, %1494 ], [ %.pn476.pn, %1562 ], [ %.pn473.pn, %1554 ], [ %.pn470.pn, %1620 ], [ %.pn467.pn, %1612 ]
  resume { ptr, i32 } %.pn500.pn.pn.pn
}

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7glslang11IsAnonymousERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #5

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK7glslang16TConstUnionArrayneERKS0_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #0 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 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress 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 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { 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 #5 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"vtable pointer", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = distinct !{!8, !9}
!9 = !{!"llvm.loop.mustprogress"}
!10 = !{!11, !11, i64 0}
!11 = !{!"int", !12, i64 0}
!12 = !{!"omnipotent char", !7, i64 0}
!13 = !{!14, !15, i64 0}
!14 = !{!"_ZTSN7glslang8TTypeLocE", !15, i64 0, !16, i64 8}
!15 = !{!"any pointer", !12, i64 0}
!16 = !{!"_ZTSN7glslang10TSourceLocE", !15, i64 0, !11, i64 8, !11, i64 12, !11, i64 16}
!17 = distinct !{!17, !9}
!18 = !{!19, !11, i64 20}
!19 = !{!"_ZTSN7glslang10TQualifierE", !15, i64 0, !20, i64 8, !21, i64 8, !21, i64 9, !22, i64 11, !23, i64 11, !23, i64 11, !23, i64 11, !23, i64 11, !23, i64 11, !23, i64 12, !23, i64 12, !23, i64 12, !23, i64 12, !23, i64 12, !23, i64 12, !23, i64 12, !23, i64 12, !23, i64 13, !23, i64 13, !23, i64 13, !23, i64 13, !23, i64 13, !23, i64 13, !23, i64 13, !23, i64 13, !23, i64 14, !23, i64 14, !23, i64 14, !23, i64 14, !23, i64 14, !23, i64 14, !23, i64 14, !23, i64 14, !23, i64 15, !23, i64 15, !23, i64 15, !24, i64 15, !25, i64 16, !11, i64 20, !11, i64 24, !11, i64 28, !11, i64 29, !11, i64 29, !11, i64 32, !11, i64 34, !11, i64 35, !11, i64 36, !11, i64 36, !11, i64 38, !11, i64 40, !11, i64 41, !11, i64 42, !26, i64 44, !23, i64 45, !23, i64 46, !23, i64 47, !23, i64 48, !11, i64 52, !23, i64 56, !11, i64 60, !15, i64 64}
!20 = !{!"_ZTSN7glslang17TStorageQualifierE", !12, i64 0}
!21 = !{!"_ZTSN7glslang16TBuiltInVariableE", !12, i64 0}
!22 = !{!"_ZTSN7glslang19TPrecisionQualifierE", !12, i64 0}
!23 = !{!"bool", !12, i64 0}
!24 = !{!"_ZTSN7glslang13TLayoutMatrixE", !12, i64 0}
!25 = !{!"_ZTSN7glslang14TLayoutPackingE", !12, i64 0}
!26 = !{!"_ZTSN7glslang13TLayoutFormatE", !12, i64 0}
!27 = !{!19, !11, i64 24}


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