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

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

%"class.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 }>
%"class.glslang::TParseVersions" = type { ptr, i8, i32, ptr, i32, i32, %"struct.glslang::SpvVersion", ptr, %"class.glslang::TMap", %"class.glslang::TMap.0", i32, i32, ptr }
%"struct.glslang::SpvVersion" = type <{ i32, i32, i32, i32, i8, [3 x i8] }>
%"class.glslang::TMap" = type { %"class.std::map" }
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, glslang::TExtensionBehavior>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, glslang::TExtensionBehavior>>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>>, glslang::pool_allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, glslang::TExtensionBehavior>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, glslang::TExtensionBehavior>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, glslang::TExtensionBehavior>>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>>, glslang::pool_allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, glslang::TExtensionBehavior>>>::_Rb_tree_impl" = type { %"class.glslang::pool_allocator", [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.glslang::pool_allocator" = type { ptr }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.glslang::TMap.0" = type { %"class.std::map.1" }
%"class.std::map.1" = type { %"class.std::_Rb_tree.2" }
%"class.std::_Rb_tree.2" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, unsigned int>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, unsigned int>>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>>, glslang::pool_allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, unsigned int>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, unsigned int>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, unsigned int>>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>>, glslang::pool_allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, glslang::pool_allocator<char>>, unsigned int>>>::_Rb_tree_impl" = type { %"class.glslang::pool_allocator.3", [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.glslang::pool_allocator.3" = type { ptr }

@.str.2 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.468 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.576 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.577 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.619 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.622 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.625 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.630 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.653 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.655 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.676 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.681 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.728 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.729 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.730 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.731 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.732 = external hidden unnamed_addr constant [28 x i8], align 1
@__const._ZN7glslang13TParseContext20layoutQualifierCheckERKNS_10TSourceLocERKNS_10TQualifierE.exts = external hidden unnamed_addr constant [2 x ptr], align 16
@.str.733 = external hidden unnamed_addr constant [29 x i8], align 1
@__const._ZN7glslang13TParseContext20layoutQualifierCheckERKNS_10TSourceLocERKNS_10TQualifierE.exts.734 = external hidden unnamed_addr constant [2 x ptr], align 16
@.str.735 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.736 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.737 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.738 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.739 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.740 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.741 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.742 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.743 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.744 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.745 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.746 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.747 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.748 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.749 = external hidden unnamed_addr constant [15 x i8], align 1

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

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #2

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

declare void @_ZN7glslang14TParseVersions14requireProfileERKNS_10TSourceLocEiPKc(ptr noundef nonnull align 8 dereferenceable(192), ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, ptr noundef) #3

declare void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiiPKPKcS5_(ptr noundef nonnull align 8 dereferenceable(192), ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef) #3

declare void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192), ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, i32 noundef, ptr noundef, ptr noundef) #3

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

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

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

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

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

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

declare void @_ZN7glslang14TParseVersions12requireStageERKNS_10TSourceLocE15EShLanguageMaskPKc(ptr noundef nonnull align 8 dereferenceable(192), ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, ptr noundef) #3

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7glslang13TParseContext20layoutQualifierCheckERKNS_10TSourceLocERKNS_10TQualifierE(ptr noundef nonnull align 8 dereferenceable(24912) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(72) %2) #4 align 2 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca [2 x ptr], align 16
  %9 = alloca ptr, align 8
  %10 = alloca [2 x ptr], align 16
  %11 = alloca ptr, align 8
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  store ptr %2, ptr %6, align 8, !tbaa !5
  %12 = load ptr, ptr %4, align 8
  %13 = load ptr, ptr %6, align 8, !tbaa !5
  %14 = getelementptr inbounds %"class.glslang::TQualifier", ptr %13, i32 0, i32 1
  %15 = load i64, ptr %14, align 8
  %16 = and i64 %15, 63
  %17 = trunc i64 %16 to i32
  %18 = icmp eq i32 %17, 7
  br i1 %18, label %19, label %39

19:                                               ; preds = %3
  %20 = load ptr, ptr %6, align 8, !tbaa !5
  %21 = call noundef zeroext i1 @_ZNK7glslang10TQualifier9hasLayoutEv(ptr noundef nonnull align 8 dereferenceable(72) %20)
  br i1 %21, label %22, label %39

22:                                               ; preds = %19
  %23 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %12, i32 0, i32 6
  %24 = getelementptr inbounds %"struct.glslang::SpvVersion", ptr %23, i32 0, i32 0
  %25 = load i32, ptr %24, align 8, !tbaa !9
  %26 = icmp ugt i32 %25, 0
  br i1 %26, label %27, label %37

27:                                               ; preds = %22
  %28 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %12, i32 0, i32 6
  %29 = getelementptr inbounds %"struct.glslang::SpvVersion", ptr %28, i32 0, i32 0
  %30 = load i32, ptr %29, align 8, !tbaa !9
  %31 = icmp ult i32 %30, 66560
  br i1 %31, label %32, label %37

32:                                               ; preds = %27
  %33 = load ptr, ptr %5, align 8, !tbaa !5
  %34 = load ptr, ptr %12, align 8, !tbaa !33
  %35 = getelementptr inbounds ptr, ptr %34, i64 42
  %36 = load ptr, ptr %35, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %36(ptr noundef nonnull align 8 dereferenceable(1176) %12, ptr noundef nonnull align 8 dereferenceable(24) %33, ptr noundef @.str.728, ptr noundef @.str.729, ptr noundef @.str.2)
  br label %37

37:                                               ; preds = %32, %27, %22
  %38 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %12, ptr noundef nonnull align 8 dereferenceable(24) %38, i32 noundef 14, i32 noundef 0, ptr noundef @.str.730, ptr noundef @.str.729)
  br label %39

39:                                               ; preds = %37, %19, %3
  %40 = load ptr, ptr %6, align 8, !tbaa !5
  %41 = call noundef zeroext i1 @_ZNK7glslang10TQualifier12hasComponentEv(ptr noundef nonnull align 8 dereferenceable(72) %40)
  br i1 %41, label %42, label %50

42:                                               ; preds = %39
  %43 = load ptr, ptr %6, align 8, !tbaa !5
  %44 = call noundef zeroext i1 @_ZNK7glslang10TQualifier11hasLocationEv(ptr noundef nonnull align 8 dereferenceable(72) %43)
  br i1 %44, label %50, label %45

45:                                               ; preds = %42
  %46 = load ptr, ptr %5, align 8, !tbaa !5
  %47 = load ptr, ptr %12, align 8, !tbaa !33
  %48 = getelementptr inbounds ptr, ptr %47, i64 42
  %49 = load ptr, ptr %48, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %49(ptr noundef nonnull align 8 dereferenceable(1176) %12, ptr noundef nonnull align 8 dereferenceable(24) %46, ptr noundef @.str.731, ptr noundef @.str.630, ptr noundef @.str.2)
  br label %50

50:                                               ; preds = %45, %42, %39
  %51 = load ptr, ptr %6, align 8, !tbaa !5
  %52 = call noundef zeroext i1 @_ZNK7glslang10TQualifier14hasAnyLocationEv(ptr noundef nonnull align 8 dereferenceable(72) %51)
  br i1 %52, label %53, label %150

53:                                               ; preds = %50
  %54 = load ptr, ptr %6, align 8, !tbaa !5
  %55 = getelementptr inbounds %"class.glslang::TQualifier", ptr %54, i32 0, i32 1
  %56 = load i64, ptr %55, align 8
  %57 = and i64 %56, 63
  %58 = trunc i64 %57 to i32
  switch i32 %58, label %124 [
    i32 3, label %59
    i32 4, label %87
    i32 5, label %115
    i32 6, label %115
  ]

59:                                               ; preds = %53
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #5
  store ptr @.str.732, ptr %7, align 8, !tbaa !5
  %60 = call noundef zeroext i1 @_ZNK7glslang14TParseVersions11isEsProfileEv(ptr noundef nonnull align 8 dereferenceable(192) %12)
  br i1 %60, label %61, label %68

61:                                               ; preds = %59
  %62 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %12, i32 0, i32 4
  %63 = load i32, ptr %62, align 8, !tbaa !35
  %64 = icmp slt i32 %63, 310
  br i1 %64, label %65, label %68

65:                                               ; preds = %61
  %66 = load ptr, ptr %5, align 8, !tbaa !5
  %67 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions12requireStageERKNS_10TSourceLocE11EShLanguagePKc(ptr noundef nonnull align 8 dereferenceable(192) %12, ptr noundef nonnull align 8 dereferenceable(24) %66, i32 noundef 0, ptr noundef %67)
  br label %71

68:                                               ; preds = %61, %59
  %69 = load ptr, ptr %5, align 8, !tbaa !5
  %70 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions12requireStageERKNS_10TSourceLocE15EShLanguageMaskPKc(ptr noundef nonnull align 8 dereferenceable(192) %12, ptr noundef nonnull align 8 dereferenceable(24) %69, i32 noundef -33, ptr noundef %70)
  br label %71

71:                                               ; preds = %68, %65
  %72 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %12, i32 0, i32 5
  %73 = load i32, ptr %72, align 4, !tbaa !36
  %74 = icmp eq i32 %73, 0
  br i1 %74, label %75, label %81

75:                                               ; preds = %71
  call void @llvm.lifetime.start.p0(i64 16, ptr %8) #5
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %8, ptr align 16 @__const._ZN7glslang13TParseContext20layoutQualifierCheckERKNS_10TSourceLocERKNS_10TQualifierE.exts, i64 16, i1 false)
  %76 = load ptr, ptr %5, align 8, !tbaa !5
  %77 = getelementptr inbounds [2 x ptr], ptr %8, i64 0, i64 0
  %78 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiiPKPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %12, ptr noundef nonnull align 8 dereferenceable(24) %76, i32 noundef -9, i32 noundef 330, i32 noundef 2, ptr noundef %77, ptr noundef %78)
  %79 = load ptr, ptr %5, align 8, !tbaa !5
  %80 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %12, ptr noundef nonnull align 8 dereferenceable(24) %79, i32 noundef 8, i32 noundef 300, ptr noundef null, ptr noundef %80)
  call void @llvm.lifetime.end.p0(i64 16, ptr %8) #5
  br label %86

81:                                               ; preds = %71
  %82 = load ptr, ptr %5, align 8, !tbaa !5
  %83 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %12, ptr noundef nonnull align 8 dereferenceable(24) %82, i32 noundef -9, i32 noundef 410, ptr noundef @.str.468, ptr noundef %83)
  %84 = load ptr, ptr %5, align 8, !tbaa !5
  %85 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %12, ptr noundef nonnull align 8 dereferenceable(24) %84, i32 noundef 8, i32 noundef 310, ptr noundef null, ptr noundef %85)
  br label %86

86:                                               ; preds = %81, %75
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #5
  br label %125

87:                                               ; preds = %53
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #5
  store ptr @.str.733, ptr %9, align 8, !tbaa !5
  %88 = call noundef zeroext i1 @_ZNK7glslang14TParseVersions11isEsProfileEv(ptr noundef nonnull align 8 dereferenceable(192) %12)
  br i1 %88, label %89, label %96

89:                                               ; preds = %87
  %90 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %12, i32 0, i32 4
  %91 = load i32, ptr %90, align 8, !tbaa !35
  %92 = icmp slt i32 %91, 310
  br i1 %92, label %93, label %96

93:                                               ; preds = %89
  %94 = load ptr, ptr %5, align 8, !tbaa !5
  %95 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions12requireStageERKNS_10TSourceLocE11EShLanguagePKc(ptr noundef nonnull align 8 dereferenceable(192) %12, ptr noundef nonnull align 8 dereferenceable(24) %94, i32 noundef 4, ptr noundef %95)
  br label %99

96:                                               ; preds = %89, %87
  %97 = load ptr, ptr %5, align 8, !tbaa !5
  %98 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions12requireStageERKNS_10TSourceLocE15EShLanguageMaskPKc(ptr noundef nonnull align 8 dereferenceable(192) %12, ptr noundef nonnull align 8 dereferenceable(24) %97, i32 noundef -33, ptr noundef %98)
  br label %99

99:                                               ; preds = %96, %93
  %100 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %12, i32 0, i32 5
  %101 = load i32, ptr %100, align 4, !tbaa !36
  %102 = icmp eq i32 %101, 4
  br i1 %102, label %103, label %109

103:                                              ; preds = %99
  call void @llvm.lifetime.start.p0(i64 16, ptr %10) #5
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %10, ptr align 16 @__const._ZN7glslang13TParseContext20layoutQualifierCheckERKNS_10TSourceLocERKNS_10TQualifierE.exts.734, i64 16, i1 false)
  %104 = load ptr, ptr %5, align 8, !tbaa !5
  %105 = getelementptr inbounds [2 x ptr], ptr %10, i64 0, i64 0
  %106 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiiPKPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %12, ptr noundef nonnull align 8 dereferenceable(24) %104, i32 noundef -9, i32 noundef 330, i32 noundef 2, ptr noundef %105, ptr noundef %106)
  %107 = load ptr, ptr %5, align 8, !tbaa !5
  %108 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %12, ptr noundef nonnull align 8 dereferenceable(24) %107, i32 noundef 8, i32 noundef 300, ptr noundef null, ptr noundef %108)
  call void @llvm.lifetime.end.p0(i64 16, ptr %10) #5
  br label %114

109:                                              ; preds = %99
  %110 = load ptr, ptr %5, align 8, !tbaa !5
  %111 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %12, ptr noundef nonnull align 8 dereferenceable(24) %110, i32 noundef -9, i32 noundef 410, ptr noundef @.str.468, ptr noundef %111)
  %112 = load ptr, ptr %5, align 8, !tbaa !5
  %113 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %12, ptr noundef nonnull align 8 dereferenceable(24) %112, i32 noundef 8, i32 noundef 310, ptr noundef null, ptr noundef %113)
  br label %114

114:                                              ; preds = %109, %103
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #5
  br label %125

115:                                              ; preds = %53, %53
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #5
  store ptr @.str.735, ptr %11, align 8, !tbaa !5
  %116 = load ptr, ptr %5, align 8, !tbaa !5
  %117 = load ptr, ptr %11, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions14requireProfileERKNS_10TSourceLocEiPKc(ptr noundef nonnull align 8 dereferenceable(192) %12, ptr noundef nonnull align 8 dereferenceable(24) %116, i32 noundef 15, ptr noundef %117)
  %118 = load ptr, ptr %5, align 8, !tbaa !5
  %119 = load ptr, ptr %11, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %12, ptr noundef nonnull align 8 dereferenceable(24) %118, i32 noundef -9, i32 noundef 330, ptr noundef @.str.619, ptr noundef %119)
  %120 = load ptr, ptr %5, align 8, !tbaa !5
  %121 = load ptr, ptr %11, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %12, ptr noundef nonnull align 8 dereferenceable(24) %120, i32 noundef -9, i32 noundef 430, ptr noundef @.str.736, ptr noundef %121)
  %122 = load ptr, ptr %5, align 8, !tbaa !5
  %123 = load ptr, ptr %11, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %12, ptr noundef nonnull align 8 dereferenceable(24) %122, i32 noundef 8, i32 noundef 310, ptr noundef null, ptr noundef %123)
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #5
  br label %125

124:                                              ; preds = %53
  br label %125

125:                                              ; preds = %124, %115, %114, %86
  %126 = load ptr, ptr %6, align 8, !tbaa !5
  %127 = call noundef zeroext i1 @_ZNK7glslang10TQualifier8hasIndexEv(ptr noundef nonnull align 8 dereferenceable(72) %126)
  br i1 %127, label %128, label %149

128:                                              ; preds = %125
  %129 = load ptr, ptr %6, align 8, !tbaa !5
  %130 = getelementptr inbounds %"class.glslang::TQualifier", ptr %129, i32 0, i32 1
  %131 = load i64, ptr %130, align 8
  %132 = and i64 %131, 63
  %133 = trunc i64 %132 to i32
  %134 = icmp ne i32 %133, 4
  br i1 %134, label %135, label %140

135:                                              ; preds = %128
  %136 = load ptr, ptr %5, align 8, !tbaa !5
  %137 = load ptr, ptr %12, align 8, !tbaa !33
  %138 = getelementptr inbounds ptr, ptr %137, i64 42
  %139 = load ptr, ptr %138, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %139(ptr noundef nonnull align 8 dereferenceable(1176) %12, ptr noundef nonnull align 8 dereferenceable(24) %136, ptr noundef @.str.737, ptr noundef @.str.655, ptr noundef @.str.2)
  br label %140

140:                                              ; preds = %135, %128
  %141 = load ptr, ptr %6, align 8, !tbaa !5
  %142 = call noundef zeroext i1 @_ZNK7glslang10TQualifier11hasLocationEv(ptr noundef nonnull align 8 dereferenceable(72) %141)
  br i1 %142, label %148, label %143

143:                                              ; preds = %140
  %144 = load ptr, ptr %5, align 8, !tbaa !5
  %145 = load ptr, ptr %12, align 8, !tbaa !33
  %146 = getelementptr inbounds ptr, ptr %145, i64 42
  %147 = load ptr, ptr %146, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %147(ptr noundef nonnull align 8 dereferenceable(1176) %12, ptr noundef nonnull align 8 dereferenceable(24) %144, ptr noundef @.str.738, ptr noundef @.str.655, ptr noundef @.str.2)
  br label %148

148:                                              ; preds = %143, %140
  br label %149

149:                                              ; preds = %148, %125
  br label %150

150:                                              ; preds = %149, %50
  %151 = load ptr, ptr %6, align 8, !tbaa !5
  %152 = call noundef zeroext i1 @_ZNK7glslang10TQualifier10hasBindingEv(ptr noundef nonnull align 8 dereferenceable(72) %151)
  br i1 %152, label %153, label %165

153:                                              ; preds = %150
  %154 = load ptr, ptr %6, align 8, !tbaa !5
  %155 = call noundef zeroext i1 @_ZNK7glslang10TQualifier17isUniformOrBufferEv(ptr noundef nonnull align 8 dereferenceable(72) %154)
  br i1 %155, label %164, label %156

156:                                              ; preds = %153
  %157 = load ptr, ptr %6, align 8, !tbaa !5
  %158 = call noundef zeroext i1 @_ZNK7glslang10TQualifier12isTaskMemoryEv(ptr noundef nonnull align 8 dereferenceable(72) %157)
  br i1 %158, label %164, label %159

159:                                              ; preds = %156
  %160 = load ptr, ptr %5, align 8, !tbaa !5
  %161 = load ptr, ptr %12, align 8, !tbaa !33
  %162 = getelementptr inbounds ptr, ptr %161, i64 42
  %163 = load ptr, ptr %162, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %163(ptr noundef nonnull align 8 dereferenceable(1176) %12, ptr noundef nonnull align 8 dereferenceable(24) %160, ptr noundef @.str.739, ptr noundef @.str.625, ptr noundef @.str.2)
  br label %164

164:                                              ; preds = %159, %156, %153
  br label %165

165:                                              ; preds = %164, %150
  %166 = load ptr, ptr %6, align 8, !tbaa !5
  %167 = call noundef zeroext i1 @_ZNK7glslang10TQualifier9hasStreamEv(ptr noundef nonnull align 8 dereferenceable(72) %166)
  br i1 %167, label %168, label %177

168:                                              ; preds = %165
  %169 = load ptr, ptr %6, align 8, !tbaa !5
  %170 = call noundef zeroext i1 @_ZNK7glslang10TQualifier12isPipeOutputEv(ptr noundef nonnull align 8 dereferenceable(72) %169)
  br i1 %170, label %176, label %171

171:                                              ; preds = %168
  %172 = load ptr, ptr %5, align 8, !tbaa !5
  %173 = load ptr, ptr %12, align 8, !tbaa !33
  %174 = getelementptr inbounds ptr, ptr %173, i64 42
  %175 = load ptr, ptr %174, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %175(ptr noundef nonnull align 8 dereferenceable(1176) %12, ptr noundef nonnull align 8 dereferenceable(24) %172, ptr noundef @.str.737, ptr noundef @.str.653, ptr noundef @.str.2)
  br label %176

176:                                              ; preds = %171, %168
  br label %177

177:                                              ; preds = %176, %165
  %178 = load ptr, ptr %6, align 8, !tbaa !5
  %179 = call noundef zeroext i1 @_ZNK7glslang10TQualifier6hasXfbEv(ptr noundef nonnull align 8 dereferenceable(72) %178)
  br i1 %179, label %180, label %189

180:                                              ; preds = %177
  %181 = load ptr, ptr %6, align 8, !tbaa !5
  %182 = call noundef zeroext i1 @_ZNK7glslang10TQualifier12isPipeOutputEv(ptr noundef nonnull align 8 dereferenceable(72) %181)
  br i1 %182, label %188, label %183

183:                                              ; preds = %180
  %184 = load ptr, ptr %5, align 8, !tbaa !5
  %185 = load ptr, ptr %12, align 8, !tbaa !33
  %186 = getelementptr inbounds ptr, ptr %185, i64 42
  %187 = load ptr, ptr %186, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %187(ptr noundef nonnull align 8 dereferenceable(1176) %12, ptr noundef nonnull align 8 dereferenceable(24) %184, ptr noundef @.str.737, ptr noundef @.str.740, ptr noundef @.str.2)
  br label %188

188:                                              ; preds = %183, %180
  br label %189

189:                                              ; preds = %188, %177
  %190 = load ptr, ptr %6, align 8, !tbaa !5
  %191 = call noundef zeroext i1 @_ZNK7glslang10TQualifier16hasUniformLayoutEv(ptr noundef nonnull align 8 dereferenceable(72) %190)
  br i1 %191, label %192, label %226

192:                                              ; preds = %189
  %193 = load ptr, ptr %6, align 8, !tbaa !5
  %194 = getelementptr inbounds %"class.glslang::TQualifier", ptr %193, i32 0, i32 1
  %195 = load i64, ptr %194, align 8
  %196 = and i64 %195, 63
  %197 = trunc i64 %196 to i32
  %198 = call noundef zeroext i1 @_ZN7glslangL27storageCanHaveLayoutInBlockENS_17TStorageQualifierE(i32 noundef %197)
  br i1 %198, label %225, label %199

199:                                              ; preds = %192
  %200 = load ptr, ptr %6, align 8, !tbaa !5
  %201 = call noundef zeroext i1 @_ZNK7glslang10TQualifier12isTaskMemoryEv(ptr noundef nonnull align 8 dereferenceable(72) %200)
  br i1 %201, label %225, label %202

202:                                              ; preds = %199
  %203 = load ptr, ptr %6, align 8, !tbaa !5
  %204 = call noundef zeroext i1 @_ZNK7glslang10TQualifier9hasMatrixEv(ptr noundef nonnull align 8 dereferenceable(72) %203)
  br i1 %204, label %208, label %205

205:                                              ; preds = %202
  %206 = load ptr, ptr %6, align 8, !tbaa !5
  %207 = call noundef zeroext i1 @_ZNK7glslang10TQualifier10hasPackingEv(ptr noundef nonnull align 8 dereferenceable(72) %206)
  br i1 %207, label %208, label %213

208:                                              ; preds = %205, %202
  %209 = load ptr, ptr %5, align 8, !tbaa !5
  %210 = load ptr, ptr %12, align 8, !tbaa !33
  %211 = getelementptr inbounds ptr, ptr %210, i64 42
  %212 = load ptr, ptr %211, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %212(ptr noundef nonnull align 8 dereferenceable(1176) %12, ptr noundef nonnull align 8 dereferenceable(24) %209, ptr noundef @.str.741, ptr noundef @.str.676, ptr noundef @.str.2)
  br label %213

213:                                              ; preds = %208, %205
  %214 = load ptr, ptr %6, align 8, !tbaa !5
  %215 = call noundef zeroext i1 @_ZNK7glslang10TQualifier9hasOffsetEv(ptr noundef nonnull align 8 dereferenceable(72) %214)
  br i1 %215, label %219, label %216

216:                                              ; preds = %213
  %217 = load ptr, ptr %6, align 8, !tbaa !5
  %218 = call noundef zeroext i1 @_ZNK7glslang10TQualifier8hasAlignEv(ptr noundef nonnull align 8 dereferenceable(72) %217)
  br i1 %218, label %219, label %224

219:                                              ; preds = %216, %213
  %220 = load ptr, ptr %5, align 8, !tbaa !5
  %221 = load ptr, ptr %12, align 8, !tbaa !33
  %222 = getelementptr inbounds ptr, ptr %221, i64 42
  %223 = load ptr, ptr %222, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %223(ptr noundef nonnull align 8 dereferenceable(1176) %12, ptr noundef nonnull align 8 dereferenceable(24) %220, ptr noundef @.str.742, ptr noundef @.str.676, ptr noundef @.str.2)
  br label %224

224:                                              ; preds = %219, %216
  br label %225

225:                                              ; preds = %224, %199, %192
  br label %226

226:                                              ; preds = %225, %189
  %227 = load ptr, ptr %6, align 8, !tbaa !5
  %228 = call noundef zeroext i1 @_ZNK7glslang10TQualifier14isPushConstantEv(ptr noundef nonnull align 8 dereferenceable(72) %227)
  br i1 %228, label %229, label %258

229:                                              ; preds = %226
  %230 = load ptr, ptr %6, align 8, !tbaa !5
  %231 = getelementptr inbounds %"class.glslang::TQualifier", ptr %230, i32 0, i32 1
  %232 = load i64, ptr %231, align 8
  %233 = and i64 %232, 63
  %234 = trunc i64 %233 to i32
  %235 = icmp ne i32 %234, 5
  br i1 %235, label %236, label %241

236:                                              ; preds = %229
  %237 = load ptr, ptr %5, align 8, !tbaa !5
  %238 = load ptr, ptr %12, align 8, !tbaa !33
  %239 = getelementptr inbounds ptr, ptr %238, i64 42
  %240 = load ptr, ptr %239, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %240(ptr noundef nonnull align 8 dereferenceable(1176) %12, ptr noundef nonnull align 8 dereferenceable(24) %237, ptr noundef @.str.743, ptr noundef @.str.576, ptr noundef @.str.2)
  br label %241

241:                                              ; preds = %236, %229
  %242 = load ptr, ptr %6, align 8, !tbaa !5
  %243 = call noundef zeroext i1 @_ZNK7glslang10TQualifier6hasSetEv(ptr noundef nonnull align 8 dereferenceable(72) %242)
  br i1 %243, label %244, label %249

244:                                              ; preds = %241
  %245 = load ptr, ptr %5, align 8, !tbaa !5
  %246 = load ptr, ptr %12, align 8, !tbaa !33
  %247 = getelementptr inbounds ptr, ptr %246, i64 42
  %248 = load ptr, ptr %247, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %248(ptr noundef nonnull align 8 dereferenceable(1176) %12, ptr noundef nonnull align 8 dereferenceable(24) %245, ptr noundef @.str.744, ptr noundef @.str.622, ptr noundef @.str.2)
  br label %249

249:                                              ; preds = %244, %241
  %250 = load ptr, ptr %6, align 8, !tbaa !5
  %251 = call noundef zeroext i1 @_ZNK7glslang10TQualifier10hasBindingEv(ptr noundef nonnull align 8 dereferenceable(72) %250)
  br i1 %251, label %252, label %257

252:                                              ; preds = %249
  %253 = load ptr, ptr %5, align 8, !tbaa !5
  %254 = load ptr, ptr %12, align 8, !tbaa !33
  %255 = getelementptr inbounds ptr, ptr %254, i64 42
  %256 = load ptr, ptr %255, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %256(ptr noundef nonnull align 8 dereferenceable(1176) %12, ptr noundef nonnull align 8 dereferenceable(24) %253, ptr noundef @.str.744, ptr noundef @.str.625, ptr noundef @.str.2)
  br label %257

257:                                              ; preds = %252, %249
  br label %258

258:                                              ; preds = %257, %226
  %259 = load ptr, ptr %6, align 8, !tbaa !5
  %260 = call noundef zeroext i1 @_ZNK7glslang10TQualifier18hasBufferReferenceEv(ptr noundef nonnull align 8 dereferenceable(72) %259)
  br i1 %260, label %261, label %274

261:                                              ; preds = %258
  %262 = load ptr, ptr %6, align 8, !tbaa !5
  %263 = getelementptr inbounds %"class.glslang::TQualifier", ptr %262, i32 0, i32 1
  %264 = load i64, ptr %263, align 8
  %265 = and i64 %264, 63
  %266 = trunc i64 %265 to i32
  %267 = icmp ne i32 %266, 6
  br i1 %267, label %268, label %273

268:                                              ; preds = %261
  %269 = load ptr, ptr %5, align 8, !tbaa !5
  %270 = load ptr, ptr %12, align 8, !tbaa !33
  %271 = getelementptr inbounds ptr, ptr %270, i64 42
  %272 = load ptr, ptr %271, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %272(ptr noundef nonnull align 8 dereferenceable(1176) %12, ptr noundef nonnull align 8 dereferenceable(24) %269, ptr noundef @.str.745, ptr noundef @.str.577, ptr noundef @.str.2)
  br label %273

273:                                              ; preds = %268, %261
  br label %274

274:                                              ; preds = %273, %258
  %275 = load ptr, ptr %6, align 8, !tbaa !5
  %276 = call noundef zeroext i1 @_ZNK7glslang10TQualifier14isShaderRecordEv(ptr noundef nonnull align 8 dereferenceable(72) %275)
  br i1 %276, label %277, label %306

277:                                              ; preds = %274
  %278 = load ptr, ptr %6, align 8, !tbaa !5
  %279 = getelementptr inbounds %"class.glslang::TQualifier", ptr %278, i32 0, i32 1
  %280 = load i64, ptr %279, align 8
  %281 = and i64 %280, 63
  %282 = trunc i64 %281 to i32
  %283 = icmp ne i32 %282, 6
  br i1 %283, label %284, label %289

284:                                              ; preds = %277
  %285 = load ptr, ptr %5, align 8, !tbaa !5
  %286 = load ptr, ptr %12, align 8, !tbaa !33
  %287 = getelementptr inbounds ptr, ptr %286, i64 42
  %288 = load ptr, ptr %287, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %288(ptr noundef nonnull align 8 dereferenceable(1176) %12, ptr noundef nonnull align 8 dereferenceable(24) %285, ptr noundef @.str.746, ptr noundef @.str.681, ptr noundef @.str.2)
  br label %289

289:                                              ; preds = %284, %277
  %290 = load ptr, ptr %6, align 8, !tbaa !5
  %291 = call noundef zeroext i1 @_ZNK7glslang10TQualifier10hasBindingEv(ptr noundef nonnull align 8 dereferenceable(72) %290)
  br i1 %291, label %292, label %297

292:                                              ; preds = %289
  %293 = load ptr, ptr %5, align 8, !tbaa !5
  %294 = load ptr, ptr %12, align 8, !tbaa !33
  %295 = getelementptr inbounds ptr, ptr %294, i64 42
  %296 = load ptr, ptr %295, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %296(ptr noundef nonnull align 8 dereferenceable(1176) %12, ptr noundef nonnull align 8 dereferenceable(24) %293, ptr noundef @.str.747, ptr noundef @.str.625, ptr noundef @.str.2)
  br label %297

297:                                              ; preds = %292, %289
  %298 = load ptr, ptr %6, align 8, !tbaa !5
  %299 = call noundef zeroext i1 @_ZNK7glslang10TQualifier6hasSetEv(ptr noundef nonnull align 8 dereferenceable(72) %298)
  br i1 %299, label %300, label %305

300:                                              ; preds = %297
  %301 = load ptr, ptr %5, align 8, !tbaa !5
  %302 = load ptr, ptr %12, align 8, !tbaa !33
  %303 = getelementptr inbounds ptr, ptr %302, i64 42
  %304 = load ptr, ptr %303, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %304(ptr noundef nonnull align 8 dereferenceable(1176) %12, ptr noundef nonnull align 8 dereferenceable(24) %301, ptr noundef @.str.747, ptr noundef @.str.622, ptr noundef @.str.2)
  br label %305

305:                                              ; preds = %300, %297
  br label %306

306:                                              ; preds = %305, %274
  %307 = load ptr, ptr %6, align 8, !tbaa !5
  %308 = getelementptr inbounds %"class.glslang::TQualifier", ptr %307, i32 0, i32 1
  %309 = load i64, ptr %308, align 8
  %310 = and i64 %309, 63
  %311 = trunc i64 %310 to i32
  %312 = icmp eq i32 %311, 11
  br i1 %312, label %313, label %321

313:                                              ; preds = %306
  %314 = load ptr, ptr %6, align 8, !tbaa !5
  %315 = call noundef zeroext i1 @_ZNK7glslang10TQualifier9hasLayoutEv(ptr noundef nonnull align 8 dereferenceable(72) %314)
  br i1 %315, label %316, label %321

316:                                              ; preds = %313
  %317 = load ptr, ptr %5, align 8, !tbaa !5
  %318 = load ptr, ptr %12, align 8, !tbaa !33
  %319 = getelementptr inbounds ptr, ptr %318, i64 42
  %320 = load ptr, ptr %319, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %320(ptr noundef nonnull align 8 dereferenceable(1176) %12, ptr noundef nonnull align 8 dereferenceable(24) %317, ptr noundef @.str.748, ptr noundef @.str.749, ptr noundef @.str.2)
  br label %321

321:                                              ; preds = %316, %313, %306
  ret void
}

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

declare void @_ZN7glslang14TParseVersions12requireStageERKNS_10TSourceLocE11EShLanguagePKc(ptr noundef nonnull align 8 dereferenceable(192), ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, ptr noundef) #3

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZN7glslangL27storageCanHaveLayoutInBlockENS_17TStorageQualifierE(i32 noundef) #0

attributes #0 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { 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, !13, i64 32}
!10 = !{!"_ZTSN7glslang14TParseVersionsE", !11, i64 8, !12, i64 12, !6, i64 16, !13, i64 24, !14, i64 28, !15, i64 32, !6, i64 56, !16, i64 64, !27, i64 120, !32, i64 176, !13, i64 180, !6, i64 184}
!11 = !{!"bool", !7, i64 0}
!12 = !{!"_ZTS8EProfile", !7, i64 0}
!13 = !{!"int", !7, i64 0}
!14 = !{!"_ZTS11EShLanguage", !7, i64 0}
!15 = !{!"_ZTSN7glslang10SpvVersionE", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !11, i64 16}
!16 = !{!"_ZTSN7glslang4TMapINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_18TExtensionBehaviorESt4lessIS7_EEE", !17, i64 0}
!17 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS4_18TExtensionBehaviorESt4lessIS7_ENS5_ISt4pairIKS7_S8_EEEE", !18, i64 0}
!18 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEESt4pairIKS7_NS4_18TExtensionBehaviorEESt10_Select1stISB_ESt4lessIS7_ENS5_ISB_EEE", !19, i64 0}
!19 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEESt4pairIKS7_NS4_18TExtensionBehaviorEESt10_Select1stISB_ESt4lessIS7_ENS5_ISB_EEE13_Rb_tree_implISF_Lb1EEE", !20, i64 0, !21, i64 8, !23, i64 16}
!20 = !{!"_ZTSN7glslang14pool_allocatorISt13_Rb_tree_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS0_IcEEEENS_18TExtensionBehaviorEEEEE", !6, i64 0}
!21 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEEEE", !22, i64 0}
!22 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEEE"}
!23 = !{!"_ZTSSt15_Rb_tree_header", !24, i64 0, !26, i64 32}
!24 = !{!"_ZTSSt18_Rb_tree_node_base", !25, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!25 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!26 = !{!"long", !7, i64 0}
!27 = !{!"_ZTSN7glslang4TMapINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEEjSt4lessIS7_EEE", !28, i64 0}
!28 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEEjSt4lessIS7_ENS5_ISt4pairIKS7_jEEEE", !29, i64 0}
!29 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEESt4pairIKS7_jESt10_Select1stISA_ESt4lessIS7_ENS5_ISA_EEE", !30, i64 0}
!30 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEESt4pairIKS7_jESt10_Select1stISA_ESt4lessIS7_ENS5_ISA_EEE13_Rb_tree_implISE_Lb1EEE", !31, i64 0, !21, i64 8, !23, i64 16}
!31 = !{!"_ZTSN7glslang14pool_allocatorISt13_Rb_tree_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS0_IcEEEEjEEEE", !6, i64 0}
!32 = !{!"_ZTS11EShMessages", !7, i64 0}
!33 = !{!34, !34, i64 0}
!34 = !{!"vtable pointer", !8, i64 0}
!35 = !{!10, !13, i64 24}
!36 = !{!10, !14, i64 28}


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

@.str.2 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.468 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.576 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.577 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.619 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.622 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.625 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.630 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.653 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.655 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.676 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.681 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.728 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.729 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.730 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.731 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.732 = external hidden unnamed_addr constant [28 x i8], align 1
@__const._ZN7glslang13TParseContext20layoutQualifierCheckERKNS_10TSourceLocERKNS_10TQualifierE.exts = external hidden unnamed_addr constant [2 x ptr], align 16
@.str.733 = external hidden unnamed_addr constant [29 x i8], align 1
@__const._ZN7glslang13TParseContext20layoutQualifierCheckERKNS_10TSourceLocERKNS_10TQualifierE.exts.734 = external hidden unnamed_addr constant [2 x ptr], align 16
@.str.735 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.736 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.737 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.738 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.739 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.740 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.741 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.742 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.743 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.744 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.745 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.746 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.747 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.748 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.749 = external hidden unnamed_addr constant [15 x i8], align 1

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

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

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

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #2

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

declare void @_ZN7glslang14TParseVersions14requireProfileERKNS_10TSourceLocEiPKc(ptr noundef nonnull align 8 dereferenceable(192), ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, ptr noundef) local_unnamed_addr #3

declare void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiiPKPKcS5_(ptr noundef nonnull align 8 dereferenceable(192), ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, i32 noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

declare void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192), ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

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

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

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

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

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

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

declare void @_ZN7glslang14TParseVersions12requireStageERKNS_10TSourceLocE15EShLanguageMaskPKc(ptr noundef nonnull align 8 dereferenceable(192), ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, ptr noundef) local_unnamed_addr #3

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7glslang13TParseContext20layoutQualifierCheckERKNS_10TSourceLocERKNS_10TQualifierE(ptr noundef nonnull align 8 dereferenceable(24912) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(72) %2) local_unnamed_addr #4 align 2 {
  %4 = alloca [2 x ptr], align 16
  %5 = alloca [2 x ptr], align 16
  %6 = getelementptr inbounds i8, ptr %2, i64 8
  %7 = load i64, ptr %6, align 8
  %8 = and i64 %7, 63
  %9 = icmp eq i64 %8, 7
  br i1 %9, label %10, label %21

10:                                               ; preds = %3
  %11 = tail call noundef zeroext i1 @_ZNK7glslang10TQualifier9hasLayoutEv(ptr noundef nonnull align 8 dereferenceable(72) %2)
  br i1 %11, label %12, label %21

12:                                               ; preds = %10
  %13 = getelementptr inbounds i8, ptr %0, i64 32
  %14 = load i32, ptr %13, align 8, !tbaa !5
  %15 = add i32 %14, -1
  %or.cond = icmp ult i32 %15, 66559
  br i1 %or.cond, label %16, label %20

16:                                               ; preds = %12
  %17 = load ptr, ptr %0, align 8, !tbaa !32
  %18 = getelementptr inbounds i8, ptr %17, i64 336
  %19 = load ptr, ptr %18, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %19(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.728, ptr noundef nonnull @.str.729, ptr noundef nonnull @.str.2)
  br label %20

20:                                               ; preds = %16, %12
  tail call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 14, i32 noundef 0, ptr noundef nonnull @.str.730, ptr noundef nonnull @.str.729)
  br label %21

21:                                               ; preds = %20, %10, %3
  %22 = tail call noundef zeroext i1 @_ZNK7glslang10TQualifier12hasComponentEv(ptr noundef nonnull align 8 dereferenceable(72) %2)
  br i1 %22, label %23, label %29

23:                                               ; preds = %21
  %24 = tail call noundef zeroext i1 @_ZNK7glslang10TQualifier11hasLocationEv(ptr noundef nonnull align 8 dereferenceable(72) %2)
  br i1 %24, label %29, label %25

25:                                               ; preds = %23
  %26 = load ptr, ptr %0, align 8, !tbaa !32
  %27 = getelementptr inbounds i8, ptr %26, i64 336
  %28 = load ptr, ptr %27, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %28(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.731, ptr noundef nonnull @.str.630, ptr noundef nonnull @.str.2)
  br label %29

29:                                               ; preds = %25, %23, %21
  %30 = tail call noundef zeroext i1 @_ZNK7glslang10TQualifier14hasAnyLocationEv(ptr noundef nonnull align 8 dereferenceable(72) %2)
  br i1 %30, label %31, label %77

31:                                               ; preds = %29
  %32 = load i64, ptr %6, align 8
  %33 = trunc i64 %32 to i32
  %34 = and i32 %33, 63
  switch i32 %34, label %62 [
    i32 3, label %35
    i32 4, label %48
    i32 5, label %61
    i32 6, label %61
  ]

35:                                               ; preds = %31
  %36 = tail call noundef zeroext i1 @_ZNK7glslang14TParseVersions11isEsProfileEv(ptr noundef nonnull align 8 dereferenceable(192) %0)
  %37 = getelementptr inbounds i8, ptr %0, i64 24
  %38 = load i32, ptr %37, align 8
  %39 = icmp slt i32 %38, 310
  %or.cond92 = select i1 %36, i1 %39, i1 false
  br i1 %or.cond92, label %40, label %41

40:                                               ; preds = %35
  tail call void @_ZN7glslang14TParseVersions12requireStageERKNS_10TSourceLocE11EShLanguagePKc(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 0, ptr noundef nonnull @.str.732)
  br label %42

41:                                               ; preds = %35
  tail call void @_ZN7glslang14TParseVersions12requireStageERKNS_10TSourceLocE15EShLanguageMaskPKc(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef -33, ptr noundef nonnull @.str.732)
  br label %42

42:                                               ; preds = %41, %40
  %43 = getelementptr inbounds i8, ptr %0, i64 28
  %44 = load i32, ptr %43, align 4, !tbaa !34
  %45 = icmp eq i32 %44, 0
  br i1 %45, label %46, label %47

46:                                               ; preds = %42
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #5
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %4, ptr noundef nonnull align 16 dereferenceable(16) @__const._ZN7glslang13TParseContext20layoutQualifierCheckERKNS_10TSourceLocERKNS_10TQualifierE.exts, i64 16, i1 false)
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiiPKPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef -9, i32 noundef 330, i32 noundef 2, ptr noundef nonnull %4, ptr noundef nonnull @.str.732)
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 8, i32 noundef 300, ptr noundef null, ptr noundef nonnull @.str.732)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #5
  br label %62

47:                                               ; preds = %42
  tail call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef -9, i32 noundef 410, ptr noundef nonnull @.str.468, ptr noundef nonnull @.str.732)
  tail call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 8, i32 noundef 310, ptr noundef null, ptr noundef nonnull @.str.732)
  br label %62

48:                                               ; preds = %31
  %49 = tail call noundef zeroext i1 @_ZNK7glslang14TParseVersions11isEsProfileEv(ptr noundef nonnull align 8 dereferenceable(192) %0)
  %50 = getelementptr inbounds i8, ptr %0, i64 24
  %51 = load i32, ptr %50, align 8
  %52 = icmp slt i32 %51, 310
  %or.cond95 = select i1 %49, i1 %52, i1 false
  br i1 %or.cond95, label %53, label %54

53:                                               ; preds = %48
  tail call void @_ZN7glslang14TParseVersions12requireStageERKNS_10TSourceLocE11EShLanguagePKc(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 4, ptr noundef nonnull @.str.733)
  br label %55

54:                                               ; preds = %48
  tail call void @_ZN7glslang14TParseVersions12requireStageERKNS_10TSourceLocE15EShLanguageMaskPKc(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef -33, ptr noundef nonnull @.str.733)
  br label %55

55:                                               ; preds = %54, %53
  %56 = getelementptr inbounds i8, ptr %0, i64 28
  %57 = load i32, ptr %56, align 4, !tbaa !34
  %58 = icmp eq i32 %57, 4
  br i1 %58, label %59, label %60

59:                                               ; preds = %55
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #5
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %5, ptr noundef nonnull align 16 dereferenceable(16) @__const._ZN7glslang13TParseContext20layoutQualifierCheckERKNS_10TSourceLocERKNS_10TQualifierE.exts.734, i64 16, i1 false)
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiiPKPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef -9, i32 noundef 330, i32 noundef 2, ptr noundef nonnull %5, ptr noundef nonnull @.str.733)
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 8, i32 noundef 300, ptr noundef null, ptr noundef nonnull @.str.733)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #5
  br label %62

60:                                               ; preds = %55
  tail call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef -9, i32 noundef 410, ptr noundef nonnull @.str.468, ptr noundef nonnull @.str.733)
  tail call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 8, i32 noundef 310, ptr noundef null, ptr noundef nonnull @.str.733)
  br label %62

61:                                               ; preds = %31, %31
  tail call void @_ZN7glslang14TParseVersions14requireProfileERKNS_10TSourceLocEiPKc(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 15, ptr noundef nonnull @.str.735)
  tail call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef -9, i32 noundef 330, ptr noundef nonnull @.str.619, ptr noundef nonnull @.str.735)
  tail call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef -9, i32 noundef 430, ptr noundef nonnull @.str.736, ptr noundef nonnull @.str.735)
  tail call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 8, i32 noundef 310, ptr noundef null, ptr noundef nonnull @.str.735)
  br label %62

62:                                               ; preds = %59, %60, %46, %47, %31, %61
  %63 = call noundef zeroext i1 @_ZNK7glslang10TQualifier8hasIndexEv(ptr noundef nonnull align 8 dereferenceable(72) %2)
  br i1 %63, label %64, label %77

64:                                               ; preds = %62
  %65 = load i64, ptr %6, align 8
  %66 = and i64 %65, 63
  %.not86 = icmp eq i64 %66, 4
  br i1 %.not86, label %71, label %67

67:                                               ; preds = %64
  %68 = load ptr, ptr %0, align 8, !tbaa !32
  %69 = getelementptr inbounds i8, ptr %68, i64 336
  %70 = load ptr, ptr %69, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %70(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.737, ptr noundef nonnull @.str.655, ptr noundef nonnull @.str.2)
  br label %71

71:                                               ; preds = %67, %64
  %72 = call noundef zeroext i1 @_ZNK7glslang10TQualifier11hasLocationEv(ptr noundef nonnull align 8 dereferenceable(72) %2)
  br i1 %72, label %77, label %73

73:                                               ; preds = %71
  %74 = load ptr, ptr %0, align 8, !tbaa !32
  %75 = getelementptr inbounds i8, ptr %74, i64 336
  %76 = load ptr, ptr %75, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %76(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.738, ptr noundef nonnull @.str.655, ptr noundef nonnull @.str.2)
  br label %77

77:                                               ; preds = %62, %73, %71, %29
  %78 = call noundef zeroext i1 @_ZNK7glslang10TQualifier10hasBindingEv(ptr noundef nonnull align 8 dereferenceable(72) %2)
  br i1 %78, label %79, label %87

79:                                               ; preds = %77
  %80 = call noundef zeroext i1 @_ZNK7glslang10TQualifier17isUniformOrBufferEv(ptr noundef nonnull align 8 dereferenceable(72) %2)
  br i1 %80, label %87, label %81

81:                                               ; preds = %79
  %82 = call noundef zeroext i1 @_ZNK7glslang10TQualifier12isTaskMemoryEv(ptr noundef nonnull align 8 dereferenceable(72) %2)
  br i1 %82, label %87, label %83

83:                                               ; preds = %81
  %84 = load ptr, ptr %0, align 8, !tbaa !32
  %85 = getelementptr inbounds i8, ptr %84, i64 336
  %86 = load ptr, ptr %85, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %86(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.739, ptr noundef nonnull @.str.625, ptr noundef nonnull @.str.2)
  br label %87

87:                                               ; preds = %79, %81, %83, %77
  %88 = call noundef zeroext i1 @_ZNK7glslang10TQualifier9hasStreamEv(ptr noundef nonnull align 8 dereferenceable(72) %2)
  br i1 %88, label %89, label %95

89:                                               ; preds = %87
  %90 = call noundef zeroext i1 @_ZNK7glslang10TQualifier12isPipeOutputEv(ptr noundef nonnull align 8 dereferenceable(72) %2)
  br i1 %90, label %95, label %91

91:                                               ; preds = %89
  %92 = load ptr, ptr %0, align 8, !tbaa !32
  %93 = getelementptr inbounds i8, ptr %92, i64 336
  %94 = load ptr, ptr %93, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %94(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.737, ptr noundef nonnull @.str.653, ptr noundef nonnull @.str.2)
  br label %95

95:                                               ; preds = %89, %91, %87
  %96 = call noundef zeroext i1 @_ZNK7glslang10TQualifier6hasXfbEv(ptr noundef nonnull align 8 dereferenceable(72) %2)
  br i1 %96, label %97, label %103

97:                                               ; preds = %95
  %98 = call noundef zeroext i1 @_ZNK7glslang10TQualifier12isPipeOutputEv(ptr noundef nonnull align 8 dereferenceable(72) %2)
  br i1 %98, label %103, label %99

99:                                               ; preds = %97
  %100 = load ptr, ptr %0, align 8, !tbaa !32
  %101 = getelementptr inbounds i8, ptr %100, i64 336
  %102 = load ptr, ptr %101, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %102(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.737, ptr noundef nonnull @.str.740, ptr noundef nonnull @.str.2)
  br label %103

103:                                              ; preds = %97, %99, %95
  %104 = call noundef zeroext i1 @_ZNK7glslang10TQualifier16hasUniformLayoutEv(ptr noundef nonnull align 8 dereferenceable(72) %2)
  br i1 %104, label %105, label %128

105:                                              ; preds = %103
  %106 = load i64, ptr %6, align 8
  %107 = trunc i64 %106 to i32
  %108 = and i32 %107, 63
  %109 = call noundef zeroext i1 @_ZN7glslangL27storageCanHaveLayoutInBlockENS_17TStorageQualifierE(i32 noundef %108)
  br i1 %109, label %128, label %110

110:                                              ; preds = %105
  %111 = call noundef zeroext i1 @_ZNK7glslang10TQualifier12isTaskMemoryEv(ptr noundef nonnull align 8 dereferenceable(72) %2)
  br i1 %111, label %128, label %112

112:                                              ; preds = %110
  %113 = call noundef zeroext i1 @_ZNK7glslang10TQualifier9hasMatrixEv(ptr noundef nonnull align 8 dereferenceable(72) %2)
  br i1 %113, label %116, label %114

114:                                              ; preds = %112
  %115 = call noundef zeroext i1 @_ZNK7glslang10TQualifier10hasPackingEv(ptr noundef nonnull align 8 dereferenceable(72) %2)
  br i1 %115, label %116, label %120

116:                                              ; preds = %114, %112
  %117 = load ptr, ptr %0, align 8, !tbaa !32
  %118 = getelementptr inbounds i8, ptr %117, i64 336
  %119 = load ptr, ptr %118, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %119(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.741, ptr noundef nonnull @.str.676, ptr noundef nonnull @.str.2)
  br label %120

120:                                              ; preds = %116, %114
  %121 = call noundef zeroext i1 @_ZNK7glslang10TQualifier9hasOffsetEv(ptr noundef nonnull align 8 dereferenceable(72) %2)
  br i1 %121, label %124, label %122

122:                                              ; preds = %120
  %123 = call noundef zeroext i1 @_ZNK7glslang10TQualifier8hasAlignEv(ptr noundef nonnull align 8 dereferenceable(72) %2)
  br i1 %123, label %124, label %128

124:                                              ; preds = %122, %120
  %125 = load ptr, ptr %0, align 8, !tbaa !32
  %126 = getelementptr inbounds i8, ptr %125, i64 336
  %127 = load ptr, ptr %126, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %127(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.742, ptr noundef nonnull @.str.676, ptr noundef nonnull @.str.2)
  br label %128

128:                                              ; preds = %105, %110, %124, %122, %103
  %129 = call noundef zeroext i1 @_ZNK7glslang10TQualifier14isPushConstantEv(ptr noundef nonnull align 8 dereferenceable(72) %2)
  br i1 %129, label %130, label %149

130:                                              ; preds = %128
  %131 = load i64, ptr %6, align 8
  %132 = and i64 %131, 63
  %.not87 = icmp eq i64 %132, 5
  br i1 %.not87, label %137, label %133

133:                                              ; preds = %130
  %134 = load ptr, ptr %0, align 8, !tbaa !32
  %135 = getelementptr inbounds i8, ptr %134, i64 336
  %136 = load ptr, ptr %135, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %136(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.743, ptr noundef nonnull @.str.576, ptr noundef nonnull @.str.2)
  br label %137

137:                                              ; preds = %133, %130
  %138 = call noundef zeroext i1 @_ZNK7glslang10TQualifier6hasSetEv(ptr noundef nonnull align 8 dereferenceable(72) %2)
  br i1 %138, label %139, label %143

139:                                              ; preds = %137
  %140 = load ptr, ptr %0, align 8, !tbaa !32
  %141 = getelementptr inbounds i8, ptr %140, i64 336
  %142 = load ptr, ptr %141, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %142(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.744, ptr noundef nonnull @.str.622, ptr noundef nonnull @.str.2)
  br label %143

143:                                              ; preds = %139, %137
  %144 = call noundef zeroext i1 @_ZNK7glslang10TQualifier10hasBindingEv(ptr noundef nonnull align 8 dereferenceable(72) %2)
  br i1 %144, label %145, label %149

145:                                              ; preds = %143
  %146 = load ptr, ptr %0, align 8, !tbaa !32
  %147 = getelementptr inbounds i8, ptr %146, i64 336
  %148 = load ptr, ptr %147, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %148(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.744, ptr noundef nonnull @.str.625, ptr noundef nonnull @.str.2)
  br label %149

149:                                              ; preds = %143, %145, %128
  %150 = call noundef zeroext i1 @_ZNK7glslang10TQualifier18hasBufferReferenceEv(ptr noundef nonnull align 8 dereferenceable(72) %2)
  br i1 %150, label %151, label %158

151:                                              ; preds = %149
  %152 = load i64, ptr %6, align 8
  %153 = and i64 %152, 63
  %.not88 = icmp eq i64 %153, 6
  br i1 %.not88, label %158, label %154

154:                                              ; preds = %151
  %155 = load ptr, ptr %0, align 8, !tbaa !32
  %156 = getelementptr inbounds i8, ptr %155, i64 336
  %157 = load ptr, ptr %156, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %157(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.745, ptr noundef nonnull @.str.577, ptr noundef nonnull @.str.2)
  br label %158

158:                                              ; preds = %151, %154, %149
  %159 = call noundef zeroext i1 @_ZNK7glslang10TQualifier14isShaderRecordEv(ptr noundef nonnull align 8 dereferenceable(72) %2)
  br i1 %159, label %160, label %179

160:                                              ; preds = %158
  %161 = load i64, ptr %6, align 8
  %162 = and i64 %161, 63
  %.not89 = icmp eq i64 %162, 6
  br i1 %.not89, label %167, label %163

163:                                              ; preds = %160
  %164 = load ptr, ptr %0, align 8, !tbaa !32
  %165 = getelementptr inbounds i8, ptr %164, i64 336
  %166 = load ptr, ptr %165, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %166(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.746, ptr noundef nonnull @.str.681, ptr noundef nonnull @.str.2)
  br label %167

167:                                              ; preds = %163, %160
  %168 = call noundef zeroext i1 @_ZNK7glslang10TQualifier10hasBindingEv(ptr noundef nonnull align 8 dereferenceable(72) %2)
  br i1 %168, label %169, label %173

169:                                              ; preds = %167
  %170 = load ptr, ptr %0, align 8, !tbaa !32
  %171 = getelementptr inbounds i8, ptr %170, i64 336
  %172 = load ptr, ptr %171, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %172(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.747, ptr noundef nonnull @.str.625, ptr noundef nonnull @.str.2)
  br label %173

173:                                              ; preds = %169, %167
  %174 = call noundef zeroext i1 @_ZNK7glslang10TQualifier6hasSetEv(ptr noundef nonnull align 8 dereferenceable(72) %2)
  br i1 %174, label %175, label %179

175:                                              ; preds = %173
  %176 = load ptr, ptr %0, align 8, !tbaa !32
  %177 = getelementptr inbounds i8, ptr %176, i64 336
  %178 = load ptr, ptr %177, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %178(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.747, ptr noundef nonnull @.str.622, ptr noundef nonnull @.str.2)
  br label %179

179:                                              ; preds = %173, %175, %158
  %180 = load i64, ptr %6, align 8
  %181 = and i64 %180, 63
  %182 = icmp eq i64 %181, 11
  br i1 %182, label %183, label %189

183:                                              ; preds = %179
  %184 = call noundef zeroext i1 @_ZNK7glslang10TQualifier9hasLayoutEv(ptr noundef nonnull align 8 dereferenceable(72) %2)
  br i1 %184, label %185, label %189

185:                                              ; preds = %183
  %186 = load ptr, ptr %0, align 8, !tbaa !32
  %187 = getelementptr inbounds i8, ptr %186, i64 336
  %188 = load ptr, ptr %187, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %188(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.748, ptr noundef nonnull @.str.749, ptr noundef nonnull @.str.2)
  br label %189

189:                                              ; preds = %185, %183, %179
  ret void
}

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

declare void @_ZN7glslang14TParseVersions12requireStageERKNS_10TSourceLocE11EShLanguagePKc(ptr noundef nonnull align 8 dereferenceable(192), ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, ptr noundef) local_unnamed_addr #3

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZN7glslangL27storageCanHaveLayoutInBlockENS_17TStorageQualifierE(i32 noundef) local_unnamed_addr #0

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !12, i64 32}
!6 = !{!"_ZTSN7glslang14TParseVersionsE", !7, i64 8, !10, i64 12, !11, i64 16, !12, i64 24, !13, i64 28, !14, i64 32, !11, i64 56, !15, i64 64, !26, i64 120, !31, i64 176, !12, i64 180, !11, i64 184}
!7 = !{!"bool", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"_ZTS8EProfile", !8, i64 0}
!11 = !{!"any pointer", !8, i64 0}
!12 = !{!"int", !8, i64 0}
!13 = !{!"_ZTS11EShLanguage", !8, i64 0}
!14 = !{!"_ZTSN7glslang10SpvVersionE", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !7, i64 16}
!15 = !{!"_ZTSN7glslang4TMapINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEENS_18TExtensionBehaviorESt4lessIS7_EEE", !16, i64 0}
!16 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEENS4_18TExtensionBehaviorESt4lessIS7_ENS5_ISt4pairIKS7_S8_EEEE", !17, i64 0}
!17 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEESt4pairIKS7_NS4_18TExtensionBehaviorEESt10_Select1stISB_ESt4lessIS7_ENS5_ISB_EEE", !18, i64 0}
!18 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEESt4pairIKS7_NS4_18TExtensionBehaviorEESt10_Select1stISB_ESt4lessIS7_ENS5_ISB_EEE13_Rb_tree_implISF_Lb1EEE", !19, i64 0, !20, i64 8, !22, i64 16}
!19 = !{!"_ZTSN7glslang14pool_allocatorISt13_Rb_tree_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS0_IcEEEENS_18TExtensionBehaviorEEEEE", !11, i64 0}
!20 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEEEE", !21, i64 0}
!21 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEEE"}
!22 = !{!"_ZTSSt15_Rb_tree_header", !23, i64 0, !25, i64 32}
!23 = !{!"_ZTSSt18_Rb_tree_node_base", !24, i64 0, !11, i64 8, !11, i64 16, !11, i64 24}
!24 = !{!"_ZTSSt14_Rb_tree_color", !8, i64 0}
!25 = !{!"long", !8, i64 0}
!26 = !{!"_ZTSN7glslang4TMapINSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEEjSt4lessIS7_EEE", !27, i64 0}
!27 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEEjSt4lessIS7_ENS5_ISt4pairIKS7_jEEEE", !28, i64 0}
!28 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEESt4pairIKS7_jESt10_Select1stISA_ESt4lessIS7_ENS5_ISA_EEE", !29, i64 0}
!29 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEESt4pairIKS7_jESt10_Select1stISA_ESt4lessIS7_ENS5_ISA_EEE13_Rb_tree_implISE_Lb1EEE", !30, i64 0, !20, i64 8, !22, i64 16}
!30 = !{!"_ZTSN7glslang14pool_allocatorISt13_Rb_tree_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS0_IcEEEEjEEEE", !11, i64 0}
!31 = !{!"_ZTS11EShMessages", !8, i64 0}
!32 = !{!33, !33, i64 0}
!33 = !{!"vtable pointer", !9, i64 0}
!34 = !{!6, !13, i64 28}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,SROAPass,SimplifyCFGPass,TailCallElimPass