; 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.__gnu_cxx::__normal_iterator.233" = type { ptr }
%"class.glslang::TPublicType" = type { i32, %"struct.glslang::TSampler", %"class.glslang::TQualifier", %"struct.glslang::TShaderQualifiers", i16, ptr, ptr, %"struct.glslang::TSourceLoc", ptr, ptr }
%"struct.glslang::TSampler" = type { 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 }>
%"struct.glslang::TShaderQualifiers" = type { i32, i8, i8, i32, i32, i32, i32, i8, [3 x i32], [3 x i8], [3 x i32], i8, i8, i32, i8, i32, i32, i8, i8, i8, i32, i8 }
%"struct.glslang::TSourceLoc" = type { ptr, i32, i32, i32 }
%"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.68 = external hidden unnamed_addr constant [113 x i8], align 1
@_ZN7glslangL28E_GL_EXT_scalar_block_layoutE = external hidden constant ptr, align 8
@.str.383 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.567 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.568 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.569 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.570 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.571 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.572 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.573 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.574 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.575 = external hidden unnamed_addr constant [17 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
@_ZN7glslangL25E_GL_EXT_buffer_referenceE = external hidden constant ptr, align 8
@.str.578 = external hidden unnamed_addr constant [12 x i8], align 1
@_ZN7glslangL36E_SPV_NV_geometry_shader_passthroughE = external hidden constant ptr, align 8
@.str.579 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.580 = external hidden unnamed_addr constant [34 x i8], align 1
@__PRETTY_FUNCTION__._ZN7glslang13TParseContext18setLayoutQualifierERKNS_10TSourceLocERNS_11TPublicTypeERNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE = external hidden unnamed_addr constant [94 x i8], align 1
@.str.581 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.582 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.583 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.584 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.585 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.586 = external hidden unnamed_addr constant [20 x i8], align 1
@_ZN7glslangL23post_depth_coverageEXTsE = external hidden constant [2 x ptr], align 16
@.str.587 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.588 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.589 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.590 = external hidden unnamed_addr constant [43 x i8], align 1
@_ZN7glslangL34E_GL_ARB_fragment_shader_interlockE = external hidden constant ptr, align 8
@_ZN7glslangL26E_GL_NV_shading_rate_imageE = external hidden constant ptr, align 8
@.str.591 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.592 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.593 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.594 = external hidden unnamed_addr constant [18 x i8], align 1
@_ZN7glslangL37E_GL_NV_sample_mask_override_coverageE = external hidden constant ptr, align 8
@.str.595 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.596 = external hidden unnamed_addr constant [18 x i8], align 1
@_ZN7glslangL23E_GL_NV_viewport_array2E = external hidden constant ptr, align 8
@.str.597 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.598 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.599 = external hidden unnamed_addr constant [16 x i8], align 1
@_ZN7glslangL19E_GL_NV_ray_tracingE = external hidden constant ptr, align 8
@.str.600 = external hidden unnamed_addr constant [17 x i8], align 1
@_ZN7glslangL20E_GL_EXT_ray_tracingE = external hidden constant ptr, align 8
@.str.601 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.602 = external hidden unnamed_addr constant [18 x i8], align 1
@_ZN7glslangL34E_GL_NV_compute_shader_derivativesE = external hidden constant ptr, align 8
@.str.603 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.604 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.605 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.606 = external hidden unnamed_addr constant [18 x i8], align 1
@_ZN7glslangL36E_GL_EXT_ray_flags_primitive_cullingE = external hidden constant ptr, align 8
@.str.607 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.608 = external hidden unnamed_addr constant [85 x i8], align 1

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

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #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_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 ptr @_ZN7glslang10TQualifier17getGeometryStringENS_15TLayoutGeometryE(i32 noundef) #0 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE7compareEmmPKc(ptr noundef nonnull align 8 dereferenceable(40), i64 noundef, i64 noundef, ptr noundef) #5 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7glslang13TParseContext18setLayoutQualifierERKNS_10TSourceLocERNS_11TPublicTypeERNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(24912) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(232) %2, ptr noundef nonnull align 8 dereferenceable(40) %3) #5 align 2 {
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca %"class.__gnu_cxx::__normal_iterator.233", align 8
  %10 = alloca %"class.__gnu_cxx::__normal_iterator.233", align 8
  %11 = alloca %"class.__gnu_cxx::__normal_iterator.233", align 8
  %12 = alloca %"class.__gnu_cxx::__normal_iterator.233", align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i8, align 1
  %18 = alloca i32, align 4
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store ptr %2, ptr %7, align 8, !tbaa !5
  store ptr %3, ptr %8, align 8, !tbaa !5
  %19 = load ptr, ptr %5, align 8
  %20 = load ptr, ptr %8, align 8, !tbaa !5
  %21 = call ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(40) %20) #7
  %22 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.233", ptr %9, i32 0, i32 0
  store ptr %21, ptr %22, align 8
  %23 = load ptr, ptr %8, align 8, !tbaa !5
  %24 = call ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE3endEv(ptr noundef nonnull align 8 dereferenceable(40) %23) #7
  %25 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.233", ptr %10, i32 0, i32 0
  store ptr %24, ptr %25, align 8
  %26 = load ptr, ptr %8, align 8, !tbaa !5
  %27 = call ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(40) %26) #7
  %28 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.233", ptr %11, i32 0, i32 0
  store ptr %27, ptr %28, align 8
  %29 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.233", ptr %9, i32 0, i32 0
  %30 = load ptr, ptr %29, align 8
  %31 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.233", ptr %10, i32 0, i32 0
  %32 = load ptr, ptr %31, align 8
  %33 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.233", ptr %11, i32 0, i32 0
  %34 = load ptr, ptr %33, align 8
  %35 = call ptr @_ZSt9transformIN9__gnu_cxx17__normal_iteratorIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEEEESB_PDoFiiEET0_T_SF_SE_T1_(ptr %30, ptr %32, ptr %34, ptr noundef @tolower)
  %36 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.233", ptr %12, i32 0, i32 0
  store ptr %35, ptr %36, align 8
  %37 = load ptr, ptr %8, align 8, !tbaa !5
  %38 = call noundef ptr @_ZN7glslang10TQualifier21getLayoutMatrixStringENS_13TLayoutMatrixE(i32 noundef 2)
  %39 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %37, ptr noundef %38)
  br i1 %39, label %40, label %47

40:                                               ; preds = %4
  %41 = load ptr, ptr %7, align 8, !tbaa !5
  %42 = getelementptr inbounds %"class.glslang::TPublicType", ptr %41, i32 0, i32 2
  %43 = getelementptr inbounds %"class.glslang::TQualifier", ptr %42, i32 0, i32 1
  %44 = load i64, ptr %43, align 8
  %45 = and i64 %44, -4035225266123964417
  %46 = or i64 %45, 1152921504606846976
  store i64 %46, ptr %43, align 8
  br label %706

47:                                               ; preds = %4
  %48 = load ptr, ptr %8, align 8, !tbaa !5
  %49 = call noundef ptr @_ZN7glslang10TQualifier21getLayoutMatrixStringENS_13TLayoutMatrixE(i32 noundef 1)
  %50 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %48, ptr noundef %49)
  br i1 %50, label %51, label %58

51:                                               ; preds = %47
  %52 = load ptr, ptr %7, align 8, !tbaa !5
  %53 = getelementptr inbounds %"class.glslang::TPublicType", ptr %52, i32 0, i32 2
  %54 = getelementptr inbounds %"class.glslang::TQualifier", ptr %53, i32 0, i32 1
  %55 = load i64, ptr %54, align 8
  %56 = and i64 %55, -4035225266123964417
  %57 = or i64 %56, 576460752303423488
  store i64 %57, ptr %54, align 8
  br label %706

58:                                               ; preds = %47
  %59 = load ptr, ptr %8, align 8, !tbaa !5
  %60 = call noundef ptr @_ZN7glslang10TQualifier22getLayoutPackingStringENS_14TLayoutPackingE(i32 noundef 4)
  %61 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %59, ptr noundef %60)
  br i1 %61, label %62, label %86

62:                                               ; preds = %58
  %63 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %19, i32 0, i32 6
  %64 = getelementptr inbounds %"struct.glslang::SpvVersion", ptr %63, i32 0, i32 0
  %65 = load i32, ptr %64, align 8, !tbaa !9
  %66 = icmp ne i32 %65, 0
  br i1 %66, label %67, label %79

67:                                               ; preds = %62
  %68 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %19, i32 0, i32 6
  %69 = getelementptr inbounds %"struct.glslang::SpvVersion", ptr %68, i32 0, i32 4
  %70 = load i8, ptr %69, align 8, !tbaa !33, !range !34, !noundef !35
  %71 = trunc i8 %70 to i1
  br i1 %71, label %72, label %73

72:                                               ; preds = %67
  br label %706

73:                                               ; preds = %67
  %74 = load ptr, ptr %6, align 8, !tbaa !5
  %75 = load ptr, ptr %19, align 8, !tbaa !36
  %76 = getelementptr inbounds ptr, ptr %75, i64 37
  %77 = load ptr, ptr %76, align 8
  call void %77(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %74, ptr noundef @.str.567)
  br label %78

78:                                               ; preds = %73
  br label %79

79:                                               ; preds = %78, %62
  %80 = load ptr, ptr %7, align 8, !tbaa !5
  %81 = getelementptr inbounds %"class.glslang::TPublicType", ptr %80, i32 0, i32 2
  %82 = getelementptr inbounds %"class.glslang::TQualifier", ptr %81, i32 0, i32 2
  %83 = load i8, ptr %82, align 8
  %84 = and i8 %83, -16
  %85 = or i8 %84, 4
  store i8 %85, ptr %82, align 8
  br label %706

86:                                               ; preds = %58
  %87 = load ptr, ptr %8, align 8, !tbaa !5
  %88 = call noundef ptr @_ZN7glslang10TQualifier22getLayoutPackingStringENS_14TLayoutPackingE(i32 noundef 1)
  %89 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %87, ptr noundef %88)
  br i1 %89, label %90, label %114

90:                                               ; preds = %86
  %91 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %19, i32 0, i32 6
  %92 = getelementptr inbounds %"struct.glslang::SpvVersion", ptr %91, i32 0, i32 0
  %93 = load i32, ptr %92, align 8, !tbaa !9
  %94 = icmp ne i32 %93, 0
  br i1 %94, label %95, label %107

95:                                               ; preds = %90
  %96 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %19, i32 0, i32 6
  %97 = getelementptr inbounds %"struct.glslang::SpvVersion", ptr %96, i32 0, i32 4
  %98 = load i8, ptr %97, align 8, !tbaa !33, !range !34, !noundef !35
  %99 = trunc i8 %98 to i1
  br i1 %99, label %100, label %101

100:                                              ; preds = %95
  br label %706

101:                                              ; preds = %95
  %102 = load ptr, ptr %6, align 8, !tbaa !5
  %103 = load ptr, ptr %19, align 8, !tbaa !36
  %104 = getelementptr inbounds ptr, ptr %103, i64 37
  %105 = load ptr, ptr %104, align 8
  call void %105(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %102, ptr noundef @.str.568)
  br label %106

106:                                              ; preds = %101
  br label %107

107:                                              ; preds = %106, %90
  %108 = load ptr, ptr %7, align 8, !tbaa !5
  %109 = getelementptr inbounds %"class.glslang::TPublicType", ptr %108, i32 0, i32 2
  %110 = getelementptr inbounds %"class.glslang::TQualifier", ptr %109, i32 0, i32 2
  %111 = load i8, ptr %110, align 8
  %112 = and i8 %111, -16
  %113 = or i8 %112, 1
  store i8 %113, ptr %110, align 8
  br label %706

114:                                              ; preds = %86
  %115 = load ptr, ptr %8, align 8, !tbaa !5
  %116 = call noundef ptr @_ZN7glslang10TQualifier22getLayoutPackingStringENS_14TLayoutPackingE(i32 noundef 2)
  %117 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %115, ptr noundef %116)
  br i1 %117, label %118, label %125

118:                                              ; preds = %114
  %119 = load ptr, ptr %7, align 8, !tbaa !5
  %120 = getelementptr inbounds %"class.glslang::TPublicType", ptr %119, i32 0, i32 2
  %121 = getelementptr inbounds %"class.glslang::TQualifier", ptr %120, i32 0, i32 2
  %122 = load i8, ptr %121, align 8
  %123 = and i8 %122, -16
  %124 = or i8 %123, 2
  store i8 %124, ptr %121, align 8
  br label %706

125:                                              ; preds = %114
  %126 = load ptr, ptr %8, align 8, !tbaa !5
  %127 = call noundef ptr @_ZN7glslang10TQualifier22getLayoutPackingStringENS_14TLayoutPackingE(i32 noundef 3)
  %128 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %126, ptr noundef %127)
  br i1 %128, label %129, label %139

129:                                              ; preds = %125
  %130 = load ptr, ptr %6, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions14requireProfileERKNS_10TSourceLocEiPKc(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %130, i32 noundef 14, ptr noundef @.str.569)
  %131 = load ptr, ptr %6, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %131, i32 noundef 6, i32 noundef 430, ptr noundef @.str.570, ptr noundef @.str.569)
  %132 = load ptr, ptr %6, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %132, i32 noundef 8, i32 noundef 310, ptr noundef null, ptr noundef @.str.569)
  %133 = load ptr, ptr %7, align 8, !tbaa !5
  %134 = getelementptr inbounds %"class.glslang::TPublicType", ptr %133, i32 0, i32 2
  %135 = getelementptr inbounds %"class.glslang::TQualifier", ptr %134, i32 0, i32 2
  %136 = load i8, ptr %135, align 8
  %137 = and i8 %136, -16
  %138 = or i8 %137, 3
  store i8 %138, ptr %135, align 8
  br label %706

139:                                              ; preds = %125
  %140 = load ptr, ptr %8, align 8, !tbaa !5
  %141 = call noundef ptr @_ZN7glslang10TQualifier22getLayoutPackingStringENS_14TLayoutPackingE(i32 noundef 5)
  %142 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %140, ptr noundef %141)
  br i1 %142, label %143, label %158

143:                                              ; preds = %139
  %144 = load ptr, ptr %6, align 8, !tbaa !5
  %145 = load ptr, ptr %19, align 8, !tbaa !36
  %146 = getelementptr inbounds ptr, ptr %145, i64 39
  %147 = load ptr, ptr %146, align 8
  call void %147(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %144, ptr noundef @.str.571)
  %148 = load ptr, ptr %6, align 8, !tbaa !5
  %149 = load ptr, ptr %19, align 8, !tbaa !36
  %150 = getelementptr inbounds ptr, ptr %149, i64 5
  %151 = load ptr, ptr %150, align 8
  call void %151(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %148, i32 noundef 1, ptr noundef @_ZN7glslangL28E_GL_EXT_scalar_block_layoutE, ptr noundef @.str.572)
  %152 = load ptr, ptr %7, align 8, !tbaa !5
  %153 = getelementptr inbounds %"class.glslang::TPublicType", ptr %152, i32 0, i32 2
  %154 = getelementptr inbounds %"class.glslang::TQualifier", ptr %153, i32 0, i32 2
  %155 = load i8, ptr %154, align 8
  %156 = and i8 %155, -16
  %157 = or i8 %156, 5
  store i8 %157, ptr %154, align 8
  br label %706

158:                                              ; preds = %139
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #7
  store i32 1, ptr %13, align 4, !tbaa !38
  br label %159

159:                                              ; preds = %197, %158
  %160 = load i32, ptr %13, align 4, !tbaa !38
  %161 = icmp slt i32 %160, 47
  br i1 %161, label %163, label %162

162:                                              ; preds = %159
  store i32 2, ptr %14, align 4
  br label %200

163:                                              ; preds = %159
  %164 = load ptr, ptr %8, align 8, !tbaa !5
  %165 = load i32, ptr %13, align 4, !tbaa !38
  %166 = call noundef ptr @_ZN7glslang10TQualifier21getLayoutFormatStringENS_13TLayoutFormatE(i32 noundef %165)
  %167 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %164, ptr noundef %166)
  br i1 %167, label %168, label %196

168:                                              ; preds = %163
  %169 = load i32, ptr %13, align 4, !tbaa !38
  %170 = icmp sgt i32 %169, 6
  br i1 %170, label %171, label %174

171:                                              ; preds = %168
  %172 = load i32, ptr %13, align 4, !tbaa !38
  %173 = icmp slt i32 %172, 22
  br i1 %173, label %186, label %174

174:                                              ; preds = %171, %168
  %175 = load i32, ptr %13, align 4, !tbaa !38
  %176 = icmp sgt i32 %175, 27
  br i1 %176, label %177, label %180

177:                                              ; preds = %174
  %178 = load i32, ptr %13, align 4, !tbaa !38
  %179 = icmp slt i32 %178, 34
  br i1 %179, label %186, label %180

180:                                              ; preds = %177, %174
  %181 = load i32, ptr %13, align 4, !tbaa !38
  %182 = icmp sgt i32 %181, 39
  br i1 %182, label %183, label %188

183:                                              ; preds = %180
  %184 = load i32, ptr %13, align 4, !tbaa !38
  %185 = icmp slt i32 %184, 47
  br i1 %185, label %186, label %188

186:                                              ; preds = %183, %177, %171
  %187 = load ptr, ptr %6, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions14requireProfileERKNS_10TSourceLocEiPKc(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %187, i32 noundef 7, ptr noundef @.str.573)
  br label %188

188:                                              ; preds = %186, %183, %180
  %189 = load ptr, ptr %6, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %189, i32 noundef 7, i32 noundef 420, ptr noundef @.str.574, ptr noundef @.str.575)
  %190 = load ptr, ptr %6, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %190, i32 noundef 8, i32 noundef 310, ptr noundef @.str.574, ptr noundef @.str.575)
  %191 = load i32, ptr %13, align 4, !tbaa !38
  %192 = load ptr, ptr %7, align 8, !tbaa !5
  %193 = getelementptr inbounds %"class.glslang::TPublicType", ptr %192, i32 0, i32 2
  %194 = getelementptr inbounds %"class.glslang::TQualifier", ptr %193, i32 0, i32 8
  %195 = trunc i32 %191 to i8
  store i8 %195, ptr %194, align 4
  store i32 1, ptr %14, align 4
  br label %200

196:                                              ; preds = %163
  br label %197

197:                                              ; preds = %196
  %198 = load i32, ptr %13, align 4, !tbaa !38
  %199 = add nsw i32 %198, 1
  store i32 %199, ptr %13, align 4, !tbaa !38
  br label %159, !llvm.loop !40

200:                                              ; preds = %188, %162
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #7
  %201 = load i32, ptr %14, align 4
  switch i32 %201, label %707 [
    i32 2, label %202
    i32 1, label %706
  ]

202:                                              ; preds = %200
  %203 = load ptr, ptr %8, align 8, !tbaa !5
  %204 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %203, ptr noundef @.str.576)
  br i1 %204, label %205, label %213

205:                                              ; preds = %202
  %206 = load ptr, ptr %6, align 8, !tbaa !5
  %207 = load ptr, ptr %19, align 8, !tbaa !36
  %208 = getelementptr inbounds ptr, ptr %207, i64 39
  %209 = load ptr, ptr %208, align 8
  call void %209(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %206, ptr noundef @.str.576)
  %210 = load ptr, ptr %7, align 8, !tbaa !5
  %211 = getelementptr inbounds %"class.glslang::TPublicType", ptr %210, i32 0, i32 2
  %212 = getelementptr inbounds %"class.glslang::TQualifier", ptr %211, i32 0, i32 9
  store i8 1, ptr %212, align 1, !tbaa !42
  br label %706

213:                                              ; preds = %202
  %214 = load ptr, ptr %8, align 8, !tbaa !5
  %215 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %214, ptr noundef @.str.577)
  br i1 %215, label %216, label %232

216:                                              ; preds = %213
  %217 = load ptr, ptr %6, align 8, !tbaa !5
  %218 = load ptr, ptr %19, align 8, !tbaa !36
  %219 = getelementptr inbounds ptr, ptr %218, i64 39
  %220 = load ptr, ptr %219, align 8
  call void %220(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %217, ptr noundef @.str.577)
  %221 = load ptr, ptr %6, align 8, !tbaa !5
  %222 = load ptr, ptr %19, align 8, !tbaa !36
  %223 = getelementptr inbounds ptr, ptr %222, i64 5
  %224 = load ptr, ptr %223, align 8
  call void %224(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %221, i32 noundef 1, ptr noundef @_ZN7glslangL25E_GL_EXT_buffer_referenceE, ptr noundef @.str.577)
  %225 = load ptr, ptr %7, align 8, !tbaa !5
  %226 = getelementptr inbounds %"class.glslang::TPublicType", ptr %225, i32 0, i32 2
  %227 = getelementptr inbounds %"class.glslang::TQualifier", ptr %226, i32 0, i32 10
  store i8 1, ptr %227, align 2, !tbaa !60
  %228 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %19, i32 0, i32 7
  %229 = load ptr, ptr %228, align 8, !tbaa !61
  call void @_ZN7glslang13TIntermediate19setUseStorageBufferEv(ptr noundef nonnull align 8 dereferenceable(1784) %229)
  %230 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %19, i32 0, i32 7
  %231 = load ptr, ptr %230, align 8, !tbaa !61
  call void @_ZN7glslang13TIntermediate27setUsePhysicalStorageBufferEv(ptr noundef nonnull align 8 dereferenceable(1784) %231)
  br label %706

232:                                              ; preds = %213
  %233 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %19, i32 0, i32 5
  %234 = load i32, ptr %233, align 4, !tbaa !62
  %235 = icmp eq i32 %234, 3
  br i1 %235, label %244, label %236

236:                                              ; preds = %232
  %237 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %19, i32 0, i32 5
  %238 = load i32, ptr %237, align 4, !tbaa !62
  %239 = icmp eq i32 %238, 2
  br i1 %239, label %244, label %240

240:                                              ; preds = %236
  %241 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %19, i32 0, i32 5
  %242 = load i32, ptr %241, align 4, !tbaa !62
  %243 = icmp eq i32 %242, 13
  br i1 %243, label %244, label %407

244:                                              ; preds = %240, %236, %232
  %245 = load ptr, ptr %8, align 8, !tbaa !5
  %246 = call noundef ptr @_ZN7glslang10TQualifier17getGeometryStringENS_15TLayoutGeometryE(i32 noundef 5)
  %247 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %245, ptr noundef %246)
  br i1 %247, label %248, label %252

248:                                              ; preds = %244
  %249 = load ptr, ptr %7, align 8, !tbaa !5
  %250 = getelementptr inbounds %"class.glslang::TPublicType", ptr %249, i32 0, i32 3
  %251 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %250, i32 0, i32 0
  store i32 5, ptr %251, align 8, !tbaa !63
  br label %706

252:                                              ; preds = %244
  %253 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %19, i32 0, i32 5
  %254 = load i32, ptr %253, align 4, !tbaa !62
  %255 = icmp eq i32 %254, 3
  br i1 %255, label %260, label %256

256:                                              ; preds = %252
  %257 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %19, i32 0, i32 5
  %258 = load i32, ptr %257, align 4, !tbaa !62
  %259 = icmp eq i32 %258, 13
  br i1 %259, label %260, label %327

260:                                              ; preds = %256, %252
  %261 = load ptr, ptr %8, align 8, !tbaa !5
  %262 = call noundef ptr @_ZN7glslang10TQualifier17getGeometryStringENS_15TLayoutGeometryE(i32 noundef 1)
  %263 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %261, ptr noundef %262)
  br i1 %263, label %264, label %268

264:                                              ; preds = %260
  %265 = load ptr, ptr %7, align 8, !tbaa !5
  %266 = getelementptr inbounds %"class.glslang::TPublicType", ptr %265, i32 0, i32 3
  %267 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %266, i32 0, i32 0
  store i32 1, ptr %267, align 8, !tbaa !63
  br label %706

268:                                              ; preds = %260
  %269 = load ptr, ptr %8, align 8, !tbaa !5
  %270 = call noundef ptr @_ZN7glslang10TQualifier17getGeometryStringENS_15TLayoutGeometryE(i32 noundef 2)
  %271 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %269, ptr noundef %270)
  br i1 %271, label %272, label %276

272:                                              ; preds = %268
  %273 = load ptr, ptr %7, align 8, !tbaa !5
  %274 = getelementptr inbounds %"class.glslang::TPublicType", ptr %273, i32 0, i32 3
  %275 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %274, i32 0, i32 0
  store i32 2, ptr %275, align 8, !tbaa !63
  br label %706

276:                                              ; preds = %268
  %277 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %19, i32 0, i32 5
  %278 = load i32, ptr %277, align 4, !tbaa !62
  %279 = icmp eq i32 %278, 3
  br i1 %279, label %280, label %326

280:                                              ; preds = %276
  %281 = load ptr, ptr %8, align 8, !tbaa !5
  %282 = call noundef ptr @_ZN7glslang10TQualifier17getGeometryStringENS_15TLayoutGeometryE(i32 noundef 4)
  %283 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %281, ptr noundef %282)
  br i1 %283, label %284, label %288

284:                                              ; preds = %280
  %285 = load ptr, ptr %7, align 8, !tbaa !5
  %286 = getelementptr inbounds %"class.glslang::TPublicType", ptr %285, i32 0, i32 3
  %287 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %286, i32 0, i32 0
  store i32 4, ptr %287, align 8, !tbaa !63
  br label %706

288:                                              ; preds = %280
  %289 = load ptr, ptr %8, align 8, !tbaa !5
  %290 = call noundef ptr @_ZN7glslang10TQualifier17getGeometryStringENS_15TLayoutGeometryE(i32 noundef 3)
  %291 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %289, ptr noundef %290)
  br i1 %291, label %292, label %296

292:                                              ; preds = %288
  %293 = load ptr, ptr %7, align 8, !tbaa !5
  %294 = getelementptr inbounds %"class.glslang::TPublicType", ptr %293, i32 0, i32 3
  %295 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %294, i32 0, i32 0
  store i32 3, ptr %295, align 8, !tbaa !63
  br label %706

296:                                              ; preds = %288
  %297 = load ptr, ptr %8, align 8, !tbaa !5
  %298 = call noundef ptr @_ZN7glslang10TQualifier17getGeometryStringENS_15TLayoutGeometryE(i32 noundef 6)
  %299 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %297, ptr noundef %298)
  br i1 %299, label %300, label %304

300:                                              ; preds = %296
  %301 = load ptr, ptr %7, align 8, !tbaa !5
  %302 = getelementptr inbounds %"class.glslang::TPublicType", ptr %301, i32 0, i32 3
  %303 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %302, i32 0, i32 0
  store i32 6, ptr %303, align 8, !tbaa !63
  br label %706

304:                                              ; preds = %296
  %305 = load ptr, ptr %8, align 8, !tbaa !5
  %306 = call noundef ptr @_ZN7glslang10TQualifier17getGeometryStringENS_15TLayoutGeometryE(i32 noundef 7)
  %307 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %305, ptr noundef %306)
  br i1 %307, label %308, label %312

308:                                              ; preds = %304
  %309 = load ptr, ptr %7, align 8, !tbaa !5
  %310 = getelementptr inbounds %"class.glslang::TPublicType", ptr %309, i32 0, i32 3
  %311 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %310, i32 0, i32 0
  store i32 7, ptr %311, align 8, !tbaa !63
  br label %706

312:                                              ; preds = %304
  %313 = load ptr, ptr %8, align 8, !tbaa !5
  %314 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %313, ptr noundef @.str.578)
  br i1 %314, label %315, label %325

315:                                              ; preds = %312
  %316 = load ptr, ptr %6, align 8, !tbaa !5
  %317 = load ptr, ptr %19, align 8, !tbaa !36
  %318 = getelementptr inbounds ptr, ptr %317, i64 5
  %319 = load ptr, ptr %318, align 8
  call void %319(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %316, i32 noundef 1, ptr noundef @_ZN7glslangL36E_SPV_NV_geometry_shader_passthroughE, ptr noundef @.str.579)
  %320 = load ptr, ptr %7, align 8, !tbaa !5
  %321 = getelementptr inbounds %"class.glslang::TPublicType", ptr %320, i32 0, i32 2
  %322 = getelementptr inbounds %"class.glslang::TQualifier", ptr %321, i32 0, i32 11
  store i8 1, ptr %322, align 1, !tbaa !64
  %323 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %19, i32 0, i32 7
  %324 = load ptr, ptr %323, align 8, !tbaa !61
  call void @_ZN7glslang13TIntermediate20setGeoPassthroughEXTEv(ptr noundef nonnull align 8 dereferenceable(1784) %324)
  br label %706

325:                                              ; preds = %312
  br label %326

326:                                              ; preds = %325, %276
  br label %406

327:                                              ; preds = %256
  %328 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %19, i32 0, i32 5
  %329 = load i32, ptr %328, align 4, !tbaa !62
  %330 = icmp eq i32 %329, 2
  br i1 %330, label %331, label %332

331:                                              ; preds = %327
  br label %334

332:                                              ; preds = %327
  call void @__assert_fail(ptr noundef @.str.580, ptr noundef @.str.68, i32 noundef 5478, ptr noundef @__PRETTY_FUNCTION__._ZN7glslang13TParseContext18setLayoutQualifierERKNS_10TSourceLocERNS_11TPublicTypeERNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE) #8
  unreachable

333:                                              ; No predecessors!
  br label %334

334:                                              ; preds = %333, %331
  %335 = load ptr, ptr %8, align 8, !tbaa !5
  %336 = call noundef ptr @_ZN7glslang10TQualifier17getGeometryStringENS_15TLayoutGeometryE(i32 noundef 5)
  %337 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %335, ptr noundef %336)
  br i1 %337, label %338, label %342

338:                                              ; preds = %334
  %339 = load ptr, ptr %7, align 8, !tbaa !5
  %340 = getelementptr inbounds %"class.glslang::TPublicType", ptr %339, i32 0, i32 3
  %341 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %340, i32 0, i32 0
  store i32 5, ptr %341, align 8, !tbaa !63
  br label %706

342:                                              ; preds = %334
  %343 = load ptr, ptr %8, align 8, !tbaa !5
  %344 = call noundef ptr @_ZN7glslang10TQualifier17getGeometryStringENS_15TLayoutGeometryE(i32 noundef 8)
  %345 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %343, ptr noundef %344)
  br i1 %345, label %346, label %350

346:                                              ; preds = %342
  %347 = load ptr, ptr %7, align 8, !tbaa !5
  %348 = getelementptr inbounds %"class.glslang::TPublicType", ptr %347, i32 0, i32 3
  %349 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %348, i32 0, i32 0
  store i32 8, ptr %349, align 8, !tbaa !63
  br label %706

350:                                              ; preds = %342
  %351 = load ptr, ptr %8, align 8, !tbaa !5
  %352 = call noundef ptr @_ZN7glslang10TQualifier17getGeometryStringENS_15TLayoutGeometryE(i32 noundef 9)
  %353 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %351, ptr noundef %352)
  br i1 %353, label %354, label %358

354:                                              ; preds = %350
  %355 = load ptr, ptr %7, align 8, !tbaa !5
  %356 = getelementptr inbounds %"class.glslang::TPublicType", ptr %355, i32 0, i32 3
  %357 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %356, i32 0, i32 0
  store i32 9, ptr %357, align 8, !tbaa !63
  br label %706

358:                                              ; preds = %350
  %359 = load ptr, ptr %8, align 8, !tbaa !5
  %360 = call noundef ptr @_ZN7glslang10TQualifier22getVertexSpacingStringENS_14TVertexSpacingE(i32 noundef 1)
  %361 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %359, ptr noundef %360)
  br i1 %361, label %362, label %366

362:                                              ; preds = %358
  %363 = load ptr, ptr %7, align 8, !tbaa !5
  %364 = getelementptr inbounds %"class.glslang::TPublicType", ptr %363, i32 0, i32 3
  %365 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %364, i32 0, i32 5
  store i32 1, ptr %365, align 8, !tbaa !65
  br label %706

366:                                              ; preds = %358
  %367 = load ptr, ptr %8, align 8, !tbaa !5
  %368 = call noundef ptr @_ZN7glslang10TQualifier22getVertexSpacingStringENS_14TVertexSpacingE(i32 noundef 2)
  %369 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %367, ptr noundef %368)
  br i1 %369, label %370, label %374

370:                                              ; preds = %366
  %371 = load ptr, ptr %7, align 8, !tbaa !5
  %372 = getelementptr inbounds %"class.glslang::TPublicType", ptr %371, i32 0, i32 3
  %373 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %372, i32 0, i32 5
  store i32 2, ptr %373, align 8, !tbaa !65
  br label %706

374:                                              ; preds = %366
  %375 = load ptr, ptr %8, align 8, !tbaa !5
  %376 = call noundef ptr @_ZN7glslang10TQualifier22getVertexSpacingStringENS_14TVertexSpacingE(i32 noundef 3)
  %377 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %375, ptr noundef %376)
  br i1 %377, label %378, label %382

378:                                              ; preds = %374
  %379 = load ptr, ptr %7, align 8, !tbaa !5
  %380 = getelementptr inbounds %"class.glslang::TPublicType", ptr %379, i32 0, i32 3
  %381 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %380, i32 0, i32 5
  store i32 3, ptr %381, align 8, !tbaa !65
  br label %706

382:                                              ; preds = %374
  %383 = load ptr, ptr %8, align 8, !tbaa !5
  %384 = call noundef ptr @_ZN7glslang10TQualifier20getVertexOrderStringENS_12TVertexOrderE(i32 noundef 1)
  %385 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %383, ptr noundef %384)
  br i1 %385, label %386, label %390

386:                                              ; preds = %382
  %387 = load ptr, ptr %7, align 8, !tbaa !5
  %388 = getelementptr inbounds %"class.glslang::TPublicType", ptr %387, i32 0, i32 3
  %389 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %388, i32 0, i32 6
  store i32 1, ptr %389, align 4, !tbaa !66
  br label %706

390:                                              ; preds = %382
  %391 = load ptr, ptr %8, align 8, !tbaa !5
  %392 = call noundef ptr @_ZN7glslang10TQualifier20getVertexOrderStringENS_12TVertexOrderE(i32 noundef 2)
  %393 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %391, ptr noundef %392)
  br i1 %393, label %394, label %398

394:                                              ; preds = %390
  %395 = load ptr, ptr %7, align 8, !tbaa !5
  %396 = getelementptr inbounds %"class.glslang::TPublicType", ptr %395, i32 0, i32 3
  %397 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %396, i32 0, i32 6
  store i32 2, ptr %397, align 4, !tbaa !66
  br label %706

398:                                              ; preds = %390
  %399 = load ptr, ptr %8, align 8, !tbaa !5
  %400 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %399, ptr noundef @.str.581)
  br i1 %400, label %401, label %405

401:                                              ; preds = %398
  %402 = load ptr, ptr %7, align 8, !tbaa !5
  %403 = getelementptr inbounds %"class.glslang::TPublicType", ptr %402, i32 0, i32 3
  %404 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %403, i32 0, i32 7
  store i8 1, ptr %404, align 8, !tbaa !67
  br label %706

405:                                              ; preds = %398
  br label %406

406:                                              ; preds = %405, %326
  br label %407

407:                                              ; preds = %406, %240
  %408 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %19, i32 0, i32 5
  %409 = load i32, ptr %408, align 4, !tbaa !62
  %410 = icmp eq i32 %409, 4
  br i1 %410, label %411, label %582

411:                                              ; preds = %407
  %412 = load ptr, ptr %8, align 8, !tbaa !5
  %413 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %412, ptr noundef @.str.582)
  br i1 %413, label %414, label %425

414:                                              ; preds = %411
  %415 = load ptr, ptr %6, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions14requireProfileERKNS_10TSourceLocEiPKc(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %415, i32 noundef 7, ptr noundef @.str.582)
  %416 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %19, i32 0, i32 2
  %417 = load i32, ptr %416, align 4, !tbaa !68
  %418 = icmp eq i32 %417, 1
  br i1 %418, label %419, label %421

419:                                              ; preds = %414
  %420 = load ptr, ptr %6, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %420, i32 noundef 6, i32 noundef 140, ptr noundef @.str.583, ptr noundef @.str.582)
  br label %421

421:                                              ; preds = %419, %414
  %422 = load ptr, ptr %7, align 8, !tbaa !5
  %423 = getelementptr inbounds %"class.glslang::TPublicType", ptr %422, i32 0, i32 3
  %424 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %423, i32 0, i32 2
  store i8 1, ptr %424, align 1, !tbaa !69
  br label %706

425:                                              ; preds = %411
  %426 = load ptr, ptr %8, align 8, !tbaa !5
  %427 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %426, ptr noundef @.str.584)
  br i1 %427, label %428, label %439

428:                                              ; preds = %425
  %429 = load ptr, ptr %6, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions14requireProfileERKNS_10TSourceLocEiPKc(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %429, i32 noundef 7, ptr noundef @.str.584)
  %430 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %19, i32 0, i32 2
  %431 = load i32, ptr %430, align 4, !tbaa !68
  %432 = icmp eq i32 %431, 1
  br i1 %432, label %433, label %435

433:                                              ; preds = %428
  %434 = load ptr, ptr %6, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %434, i32 noundef 6, i32 noundef 140, ptr noundef @.str.583, ptr noundef @.str.584)
  br label %435

435:                                              ; preds = %433, %428
  %436 = load ptr, ptr %7, align 8, !tbaa !5
  %437 = getelementptr inbounds %"class.glslang::TPublicType", ptr %436, i32 0, i32 3
  %438 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %437, i32 0, i32 1
  store i8 1, ptr %438, align 4, !tbaa !70
  br label %706

439:                                              ; preds = %425
  %440 = load ptr, ptr %8, align 8, !tbaa !5
  %441 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %440, ptr noundef @.str.585)
  br i1 %441, label %442, label %448

442:                                              ; preds = %439
  %443 = load ptr, ptr %6, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %443, i32 noundef 7, i32 noundef 420, ptr noundef @.str.574, ptr noundef @.str.585)
  %444 = load ptr, ptr %6, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %444, i32 noundef 8, i32 noundef 310, ptr noundef null, ptr noundef @.str.585)
  %445 = load ptr, ptr %7, align 8, !tbaa !5
  %446 = getelementptr inbounds %"class.glslang::TPublicType", ptr %445, i32 0, i32 3
  %447 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %446, i32 0, i32 11
  store i8 1, ptr %447, align 8, !tbaa !71
  br label %706

448:                                              ; preds = %439
  %449 = load ptr, ptr %8, align 8, !tbaa !5
  %450 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %449, ptr noundef @.str.586)
  br i1 %450, label %451, label %468

451:                                              ; preds = %448
  %452 = load ptr, ptr %6, align 8, !tbaa !5
  %453 = load ptr, ptr %19, align 8, !tbaa !36
  %454 = getelementptr inbounds ptr, ptr %453, i64 5
  %455 = load ptr, ptr %454, align 8
  call void %455(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %452, i32 noundef 2, ptr noundef @_ZN7glslangL23post_depth_coverageEXTsE, ptr noundef @.str.587)
  %456 = load ptr, ptr %19, align 8, !tbaa !36
  %457 = getelementptr inbounds ptr, ptr %456, i64 8
  %458 = load ptr, ptr %457, align 8
  %459 = call noundef zeroext i1 %458(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef @.str.588)
  br i1 %459, label %460, label %464

460:                                              ; preds = %451
  %461 = load ptr, ptr %7, align 8, !tbaa !5
  %462 = getelementptr inbounds %"class.glslang::TPublicType", ptr %461, i32 0, i32 3
  %463 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %462, i32 0, i32 11
  store i8 1, ptr %463, align 8, !tbaa !71
  br label %464

464:                                              ; preds = %460, %451
  %465 = load ptr, ptr %7, align 8, !tbaa !5
  %466 = getelementptr inbounds %"class.glslang::TPublicType", ptr %465, i32 0, i32 3
  %467 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %466, i32 0, i32 12
  store i8 1, ptr %467, align 1, !tbaa !72
  br label %706

468:                                              ; preds = %448
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #7
  store i32 1, ptr %15, align 4, !tbaa !73
  br label %469

469:                                              ; preds = %486, %468
  %470 = load i32, ptr %15, align 4, !tbaa !73
  %471 = icmp slt i32 %470, 5
  br i1 %471, label %473, label %472

472:                                              ; preds = %469
  store i32 5, ptr %14, align 4
  br label %489

473:                                              ; preds = %469
  %474 = load ptr, ptr %8, align 8, !tbaa !5
  %475 = load i32, ptr %15, align 4, !tbaa !73
  %476 = call noundef ptr @_ZN7glslang10TQualifier20getLayoutDepthStringENS_12TLayoutDepthE(i32 noundef %475)
  %477 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %474, ptr noundef %476)
  br i1 %477, label %478, label %485

478:                                              ; preds = %473
  %479 = load ptr, ptr %6, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions14requireProfileERKNS_10TSourceLocEiPKc(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %479, i32 noundef 6, ptr noundef @.str.589)
  %480 = load ptr, ptr %6, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %480, i32 noundef 6, i32 noundef 420, ptr noundef null, ptr noundef @.str.589)
  %481 = load i32, ptr %15, align 4, !tbaa !73
  %482 = load ptr, ptr %7, align 8, !tbaa !5
  %483 = getelementptr inbounds %"class.glslang::TPublicType", ptr %482, i32 0, i32 3
  %484 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %483, i32 0, i32 13
  store i32 %481, ptr %484, align 4, !tbaa !74
  store i32 1, ptr %14, align 4
  br label %489

485:                                              ; preds = %473
  br label %486

486:                                              ; preds = %485
  %487 = load i32, ptr %15, align 4, !tbaa !73
  %488 = add nsw i32 %487, 1
  store i32 %488, ptr %15, align 4, !tbaa !73
  br label %469, !llvm.loop !75

489:                                              ; preds = %478, %472
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #7
  %490 = load i32, ptr %14, align 4
  switch i32 %490, label %707 [
    i32 5, label %491
    i32 1, label %706
  ]

491:                                              ; preds = %489
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #7
  store i32 1, ptr %16, align 4, !tbaa !76
  br label %492

492:                                              ; preds = %528, %491
  %493 = load i32, ptr %16, align 4, !tbaa !76
  %494 = icmp slt i32 %493, 7
  br i1 %494, label %496, label %495

495:                                              ; preds = %492
  store i32 8, ptr %14, align 4
  br label %531

496:                                              ; preds = %492
  %497 = load ptr, ptr %8, align 8, !tbaa !5
  %498 = load i32, ptr %16, align 4, !tbaa !76
  %499 = call noundef ptr @_ZN7glslang10TQualifier26getInterlockOrderingStringENS_18TInterlockOrderingE(i32 noundef %498)
  %500 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %497, ptr noundef %499)
  br i1 %500, label %501, label %527

501:                                              ; preds = %496
  %502 = load ptr, ptr %6, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions14requireProfileERKNS_10TSourceLocEiPKc(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %502, i32 noundef 6, ptr noundef @.str.590)
  %503 = load ptr, ptr %6, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %503, i32 noundef 6, i32 noundef 450, ptr noundef null, ptr noundef @.str.590)
  %504 = load ptr, ptr %6, align 8, !tbaa !5
  %505 = load i32, ptr %16, align 4, !tbaa !76
  %506 = call noundef ptr @_ZN7glslang10TQualifier26getInterlockOrderingStringENS_18TInterlockOrderingE(i32 noundef %505)
  %507 = load ptr, ptr %19, align 8, !tbaa !36
  %508 = getelementptr inbounds ptr, ptr %507, i64 5
  %509 = load ptr, ptr %508, align 8
  call void %509(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %504, i32 noundef 1, ptr noundef @_ZN7glslangL34E_GL_ARB_fragment_shader_interlockE, ptr noundef %506)
  %510 = load i32, ptr %16, align 4, !tbaa !76
  %511 = icmp eq i32 %510, 5
  br i1 %511, label %515, label %512

512:                                              ; preds = %501
  %513 = load i32, ptr %16, align 4, !tbaa !76
  %514 = icmp eq i32 %513, 6
  br i1 %514, label %515, label %522

515:                                              ; preds = %512, %501
  %516 = load ptr, ptr %6, align 8, !tbaa !5
  %517 = load i32, ptr %16, align 4, !tbaa !76
  %518 = call noundef ptr @_ZN7glslang10TQualifier26getInterlockOrderingStringENS_18TInterlockOrderingE(i32 noundef %517)
  %519 = load ptr, ptr %19, align 8, !tbaa !36
  %520 = getelementptr inbounds ptr, ptr %519, i64 5
  %521 = load ptr, ptr %520, align 8
  call void %521(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %516, i32 noundef 1, ptr noundef @_ZN7glslangL26E_GL_NV_shading_rate_imageE, ptr noundef %518)
  br label %522

522:                                              ; preds = %515, %512
  %523 = load i32, ptr %16, align 4, !tbaa !76
  %524 = load ptr, ptr %7, align 8, !tbaa !5
  %525 = getelementptr inbounds %"class.glslang::TPublicType", ptr %524, i32 0, i32 3
  %526 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %525, i32 0, i32 16
  store i32 %523, ptr %526, align 8, !tbaa !77
  store i32 1, ptr %14, align 4
  br label %531

527:                                              ; preds = %496
  br label %528

528:                                              ; preds = %527
  %529 = load i32, ptr %16, align 4, !tbaa !76
  %530 = add nsw i32 %529, 1
  store i32 %530, ptr %16, align 4, !tbaa !76
  br label %492, !llvm.loop !78

531:                                              ; preds = %522, %495
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #7
  %532 = load i32, ptr %14, align 4
  switch i32 %532, label %707 [
    i32 8, label %533
    i32 1, label %706
  ]

533:                                              ; preds = %531
  %534 = load ptr, ptr %8, align 8, !tbaa !5
  %535 = call noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE7compareEmmPKc(ptr noundef nonnull align 8 dereferenceable(40) %534, i64 noundef 0, i64 noundef 13, ptr noundef @.str.591)
  %536 = icmp eq i32 %535, 0
  br i1 %536, label %537, label %570

537:                                              ; preds = %533
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #7
  store i8 0, ptr %17, align 1, !tbaa !79
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #7
  store i32 0, ptr %18, align 4, !tbaa !80
  br label %538

538:                                              ; preds = %557, %537
  %539 = load i32, ptr %18, align 4, !tbaa !80
  %540 = icmp slt i32 %539, 16
  br i1 %540, label %542, label %541

541:                                              ; preds = %538
  store i32 11, ptr %14, align 4
  br label %560

542:                                              ; preds = %538
  %543 = load ptr, ptr %8, align 8, !tbaa !5
  %544 = load i32, ptr %18, align 4, !tbaa !80
  %545 = call noundef ptr @_ZN7glslang10TQualifier22getBlendEquationStringENS_19TBlendEquationShiftE(i32 noundef %544)
  %546 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %543, ptr noundef %545)
  br i1 %546, label %547, label %556

547:                                              ; preds = %542
  %548 = load ptr, ptr %6, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %548, i32 noundef 8, i32 noundef 320, ptr noundef @.str.592, ptr noundef @.str.383)
  %549 = load ptr, ptr %6, align 8, !tbaa !5
  call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %549, i32 noundef -9, i32 noundef 0, ptr noundef @.str.592, ptr noundef @.str.383)
  %550 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %19, i32 0, i32 7
  %551 = load ptr, ptr %550, align 8, !tbaa !61
  %552 = load i32, ptr %18, align 4, !tbaa !80
  call void @_ZN7glslang13TIntermediate16addBlendEquationENS_19TBlendEquationShiftE(ptr noundef nonnull align 8 dereferenceable(1784) %551, i32 noundef %552)
  %553 = load ptr, ptr %7, align 8, !tbaa !5
  %554 = getelementptr inbounds %"class.glslang::TPublicType", ptr %553, i32 0, i32 3
  %555 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %554, i32 0, i32 14
  store i8 1, ptr %555, align 8, !tbaa !82
  store i8 1, ptr %17, align 1, !tbaa !79
  store i32 11, ptr %14, align 4
  br label %560

556:                                              ; preds = %542
  br label %557

557:                                              ; preds = %556
  %558 = load i32, ptr %18, align 4, !tbaa !80
  %559 = add nsw i32 %558, 1
  store i32 %559, ptr %18, align 4, !tbaa !80
  br label %538, !llvm.loop !83

560:                                              ; preds = %547, %541
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #7
  br label %561

561:                                              ; preds = %560
  %562 = load i8, ptr %17, align 1, !tbaa !79, !range !34, !noundef !35
  %563 = trunc i8 %562 to i1
  br i1 %563, label %569, label %564

564:                                              ; preds = %561
  %565 = load ptr, ptr %6, align 8, !tbaa !5
  %566 = load ptr, ptr %19, align 8, !tbaa !36
  %567 = getelementptr inbounds ptr, ptr %566, i64 42
  %568 = load ptr, ptr %567, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %568(ptr noundef nonnull align 8 dereferenceable(1176) %19, ptr noundef nonnull align 8 dereferenceable(24) %565, ptr noundef @.str.593, ptr noundef @.str.591, ptr noundef @.str.2)
  br label %569

569:                                              ; preds = %564, %561
  store i32 1, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #7
  br label %706

570:                                              ; preds = %533
  %571 = load ptr, ptr %8, align 8, !tbaa !5
  %572 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %571, ptr noundef @.str.594)
  br i1 %572, label %573, label %581

573:                                              ; preds = %570
  %574 = load ptr, ptr %6, align 8, !tbaa !5
  %575 = load ptr, ptr %19, align 8, !tbaa !36
  %576 = getelementptr inbounds ptr, ptr %575, i64 5
  %577 = load ptr, ptr %576, align 8
  call void %577(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %574, i32 noundef 1, ptr noundef @_ZN7glslangL37E_GL_NV_sample_mask_override_coverageE, ptr noundef @.str.595)
  %578 = load ptr, ptr %7, align 8, !tbaa !5
  %579 = getelementptr inbounds %"class.glslang::TPublicType", ptr %578, i32 0, i32 3
  %580 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %579, i32 0, i32 17
  store i8 1, ptr %580, align 4, !tbaa !84
  br label %706

581:                                              ; preds = %570
  br label %582

582:                                              ; preds = %581, %407
  %583 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %19, i32 0, i32 5
  %584 = load i32, ptr %583, align 4, !tbaa !62
  %585 = icmp eq i32 %584, 0
  br i1 %585, label %598, label %586

586:                                              ; preds = %582
  %587 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %19, i32 0, i32 5
  %588 = load i32, ptr %587, align 4, !tbaa !62
  %589 = icmp eq i32 %588, 1
  br i1 %589, label %598, label %590

590:                                              ; preds = %586
  %591 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %19, i32 0, i32 5
  %592 = load i32, ptr %591, align 4, !tbaa !62
  %593 = icmp eq i32 %592, 2
  br i1 %593, label %598, label %594

594:                                              ; preds = %590
  %595 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %19, i32 0, i32 5
  %596 = load i32, ptr %595, align 4, !tbaa !62
  %597 = icmp eq i32 %596, 3
  br i1 %597, label %598, label %610

598:                                              ; preds = %594, %590, %586, %582
  %599 = load ptr, ptr %8, align 8, !tbaa !5
  %600 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %599, ptr noundef @.str.596)
  br i1 %600, label %601, label %609

601:                                              ; preds = %598
  %602 = load ptr, ptr %6, align 8, !tbaa !5
  %603 = load ptr, ptr %19, align 8, !tbaa !36
  %604 = getelementptr inbounds ptr, ptr %603, i64 5
  %605 = load ptr, ptr %604, align 8
  call void %605(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %602, i32 noundef 1, ptr noundef @_ZN7glslangL23E_GL_NV_viewport_array2E, ptr noundef @.str.597)
  %606 = load ptr, ptr %7, align 8, !tbaa !5
  %607 = getelementptr inbounds %"class.glslang::TPublicType", ptr %606, i32 0, i32 2
  %608 = getelementptr inbounds %"class.glslang::TQualifier", ptr %607, i32 0, i32 12
  store i8 1, ptr %608, align 8, !tbaa !85
  br label %706

609:                                              ; preds = %598
  br label %659

610:                                              ; preds = %594
  %611 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %19, i32 0, i32 5
  %612 = load i32, ptr %611, align 4, !tbaa !62
  %613 = icmp eq i32 %612, 6
  br i1 %613, label %634, label %614

614:                                              ; preds = %610
  %615 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %19, i32 0, i32 5
  %616 = load i32, ptr %615, align 4, !tbaa !62
  %617 = icmp eq i32 %616, 7
  br i1 %617, label %634, label %618

618:                                              ; preds = %614
  %619 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %19, i32 0, i32 5
  %620 = load i32, ptr %619, align 4, !tbaa !62
  %621 = icmp eq i32 %620, 8
  br i1 %621, label %634, label %622

622:                                              ; preds = %618
  %623 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %19, i32 0, i32 5
  %624 = load i32, ptr %623, align 4, !tbaa !62
  %625 = icmp eq i32 %624, 9
  br i1 %625, label %634, label %626

626:                                              ; preds = %622
  %627 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %19, i32 0, i32 5
  %628 = load i32, ptr %627, align 4, !tbaa !62
  %629 = icmp eq i32 %628, 10
  br i1 %629, label %634, label %630

630:                                              ; preds = %626
  %631 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %19, i32 0, i32 5
  %632 = load i32, ptr %631, align 4, !tbaa !62
  %633 = icmp eq i32 %632, 11
  br i1 %633, label %634, label %658

634:                                              ; preds = %630, %626, %622, %618, %614, %610
  %635 = load ptr, ptr %8, align 8, !tbaa !5
  %636 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %635, ptr noundef @.str.598)
  br i1 %636, label %640, label %637

637:                                              ; preds = %634
  %638 = load ptr, ptr %8, align 8, !tbaa !5
  %639 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %638, ptr noundef @.str.599)
  br i1 %639, label %640, label %657

640:                                              ; preds = %637, %634
  %641 = load ptr, ptr %8, align 8, !tbaa !5
  %642 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %641, ptr noundef @.str.598)
  br i1 %642, label %643, label %648

643:                                              ; preds = %640
  %644 = load ptr, ptr %6, align 8, !tbaa !5
  %645 = load ptr, ptr %19, align 8, !tbaa !36
  %646 = getelementptr inbounds ptr, ptr %645, i64 5
  %647 = load ptr, ptr %646, align 8
  call void %647(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %644, i32 noundef 1, ptr noundef @_ZN7glslangL19E_GL_NV_ray_tracingE, ptr noundef @.str.600)
  br label %653

648:                                              ; preds = %640
  %649 = load ptr, ptr %6, align 8, !tbaa !5
  %650 = load ptr, ptr %19, align 8, !tbaa !36
  %651 = getelementptr inbounds ptr, ptr %650, i64 5
  %652 = load ptr, ptr %651, align 8
  call void %652(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %649, i32 noundef 1, ptr noundef @_ZN7glslangL20E_GL_EXT_ray_tracingE, ptr noundef @.str.601)
  br label %653

653:                                              ; preds = %648, %643
  %654 = load ptr, ptr %7, align 8, !tbaa !5
  %655 = getelementptr inbounds %"class.glslang::TPublicType", ptr %654, i32 0, i32 2
  %656 = getelementptr inbounds %"class.glslang::TQualifier", ptr %655, i32 0, i32 15
  store i8 1, ptr %656, align 8, !tbaa !86
  br label %706

657:                                              ; preds = %637
  br label %658

658:                                              ; preds = %657, %630
  br label %659

659:                                              ; preds = %658, %609
  %660 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %19, i32 0, i32 5
  %661 = load i32, ptr %660, align 4, !tbaa !62
  %662 = icmp eq i32 %661, 5
  br i1 %662, label %663, label %688

663:                                              ; preds = %659
  %664 = load ptr, ptr %8, align 8, !tbaa !5
  %665 = call noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE7compareEmmPKc(ptr noundef nonnull align 8 dereferenceable(40) %664, i64 noundef 0, i64 noundef 17, ptr noundef @.str.602)
  %666 = icmp eq i32 %665, 0
  br i1 %666, label %667, label %687

667:                                              ; preds = %663
  %668 = load ptr, ptr %6, align 8, !tbaa !5
  %669 = load ptr, ptr %19, align 8, !tbaa !36
  %670 = getelementptr inbounds ptr, ptr %669, i64 5
  %671 = load ptr, ptr %670, align 8
  call void %671(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %668, i32 noundef 1, ptr noundef @_ZN7glslangL34E_GL_NV_compute_shader_derivativesE, ptr noundef @.str.603)
  %672 = load ptr, ptr %8, align 8, !tbaa !5
  %673 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %672, ptr noundef @.str.604)
  br i1 %673, label %674, label %678

674:                                              ; preds = %667
  %675 = load ptr, ptr %7, align 8, !tbaa !5
  %676 = getelementptr inbounds %"class.glslang::TPublicType", ptr %675, i32 0, i32 3
  %677 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %676, i32 0, i32 18
  store i8 1, ptr %677, align 1, !tbaa !87
  br label %706

678:                                              ; preds = %667
  %679 = load ptr, ptr %8, align 8, !tbaa !5
  %680 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %679, ptr noundef @.str.605)
  br i1 %680, label %681, label %685

681:                                              ; preds = %678
  %682 = load ptr, ptr %7, align 8, !tbaa !5
  %683 = getelementptr inbounds %"class.glslang::TPublicType", ptr %682, i32 0, i32 3
  %684 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %683, i32 0, i32 19
  store i8 1, ptr %684, align 2, !tbaa !88
  br label %706

685:                                              ; preds = %678
  br label %686

686:                                              ; preds = %685
  br label %687

687:                                              ; preds = %686, %663
  br label %688

688:                                              ; preds = %687, %659
  %689 = load ptr, ptr %8, align 8, !tbaa !5
  %690 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %689, ptr noundef @.str.606)
  br i1 %690, label %691, label %699

691:                                              ; preds = %688
  %692 = load ptr, ptr %6, align 8, !tbaa !5
  %693 = load ptr, ptr %19, align 8, !tbaa !36
  %694 = getelementptr inbounds ptr, ptr %693, i64 5
  %695 = load ptr, ptr %694, align 8
  call void %695(ptr noundef nonnull align 8 dereferenceable(192) %19, ptr noundef nonnull align 8 dereferenceable(24) %692, i32 noundef 1, ptr noundef @_ZN7glslangL36E_GL_EXT_ray_flags_primitive_cullingE, ptr noundef @.str.607)
  %696 = load ptr, ptr %7, align 8, !tbaa !5
  %697 = getelementptr inbounds %"class.glslang::TPublicType", ptr %696, i32 0, i32 3
  %698 = getelementptr inbounds %"struct.glslang::TShaderQualifiers", ptr %697, i32 0, i32 21
  store i8 1, ptr %698, align 4, !tbaa !89
  br label %706

699:                                              ; preds = %688
  %700 = load ptr, ptr %6, align 8, !tbaa !5
  %701 = load ptr, ptr %8, align 8, !tbaa !5
  %702 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %701) #7
  %703 = load ptr, ptr %19, align 8, !tbaa !36
  %704 = getelementptr inbounds ptr, ptr %703, i64 42
  %705 = load ptr, ptr %704, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %705(ptr noundef nonnull align 8 dereferenceable(1176) %19, ptr noundef nonnull align 8 dereferenceable(24) %700, ptr noundef @.str.608, ptr noundef %702, ptr noundef @.str.2)
  br label %706

706:                                              ; preds = %699, %691, %681, %674, %653, %601, %573, %569, %531, %489, %464, %442, %435, %421, %401, %394, %386, %378, %370, %362, %354, %346, %338, %315, %308, %300, %292, %284, %272, %264, %248, %216, %205, %200, %143, %129, %118, %107, %100, %79, %72, %51, %40
  ret void

707:                                              ; preds = %531, %489, %200
  unreachable
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZSt9transformIN9__gnu_cxx17__normal_iteratorIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEEEESB_PDoFiiEET0_T_SF_SE_T1_(ptr, ptr, ptr, ptr noundef) #0

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

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

; Function Attrs: nounwind willreturn memory(read)
declare i32 @tolower(i32 noundef) #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN7glslang10TQualifier21getLayoutMatrixStringENS_13TLayoutMatrixE(i32 noundef) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN7glslang10TQualifier22getLayoutPackingStringENS_14TLayoutPackingE(i32 noundef) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN7glslang10TQualifier21getLayoutFormatStringENS_13TLayoutFormatE(i32 noundef) #0 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN7glslang10TQualifier22getVertexSpacingStringENS_14TVertexSpacingE(i32 noundef) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN7glslang10TQualifier20getVertexOrderStringENS_12TVertexOrderE(i32 noundef) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN7glslang10TQualifier20getLayoutDepthStringENS_12TLayoutDepthE(i32 noundef) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN7glslang10TQualifier26getInterlockOrderingStringENS_18TInterlockOrderingE(i32 noundef) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN7glslang10TQualifier22getBlendEquationStringENS_19TBlendEquationShiftE(i32 noundef) #0 align 2

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

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 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #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 = { 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 = { 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 willreturn memory(read) "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 #7 = { nounwind }
attributes #8 = { noreturn 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 = !{!10, !11, i64 48}
!34 = !{i8 0, i8 2}
!35 = !{}
!36 = !{!37, !37, i64 0}
!37 = !{!"vtable pointer", !8, i64 0}
!38 = !{!39, !39, i64 0}
!39 = !{!"_ZTSN7glslang13TLayoutFormatE", !7, i64 0}
!40 = distinct !{!40, !41}
!41 = !{!"llvm.loop.mustprogress"}
!42 = !{!43, !11, i64 53}
!43 = !{!"_ZTSN7glslang11TPublicTypeE", !44, i64 0, !45, i64 4, !47, i64 8, !53, i64 80, !13, i64 168, !13, i64 168, !13, i64 169, !11, i64 169, !6, i64 176, !6, i64 184, !59, i64 192, !6, i64 216, !6, i64 224}
!44 = !{!"_ZTSN7glslang10TBasicTypeE", !7, i64 0}
!45 = !{!"_ZTSN7glslang8TSamplerE", !44, i64 0, !46, i64 1, !11, i64 2, !11, i64 2, !11, i64 2, !11, i64 2, !11, i64 2, !11, i64 2, !13, i64 2, !13, i64 3, !11, i64 3, !11, i64 3}
!46 = !{!"_ZTSN7glslang11TSamplerDimE", !7, i64 0}
!47 = !{!"_ZTSN7glslang10TQualifierE", !6, i64 0, !48, i64 8, !49, i64 8, !49, i64 9, !50, i64 11, !11, i64 11, !11, i64 11, !11, i64 11, !11, i64 11, !11, i64 11, !11, i64 12, !11, i64 12, !11, i64 12, !11, i64 12, !11, i64 12, !11, i64 12, !11, i64 12, !11, i64 12, !11, i64 13, !11, i64 13, !11, i64 13, !11, i64 13, !11, i64 13, !11, i64 13, !11, i64 13, !11, i64 13, !11, i64 14, !11, i64 14, !11, i64 14, !11, i64 14, !11, i64 14, !11, i64 14, !11, i64 14, !11, i64 14, !11, i64 15, !11, i64 15, !11, i64 15, !51, i64 15, !52, i64 16, !13, i64 20, !13, i64 24, !13, i64 28, !13, i64 29, !13, i64 29, !13, i64 32, !13, i64 34, !13, i64 35, !13, i64 36, !13, i64 36, !13, i64 38, !13, i64 40, !13, i64 41, !13, i64 42, !39, i64 44, !11, i64 45, !11, i64 46, !11, i64 47, !11, i64 48, !13, i64 52, !11, i64 56, !13, i64 60, !6, i64 64}
!48 = !{!"_ZTSN7glslang17TStorageQualifierE", !7, i64 0}
!49 = !{!"_ZTSN7glslang16TBuiltInVariableE", !7, i64 0}
!50 = !{!"_ZTSN7glslang19TPrecisionQualifierE", !7, i64 0}
!51 = !{!"_ZTSN7glslang13TLayoutMatrixE", !7, i64 0}
!52 = !{!"_ZTSN7glslang14TLayoutPackingE", !7, i64 0}
!53 = !{!"_ZTSN7glslang17TShaderQualifiersE", !54, i64 0, !11, i64 4, !11, i64 5, !13, i64 8, !13, i64 12, !55, i64 16, !56, i64 20, !11, i64 24, !7, i64 28, !7, i64 40, !7, i64 44, !11, i64 56, !11, i64 57, !57, i64 60, !11, i64 64, !13, i64 68, !58, i64 72, !11, i64 76, !11, i64 77, !11, i64 78, !13, i64 80, !11, i64 84}
!54 = !{!"_ZTSN7glslang15TLayoutGeometryE", !7, i64 0}
!55 = !{!"_ZTSN7glslang14TVertexSpacingE", !7, i64 0}
!56 = !{!"_ZTSN7glslang12TVertexOrderE", !7, i64 0}
!57 = !{!"_ZTSN7glslang12TLayoutDepthE", !7, i64 0}
!58 = !{!"_ZTSN7glslang18TInterlockOrderingE", !7, i64 0}
!59 = !{!"_ZTSN7glslang10TSourceLocE", !6, i64 0, !13, i64 8, !13, i64 12, !13, i64 16}
!60 = !{!43, !11, i64 54}
!61 = !{!10, !6, i64 56}
!62 = !{!10, !14, i64 28}
!63 = !{!43, !54, i64 80}
!64 = !{!43, !11, i64 55}
!65 = !{!43, !55, i64 96}
!66 = !{!43, !56, i64 100}
!67 = !{!43, !11, i64 104}
!68 = !{!10, !12, i64 12}
!69 = !{!43, !11, i64 85}
!70 = !{!43, !11, i64 84}
!71 = !{!43, !11, i64 136}
!72 = !{!43, !11, i64 137}
!73 = !{!57, !57, i64 0}
!74 = !{!43, !57, i64 140}
!75 = distinct !{!75, !41}
!76 = !{!58, !58, i64 0}
!77 = !{!43, !58, i64 152}
!78 = distinct !{!78, !41}
!79 = !{!11, !11, i64 0}
!80 = !{!81, !81, i64 0}
!81 = !{!"_ZTSN7glslang19TBlendEquationShiftE", !7, i64 0}
!82 = !{!43, !11, i64 144}
!83 = distinct !{!83, !41}
!84 = !{!43, !11, i64 156}
!85 = !{!43, !11, i64 56}
!86 = !{!43, !11, i64 64}
!87 = !{!43, !11, i64 157}
!88 = !{!43, !11, i64 158}
!89 = !{!43, !11, i64 164}


; 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.68 = external hidden unnamed_addr constant [113 x i8], align 1
@_ZN7glslangL28E_GL_EXT_scalar_block_layoutE = external hidden constant ptr, align 8
@.str.383 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.567 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.568 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.569 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.570 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.571 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.572 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.573 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.574 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.575 = external hidden unnamed_addr constant [17 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
@_ZN7glslangL25E_GL_EXT_buffer_referenceE = external hidden constant ptr, align 8
@.str.578 = external hidden unnamed_addr constant [12 x i8], align 1
@_ZN7glslangL36E_SPV_NV_geometry_shader_passthroughE = external hidden constant ptr, align 8
@.str.579 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.580 = external hidden unnamed_addr constant [34 x i8], align 1
@__PRETTY_FUNCTION__._ZN7glslang13TParseContext18setLayoutQualifierERKNS_10TSourceLocERNS_11TPublicTypeERNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE = external hidden unnamed_addr constant [94 x i8], align 1
@.str.581 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.582 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.583 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.584 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.585 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.586 = external hidden unnamed_addr constant [20 x i8], align 1
@_ZN7glslangL23post_depth_coverageEXTsE = external hidden constant [2 x ptr], align 16
@.str.587 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.588 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.589 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.590 = external hidden unnamed_addr constant [43 x i8], align 1
@_ZN7glslangL34E_GL_ARB_fragment_shader_interlockE = external hidden constant ptr, align 8
@_ZN7glslangL26E_GL_NV_shading_rate_imageE = external hidden constant ptr, align 8
@.str.591 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.592 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.593 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.594 = external hidden unnamed_addr constant [18 x i8], align 1
@_ZN7glslangL37E_GL_NV_sample_mask_override_coverageE = external hidden constant ptr, align 8
@.str.595 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.596 = external hidden unnamed_addr constant [18 x i8], align 1
@_ZN7glslangL23E_GL_NV_viewport_array2E = external hidden constant ptr, align 8
@.str.597 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.598 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.599 = external hidden unnamed_addr constant [16 x i8], align 1
@_ZN7glslangL19E_GL_NV_ray_tracingE = external hidden constant ptr, align 8
@.str.600 = external hidden unnamed_addr constant [17 x i8], align 1
@_ZN7glslangL20E_GL_EXT_ray_tracingE = external hidden constant ptr, align 8
@.str.601 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.602 = external hidden unnamed_addr constant [18 x i8], align 1
@_ZN7glslangL34E_GL_NV_compute_shader_derivativesE = external hidden constant ptr, align 8
@.str.603 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.604 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.605 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.606 = external hidden unnamed_addr constant [18 x i8], align 1
@_ZN7glslangL36E_GL_EXT_ray_flags_primitive_cullingE = external hidden constant ptr, align 8
@.str.607 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.608 = external hidden unnamed_addr constant [85 x i8], align 1

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

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

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 #2

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 #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN7glslang10TQualifier17getGeometryStringENS_15TLayoutGeometryE(i32 noundef) local_unnamed_addr #0 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE7compareEmmPKc(ptr noundef nonnull align 8 dereferenceable(40), i64 noundef, i64 noundef, ptr noundef) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7glslang13TParseContext18setLayoutQualifierERKNS_10TSourceLocERNS_11TPublicTypeERNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE(ptr noundef nonnull align 8 dereferenceable(24912) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr nocapture noundef nonnull align 8 dereferenceable(232) %2, ptr noundef nonnull align 8 dereferenceable(40) %3) local_unnamed_addr #4 align 2 {
  %5 = tail call ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(40) %3) #6
  %6 = tail call ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE3endEv(ptr noundef nonnull align 8 dereferenceable(40) %3) #6
  %7 = tail call ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5beginEv(ptr noundef nonnull align 8 dereferenceable(40) %3) #6
  %8 = tail call ptr @_ZSt9transformIN9__gnu_cxx17__normal_iteratorIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEEEESB_PDoFiiEET0_T_SF_SE_T1_(ptr %5, ptr %6, ptr %7, ptr noundef nonnull @tolower)
  %9 = tail call noundef ptr @_ZN7glslang10TQualifier21getLayoutMatrixStringENS_13TLayoutMatrixE(i32 noundef 2)
  %10 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %9)
  br i1 %10, label %11, label %16

11:                                               ; preds = %4
  %12 = getelementptr inbounds i8, ptr %2, i64 16
  %13 = load i64, ptr %12, align 8
  %14 = and i64 %13, -4035225266123964417
  %15 = or disjoint i64 %14, 1152921504606846976
  store i64 %15, ptr %12, align 8
  br label %394

16:                                               ; preds = %4
  %17 = tail call noundef ptr @_ZN7glslang10TQualifier21getLayoutMatrixStringENS_13TLayoutMatrixE(i32 noundef 1)
  %18 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %17)
  br i1 %18, label %19, label %24

19:                                               ; preds = %16
  %20 = getelementptr inbounds i8, ptr %2, i64 16
  %21 = load i64, ptr %20, align 8
  %22 = and i64 %21, -4035225266123964417
  %23 = or disjoint i64 %22, 576460752303423488
  store i64 %23, ptr %20, align 8
  br label %394

24:                                               ; preds = %16
  %25 = tail call noundef ptr @_ZN7glslang10TQualifier22getLayoutPackingStringENS_14TLayoutPackingE(i32 noundef 4)
  %26 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %25)
  br i1 %26, label %27, label %43

27:                                               ; preds = %24
  %28 = getelementptr inbounds i8, ptr %0, i64 32
  %29 = load i32, ptr %28, align 8, !tbaa !5
  %.not174 = icmp eq i32 %29, 0
  br i1 %.not174, label %38, label %30

30:                                               ; preds = %27
  %31 = getelementptr inbounds i8, ptr %0, i64 48
  %32 = load i8, ptr %31, align 8, !tbaa !32, !range !33, !noundef !34
  %33 = trunc nuw i8 %32 to i1
  br i1 %33, label %394, label %34

34:                                               ; preds = %30
  %35 = load ptr, ptr %0, align 8, !tbaa !35
  %36 = getelementptr inbounds i8, ptr %35, i64 296
  %37 = load ptr, ptr %36, align 8
  tail call void %37(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.567)
  br label %38

38:                                               ; preds = %34, %27
  %39 = getelementptr inbounds i8, ptr %2, i64 24
  %40 = load i8, ptr %39, align 8
  %41 = and i8 %40, -16
  %42 = or disjoint i8 %41, 4
  store i8 %42, ptr %39, align 8
  br label %394

43:                                               ; preds = %24
  %44 = tail call noundef ptr @_ZN7glslang10TQualifier22getLayoutPackingStringENS_14TLayoutPackingE(i32 noundef 1)
  %45 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %44)
  br i1 %45, label %46, label %62

46:                                               ; preds = %43
  %47 = getelementptr inbounds i8, ptr %0, i64 32
  %48 = load i32, ptr %47, align 8, !tbaa !5
  %.not = icmp eq i32 %48, 0
  br i1 %.not, label %57, label %49

49:                                               ; preds = %46
  %50 = getelementptr inbounds i8, ptr %0, i64 48
  %51 = load i8, ptr %50, align 8, !tbaa !32, !range !33, !noundef !34
  %52 = trunc nuw i8 %51 to i1
  br i1 %52, label %394, label %53

53:                                               ; preds = %49
  %54 = load ptr, ptr %0, align 8, !tbaa !35
  %55 = getelementptr inbounds i8, ptr %54, i64 296
  %56 = load ptr, ptr %55, align 8
  tail call void %56(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.568)
  br label %57

57:                                               ; preds = %53, %46
  %58 = getelementptr inbounds i8, ptr %2, i64 24
  %59 = load i8, ptr %58, align 8
  %60 = and i8 %59, -16
  %61 = or disjoint i8 %60, 1
  store i8 %61, ptr %58, align 8
  br label %394

62:                                               ; preds = %43
  %63 = tail call noundef ptr @_ZN7glslang10TQualifier22getLayoutPackingStringENS_14TLayoutPackingE(i32 noundef 2)
  %64 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %63)
  br i1 %64, label %65, label %70

65:                                               ; preds = %62
  %66 = getelementptr inbounds i8, ptr %2, i64 24
  %67 = load i8, ptr %66, align 8
  %68 = and i8 %67, -16
  %69 = or disjoint i8 %68, 2
  store i8 %69, ptr %66, align 8
  br label %394

70:                                               ; preds = %62
  %71 = tail call noundef ptr @_ZN7glslang10TQualifier22getLayoutPackingStringENS_14TLayoutPackingE(i32 noundef 3)
  %72 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %71)
  br i1 %72, label %73, label %78

73:                                               ; preds = %70
  tail call void @_ZN7glslang14TParseVersions14requireProfileERKNS_10TSourceLocEiPKc(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 14, ptr noundef nonnull @.str.569)
  tail call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 6, i32 noundef 430, ptr noundef nonnull @.str.570, ptr noundef nonnull @.str.569)
  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.569)
  %74 = getelementptr inbounds i8, ptr %2, i64 24
  %75 = load i8, ptr %74, align 8
  %76 = and i8 %75, -16
  %77 = or disjoint i8 %76, 3
  store i8 %77, ptr %74, align 8
  br label %394

78:                                               ; preds = %70
  %79 = tail call noundef ptr @_ZN7glslang10TQualifier22getLayoutPackingStringENS_14TLayoutPackingE(i32 noundef 5)
  %80 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %79)
  br i1 %80, label %81, label %.preheader196

81:                                               ; preds = %78
  %82 = load ptr, ptr %0, align 8, !tbaa !35
  %83 = getelementptr inbounds i8, ptr %82, i64 312
  %84 = load ptr, ptr %83, align 8
  tail call void %84(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.571)
  %85 = load ptr, ptr %0, align 8, !tbaa !35
  %86 = getelementptr inbounds i8, ptr %85, i64 40
  %87 = load ptr, ptr %86, align 8
  tail call void %87(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 1, ptr noundef nonnull @_ZN7glslangL28E_GL_EXT_scalar_block_layoutE, ptr noundef nonnull @.str.572)
  %88 = getelementptr inbounds i8, ptr %2, i64 24
  %89 = load i8, ptr %88, align 8
  %90 = and i8 %89, -16
  %91 = or disjoint i8 %90, 5
  store i8 %91, ptr %88, align 8
  br label %394

.preheader196:                                    ; preds = %78, %99
  %.0170201 = phi i32 [ %100, %99 ], [ 1, %78 ]
  %92 = tail call noundef ptr @_ZN7glslang10TQualifier21getLayoutFormatStringENS_13TLayoutFormatE(i32 noundef %.0170201)
  %93 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %92)
  br i1 %93, label %94, label %99

94:                                               ; preds = %.preheader196
  %95 = add nsw i32 %.0170201, -7
  %or.cond = icmp ult i32 %95, 15
  %96 = add nsw i32 %.0170201, -28
  %or.cond3 = icmp ult i32 %96, 6
  %or.cond175 = select i1 %or.cond, i1 true, i1 %or.cond3
  %97 = icmp ugt i32 %.0170201, 39
  %or.cond176 = or i1 %97, %or.cond175
  br i1 %or.cond176, label %98, label %101

98:                                               ; preds = %94
  tail call void @_ZN7glslang14TParseVersions14requireProfileERKNS_10TSourceLocEiPKc(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 7, ptr noundef nonnull @.str.573)
  br label %101

99:                                               ; preds = %.preheader196
  %100 = add nuw nsw i32 %.0170201, 1
  %exitcond.not = icmp eq i32 %100, 47
  br i1 %exitcond.not, label %104, label %.preheader196, !llvm.loop !37

101:                                              ; preds = %98, %94
  tail call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 7, i32 noundef 420, ptr noundef nonnull @.str.574, ptr noundef nonnull @.str.575)
  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 nonnull @.str.574, ptr noundef nonnull @.str.575)
  %102 = getelementptr inbounds i8, ptr %2, i64 52
  %103 = trunc nuw i32 %.0170201 to i8
  store i8 %103, ptr %102, align 4
  br label %394

104:                                              ; preds = %99
  %105 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.576)
  br i1 %105, label %106, label %111

106:                                              ; preds = %104
  %107 = load ptr, ptr %0, align 8, !tbaa !35
  %108 = getelementptr inbounds i8, ptr %107, i64 312
  %109 = load ptr, ptr %108, align 8
  tail call void %109(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.576)
  %110 = getelementptr inbounds i8, ptr %2, i64 53
  store i8 1, ptr %110, align 1, !tbaa !39
  br label %394

111:                                              ; preds = %104
  %112 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.577)
  br i1 %112, label %113, label %124

113:                                              ; preds = %111
  %114 = load ptr, ptr %0, align 8, !tbaa !35
  %115 = getelementptr inbounds i8, ptr %114, i64 312
  %116 = load ptr, ptr %115, align 8
  tail call void %116(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.577)
  %117 = load ptr, ptr %0, align 8, !tbaa !35
  %118 = getelementptr inbounds i8, ptr %117, i64 40
  %119 = load ptr, ptr %118, align 8
  tail call void %119(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 1, ptr noundef nonnull @_ZN7glslangL25E_GL_EXT_buffer_referenceE, ptr noundef nonnull @.str.577)
  %120 = getelementptr inbounds i8, ptr %2, i64 54
  store i8 1, ptr %120, align 2, !tbaa !58
  %121 = getelementptr inbounds i8, ptr %0, i64 56
  %122 = load ptr, ptr %121, align 8, !tbaa !59
  tail call void @_ZN7glslang13TIntermediate19setUseStorageBufferEv(ptr noundef nonnull align 8 dereferenceable(1784) %122)
  %123 = load ptr, ptr %121, align 8, !tbaa !59
  tail call void @_ZN7glslang13TIntermediate27setUsePhysicalStorageBufferEv(ptr noundef nonnull align 8 dereferenceable(1784) %123)
  br label %394

124:                                              ; preds = %111
  %125 = getelementptr inbounds i8, ptr %0, i64 28
  %126 = load i32, ptr %125, align 4, !tbaa !60
  switch i32 %126, label %221 [
    i32 3, label %127
    i32 2, label %127
    i32 13, label %127
  ]

127:                                              ; preds = %124, %124, %124
  %128 = tail call noundef ptr @_ZN7glslang10TQualifier17getGeometryStringENS_15TLayoutGeometryE(i32 noundef 5)
  %129 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %128)
  br i1 %129, label %130, label %132

130:                                              ; preds = %127
  %131 = getelementptr inbounds i8, ptr %2, i64 80
  store i32 5, ptr %131, align 8, !tbaa !61
  br label %394

132:                                              ; preds = %127
  %133 = load i32, ptr %125, align 4, !tbaa !60
  switch i32 %133, label %176 [
    i32 3, label %134
    i32 13, label %134
    i32 2, label %177
  ]

134:                                              ; preds = %132, %132
  %135 = tail call noundef ptr @_ZN7glslang10TQualifier17getGeometryStringENS_15TLayoutGeometryE(i32 noundef 1)
  %136 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %135)
  br i1 %136, label %137, label %139

137:                                              ; preds = %134
  %138 = getelementptr inbounds i8, ptr %2, i64 80
  store i32 1, ptr %138, align 8, !tbaa !61
  br label %394

139:                                              ; preds = %134
  %140 = tail call noundef ptr @_ZN7glslang10TQualifier17getGeometryStringENS_15TLayoutGeometryE(i32 noundef 2)
  %141 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %140)
  br i1 %141, label %142, label %144

142:                                              ; preds = %139
  %143 = getelementptr inbounds i8, ptr %2, i64 80
  store i32 2, ptr %143, align 8, !tbaa !61
  br label %394

144:                                              ; preds = %139
  %145 = load i32, ptr %125, align 4, !tbaa !60
  %146 = icmp eq i32 %145, 3
  br i1 %146, label %147, label %221

147:                                              ; preds = %144
  %148 = tail call noundef ptr @_ZN7glslang10TQualifier17getGeometryStringENS_15TLayoutGeometryE(i32 noundef 4)
  %149 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %148)
  br i1 %149, label %150, label %152

150:                                              ; preds = %147
  %151 = getelementptr inbounds i8, ptr %2, i64 80
  store i32 4, ptr %151, align 8, !tbaa !61
  br label %394

152:                                              ; preds = %147
  %153 = tail call noundef ptr @_ZN7glslang10TQualifier17getGeometryStringENS_15TLayoutGeometryE(i32 noundef 3)
  %154 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %153)
  br i1 %154, label %155, label %157

155:                                              ; preds = %152
  %156 = getelementptr inbounds i8, ptr %2, i64 80
  store i32 3, ptr %156, align 8, !tbaa !61
  br label %394

157:                                              ; preds = %152
  %158 = tail call noundef ptr @_ZN7glslang10TQualifier17getGeometryStringENS_15TLayoutGeometryE(i32 noundef 6)
  %159 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %158)
  br i1 %159, label %160, label %162

160:                                              ; preds = %157
  %161 = getelementptr inbounds i8, ptr %2, i64 80
  store i32 6, ptr %161, align 8, !tbaa !61
  br label %394

162:                                              ; preds = %157
  %163 = tail call noundef ptr @_ZN7glslang10TQualifier17getGeometryStringENS_15TLayoutGeometryE(i32 noundef 7)
  %164 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %163)
  br i1 %164, label %165, label %167

165:                                              ; preds = %162
  %166 = getelementptr inbounds i8, ptr %2, i64 80
  store i32 7, ptr %166, align 8, !tbaa !61
  br label %394

167:                                              ; preds = %162
  %168 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.578)
  br i1 %168, label %169, label %thread-pre-split

169:                                              ; preds = %167
  %170 = load ptr, ptr %0, align 8, !tbaa !35
  %171 = getelementptr inbounds i8, ptr %170, i64 40
  %172 = load ptr, ptr %171, align 8
  tail call void %172(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 1, ptr noundef nonnull @_ZN7glslangL36E_SPV_NV_geometry_shader_passthroughE, ptr noundef nonnull @.str.579)
  %173 = getelementptr inbounds i8, ptr %2, i64 55
  store i8 1, ptr %173, align 1, !tbaa !62
  %174 = getelementptr inbounds i8, ptr %0, i64 56
  %175 = load ptr, ptr %174, align 8, !tbaa !59
  tail call void @_ZN7glslang13TIntermediate20setGeoPassthroughEXTEv(ptr noundef nonnull align 8 dereferenceable(1784) %175)
  br label %394

176:                                              ; preds = %132
  tail call void @__assert_fail(ptr noundef nonnull @.str.580, ptr noundef nonnull @.str.68, i32 noundef 5478, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN7glslang13TParseContext18setLayoutQualifierERKNS_10TSourceLocERNS_11TPublicTypeERNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE) #7
  unreachable

177:                                              ; preds = %132
  %178 = tail call noundef ptr @_ZN7glslang10TQualifier17getGeometryStringENS_15TLayoutGeometryE(i32 noundef 5)
  %179 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %178)
  br i1 %179, label %180, label %182

180:                                              ; preds = %177
  %181 = getelementptr inbounds i8, ptr %2, i64 80
  store i32 5, ptr %181, align 8, !tbaa !61
  br label %394

182:                                              ; preds = %177
  %183 = tail call noundef ptr @_ZN7glslang10TQualifier17getGeometryStringENS_15TLayoutGeometryE(i32 noundef 8)
  %184 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %183)
  br i1 %184, label %185, label %187

185:                                              ; preds = %182
  %186 = getelementptr inbounds i8, ptr %2, i64 80
  store i32 8, ptr %186, align 8, !tbaa !61
  br label %394

187:                                              ; preds = %182
  %188 = tail call noundef ptr @_ZN7glslang10TQualifier17getGeometryStringENS_15TLayoutGeometryE(i32 noundef 9)
  %189 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %188)
  br i1 %189, label %190, label %192

190:                                              ; preds = %187
  %191 = getelementptr inbounds i8, ptr %2, i64 80
  store i32 9, ptr %191, align 8, !tbaa !61
  br label %394

192:                                              ; preds = %187
  %193 = tail call noundef ptr @_ZN7glslang10TQualifier22getVertexSpacingStringENS_14TVertexSpacingE(i32 noundef 1)
  %194 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %193)
  br i1 %194, label %195, label %197

195:                                              ; preds = %192
  %196 = getelementptr inbounds i8, ptr %2, i64 96
  store i32 1, ptr %196, align 8, !tbaa !63
  br label %394

197:                                              ; preds = %192
  %198 = tail call noundef ptr @_ZN7glslang10TQualifier22getVertexSpacingStringENS_14TVertexSpacingE(i32 noundef 2)
  %199 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %198)
  br i1 %199, label %200, label %202

200:                                              ; preds = %197
  %201 = getelementptr inbounds i8, ptr %2, i64 96
  store i32 2, ptr %201, align 8, !tbaa !63
  br label %394

202:                                              ; preds = %197
  %203 = tail call noundef ptr @_ZN7glslang10TQualifier22getVertexSpacingStringENS_14TVertexSpacingE(i32 noundef 3)
  %204 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %203)
  br i1 %204, label %205, label %207

205:                                              ; preds = %202
  %206 = getelementptr inbounds i8, ptr %2, i64 96
  store i32 3, ptr %206, align 8, !tbaa !63
  br label %394

207:                                              ; preds = %202
  %208 = tail call noundef ptr @_ZN7glslang10TQualifier20getVertexOrderStringENS_12TVertexOrderE(i32 noundef 1)
  %209 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %208)
  br i1 %209, label %210, label %212

210:                                              ; preds = %207
  %211 = getelementptr inbounds i8, ptr %2, i64 100
  store i32 1, ptr %211, align 4, !tbaa !64
  br label %394

212:                                              ; preds = %207
  %213 = tail call noundef ptr @_ZN7glslang10TQualifier20getVertexOrderStringENS_12TVertexOrderE(i32 noundef 2)
  %214 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %213)
  br i1 %214, label %215, label %217

215:                                              ; preds = %212
  %216 = getelementptr inbounds i8, ptr %2, i64 100
  store i32 2, ptr %216, align 4, !tbaa !64
  br label %394

217:                                              ; preds = %212
  %218 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.581)
  br i1 %218, label %219, label %thread-pre-split

219:                                              ; preds = %217
  %220 = getelementptr inbounds i8, ptr %2, i64 104
  store i8 1, ptr %220, align 8, !tbaa !65
  br label %394

thread-pre-split:                                 ; preds = %217, %167
  %.pr = load i32, ptr %125, align 4, !tbaa !60
  br label %221

221:                                              ; preds = %thread-pre-split, %124, %144
  %222 = phi i32 [ %.pr, %thread-pre-split ], [ %126, %124 ], [ %145, %144 ]
  %223 = icmp eq i32 %222, 4
  br i1 %223, label %224, label %343

224:                                              ; preds = %221
  %225 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.582)
  br i1 %225, label %226, label %233

226:                                              ; preds = %224
  tail call void @_ZN7glslang14TParseVersions14requireProfileERKNS_10TSourceLocEiPKc(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 7, ptr noundef nonnull @.str.582)
  %227 = getelementptr inbounds i8, ptr %0, i64 12
  %228 = load i32, ptr %227, align 4, !tbaa !66
  %229 = icmp eq i32 %228, 1
  br i1 %229, label %230, label %231

230:                                              ; preds = %226
  tail call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 6, i32 noundef 140, ptr noundef nonnull @.str.583, ptr noundef nonnull @.str.582)
  br label %231

231:                                              ; preds = %230, %226
  %232 = getelementptr inbounds i8, ptr %2, i64 85
  store i8 1, ptr %232, align 1, !tbaa !67
  br label %394

233:                                              ; preds = %224
  %234 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.584)
  br i1 %234, label %235, label %242

235:                                              ; preds = %233
  tail call void @_ZN7glslang14TParseVersions14requireProfileERKNS_10TSourceLocEiPKc(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 7, ptr noundef nonnull @.str.584)
  %236 = getelementptr inbounds i8, ptr %0, i64 12
  %237 = load i32, ptr %236, align 4, !tbaa !66
  %238 = icmp eq i32 %237, 1
  br i1 %238, label %239, label %240

239:                                              ; preds = %235
  tail call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 6, i32 noundef 140, ptr noundef nonnull @.str.583, ptr noundef nonnull @.str.584)
  br label %240

240:                                              ; preds = %239, %235
  %241 = getelementptr inbounds i8, ptr %2, i64 84
  store i8 1, ptr %241, align 4, !tbaa !68
  br label %394

242:                                              ; preds = %233
  %243 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.585)
  br i1 %243, label %244, label %246

244:                                              ; preds = %242
  tail call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 7, i32 noundef 420, ptr noundef nonnull @.str.574, ptr noundef nonnull @.str.585)
  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.585)
  %245 = getelementptr inbounds i8, ptr %2, i64 136
  store i8 1, ptr %245, align 8, !tbaa !69
  br label %394

246:                                              ; preds = %242
  %247 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.586)
  br i1 %247, label %250, label %.preheader195.preheader

.preheader195.preheader:                          ; preds = %246
  %248 = tail call noundef ptr @_ZN7glslang10TQualifier20getLayoutDepthStringENS_12TLayoutDepthE(i32 noundef 1)
  %249 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %248)
  br i1 %249, label %.thread184, label %.preheader195.1

250:                                              ; preds = %246
  %251 = load ptr, ptr %0, align 8, !tbaa !35
  %252 = getelementptr inbounds i8, ptr %251, i64 40
  %253 = load ptr, ptr %252, align 8
  tail call void %253(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 2, ptr noundef nonnull @_ZN7glslangL23post_depth_coverageEXTsE, ptr noundef nonnull @.str.587)
  %254 = load ptr, ptr %0, align 8, !tbaa !35
  %255 = getelementptr inbounds i8, ptr %254, i64 64
  %256 = load ptr, ptr %255, align 8
  %257 = tail call noundef zeroext i1 %256(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull @.str.588)
  br i1 %257, label %258, label %260

258:                                              ; preds = %250
  %259 = getelementptr inbounds i8, ptr %2, i64 136
  store i8 1, ptr %259, align 8, !tbaa !69
  br label %260

260:                                              ; preds = %258, %250
  %261 = getelementptr inbounds i8, ptr %2, i64 137
  store i8 1, ptr %261, align 1, !tbaa !70
  br label %394

.thread184:                                       ; preds = %.preheader195.3, %.preheader195.2, %.preheader195.1, %.preheader195.preheader
  %.0168202.lcssa = phi i32 [ 1, %.preheader195.preheader ], [ 2, %.preheader195.1 ], [ 3, %.preheader195.2 ], [ 4, %.preheader195.3 ]
  tail call void @_ZN7glslang14TParseVersions14requireProfileERKNS_10TSourceLocEiPKc(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 6, ptr noundef nonnull @.str.589)
  tail call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 6, i32 noundef 420, ptr noundef null, ptr noundef nonnull @.str.589)
  %262 = getelementptr inbounds i8, ptr %2, i64 140
  store i32 %.0168202.lcssa, ptr %262, align 4, !tbaa !71
  br label %394

.preheader195.1:                                  ; preds = %.preheader195.preheader
  %263 = tail call noundef ptr @_ZN7glslang10TQualifier20getLayoutDepthStringENS_12TLayoutDepthE(i32 noundef 2)
  %264 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %263)
  br i1 %264, label %.thread184, label %.preheader195.2

.preheader195.2:                                  ; preds = %.preheader195.1
  %265 = tail call noundef ptr @_ZN7glslang10TQualifier20getLayoutDepthStringENS_12TLayoutDepthE(i32 noundef 3)
  %266 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %265)
  br i1 %266, label %.thread184, label %.preheader195.3

.preheader195.3:                                  ; preds = %.preheader195.2
  %267 = tail call noundef ptr @_ZN7glslang10TQualifier20getLayoutDepthStringENS_12TLayoutDepthE(i32 noundef 4)
  %268 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %267)
  br i1 %268, label %.thread184, label %.preheader194.preheader

.preheader194.preheader:                          ; preds = %.preheader195.3
  %269 = tail call noundef ptr @_ZN7glslang10TQualifier26getInterlockOrderingStringENS_18TInterlockOrderingE(i32 noundef 1)
  %270 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %269)
  br i1 %270, label %271, label %.preheader194.1

271:                                              ; preds = %.preheader194.5, %.preheader194.4, %.preheader194.3, %.preheader194.2, %.preheader194.1, %.preheader194.preheader
  %.0167203.lcssa = phi i32 [ 1, %.preheader194.preheader ], [ 2, %.preheader194.1 ], [ 3, %.preheader194.2 ], [ 4, %.preheader194.3 ], [ 5, %.preheader194.4 ], [ 6, %.preheader194.5 ]
  tail call void @_ZN7glslang14TParseVersions14requireProfileERKNS_10TSourceLocEiPKc(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 6, ptr noundef nonnull @.str.590)
  tail call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 6, i32 noundef 450, ptr noundef null, ptr noundef nonnull @.str.590)
  %272 = tail call noundef ptr @_ZN7glslang10TQualifier26getInterlockOrderingStringENS_18TInterlockOrderingE(i32 noundef %.0167203.lcssa)
  %273 = load ptr, ptr %0, align 8, !tbaa !35
  %274 = getelementptr inbounds i8, ptr %273, i64 40
  %275 = load ptr, ptr %274, align 8
  tail call void %275(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 1, ptr noundef nonnull @_ZN7glslangL34E_GL_ARB_fragment_shader_interlockE, ptr noundef %272)
  %276 = add nsw i32 %.0167203.lcssa, -5
  %or.cond7 = icmp ult i32 %276, 2
  br i1 %or.cond7, label %277, label %295

277:                                              ; preds = %271
  %278 = tail call noundef ptr @_ZN7glslang10TQualifier26getInterlockOrderingStringENS_18TInterlockOrderingE(i32 noundef %.0167203.lcssa)
  %279 = load ptr, ptr %0, align 8, !tbaa !35
  %280 = getelementptr inbounds i8, ptr %279, i64 40
  %281 = load ptr, ptr %280, align 8
  tail call void %281(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 1, ptr noundef nonnull @_ZN7glslangL26E_GL_NV_shading_rate_imageE, ptr noundef %278)
  br label %295

.preheader194.1:                                  ; preds = %.preheader194.preheader
  %282 = tail call noundef ptr @_ZN7glslang10TQualifier26getInterlockOrderingStringENS_18TInterlockOrderingE(i32 noundef 2)
  %283 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %282)
  br i1 %283, label %271, label %.preheader194.2

.preheader194.2:                                  ; preds = %.preheader194.1
  %284 = tail call noundef ptr @_ZN7glslang10TQualifier26getInterlockOrderingStringENS_18TInterlockOrderingE(i32 noundef 3)
  %285 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %284)
  br i1 %285, label %271, label %.preheader194.3

.preheader194.3:                                  ; preds = %.preheader194.2
  %286 = tail call noundef ptr @_ZN7glslang10TQualifier26getInterlockOrderingStringENS_18TInterlockOrderingE(i32 noundef 4)
  %287 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %286)
  br i1 %287, label %271, label %.preheader194.4

.preheader194.4:                                  ; preds = %.preheader194.3
  %288 = tail call noundef ptr @_ZN7glslang10TQualifier26getInterlockOrderingStringENS_18TInterlockOrderingE(i32 noundef 5)
  %289 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %288)
  br i1 %289, label %271, label %.preheader194.5

.preheader194.5:                                  ; preds = %.preheader194.4
  %290 = tail call noundef ptr @_ZN7glslang10TQualifier26getInterlockOrderingStringENS_18TInterlockOrderingE(i32 noundef 6)
  %291 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %290)
  br i1 %291, label %271, label %292

292:                                              ; preds = %.preheader194.5
  %293 = tail call noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE7compareEmmPKc(ptr noundef nonnull align 8 dereferenceable(40) %3, i64 noundef 0, i64 noundef 13, ptr noundef nonnull @.str.591)
  %294 = icmp eq i32 %293, 0
  br i1 %294, label %.preheader.preheader, label %336

295:                                              ; preds = %277, %271
  %296 = getelementptr inbounds i8, ptr %2, i64 152
  store i32 %.0167203.lcssa, ptr %296, align 8, !tbaa !72
  br label %394

.preheader.preheader:                             ; preds = %292
  %297 = tail call noundef ptr @_ZN7glslang10TQualifier22getBlendEquationStringENS_19TBlendEquationShiftE(i32 noundef 0)
  %298 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %297)
  br i1 %298, label %299, label %.preheader.1

299:                                              ; preds = %.preheader.15, %.preheader.14, %.preheader.13, %.preheader.12, %.preheader.11, %.preheader.10, %.preheader.9, %.preheader.8, %.preheader.7, %.preheader.6, %.preheader.5, %.preheader.4, %.preheader.3, %.preheader.2, %.preheader.1, %.preheader.preheader
  %.0204.lcssa = phi i32 [ 0, %.preheader.preheader ], [ 1, %.preheader.1 ], [ 2, %.preheader.2 ], [ 3, %.preheader.3 ], [ 4, %.preheader.4 ], [ 5, %.preheader.5 ], [ 6, %.preheader.6 ], [ 7, %.preheader.7 ], [ 8, %.preheader.8 ], [ 9, %.preheader.9 ], [ 10, %.preheader.10 ], [ 11, %.preheader.11 ], [ 12, %.preheader.12 ], [ 13, %.preheader.13 ], [ 14, %.preheader.14 ], [ 15, %.preheader.15 ]
  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 320, ptr noundef nonnull @.str.592, ptr noundef nonnull @.str.383)
  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 0, ptr noundef nonnull @.str.592, ptr noundef nonnull @.str.383)
  %300 = getelementptr inbounds i8, ptr %0, i64 56
  %301 = load ptr, ptr %300, align 8, !tbaa !59
  tail call void @_ZN7glslang13TIntermediate16addBlendEquationENS_19TBlendEquationShiftE(ptr noundef nonnull align 8 dereferenceable(1784) %301, i32 noundef %.0204.lcssa)
  %302 = getelementptr inbounds i8, ptr %2, i64 144
  store i8 1, ptr %302, align 8, !tbaa !73
  br label %394

.preheader.1:                                     ; preds = %.preheader.preheader
  %303 = tail call noundef ptr @_ZN7glslang10TQualifier22getBlendEquationStringENS_19TBlendEquationShiftE(i32 noundef 1)
  %304 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %303)
  br i1 %304, label %299, label %.preheader.2

.preheader.2:                                     ; preds = %.preheader.1
  %305 = tail call noundef ptr @_ZN7glslang10TQualifier22getBlendEquationStringENS_19TBlendEquationShiftE(i32 noundef 2)
  %306 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %305)
  br i1 %306, label %299, label %.preheader.3

.preheader.3:                                     ; preds = %.preheader.2
  %307 = tail call noundef ptr @_ZN7glslang10TQualifier22getBlendEquationStringENS_19TBlendEquationShiftE(i32 noundef 3)
  %308 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %307)
  br i1 %308, label %299, label %.preheader.4

.preheader.4:                                     ; preds = %.preheader.3
  %309 = tail call noundef ptr @_ZN7glslang10TQualifier22getBlendEquationStringENS_19TBlendEquationShiftE(i32 noundef 4)
  %310 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %309)
  br i1 %310, label %299, label %.preheader.5

.preheader.5:                                     ; preds = %.preheader.4
  %311 = tail call noundef ptr @_ZN7glslang10TQualifier22getBlendEquationStringENS_19TBlendEquationShiftE(i32 noundef 5)
  %312 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %311)
  br i1 %312, label %299, label %.preheader.6

.preheader.6:                                     ; preds = %.preheader.5
  %313 = tail call noundef ptr @_ZN7glslang10TQualifier22getBlendEquationStringENS_19TBlendEquationShiftE(i32 noundef 6)
  %314 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %313)
  br i1 %314, label %299, label %.preheader.7

.preheader.7:                                     ; preds = %.preheader.6
  %315 = tail call noundef ptr @_ZN7glslang10TQualifier22getBlendEquationStringENS_19TBlendEquationShiftE(i32 noundef 7)
  %316 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %315)
  br i1 %316, label %299, label %.preheader.8

.preheader.8:                                     ; preds = %.preheader.7
  %317 = tail call noundef ptr @_ZN7glslang10TQualifier22getBlendEquationStringENS_19TBlendEquationShiftE(i32 noundef 8)
  %318 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %317)
  br i1 %318, label %299, label %.preheader.9

.preheader.9:                                     ; preds = %.preheader.8
  %319 = tail call noundef ptr @_ZN7glslang10TQualifier22getBlendEquationStringENS_19TBlendEquationShiftE(i32 noundef 9)
  %320 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %319)
  br i1 %320, label %299, label %.preheader.10

.preheader.10:                                    ; preds = %.preheader.9
  %321 = tail call noundef ptr @_ZN7glslang10TQualifier22getBlendEquationStringENS_19TBlendEquationShiftE(i32 noundef 10)
  %322 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %321)
  br i1 %322, label %299, label %.preheader.11

.preheader.11:                                    ; preds = %.preheader.10
  %323 = tail call noundef ptr @_ZN7glslang10TQualifier22getBlendEquationStringENS_19TBlendEquationShiftE(i32 noundef 11)
  %324 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %323)
  br i1 %324, label %299, label %.preheader.12

.preheader.12:                                    ; preds = %.preheader.11
  %325 = tail call noundef ptr @_ZN7glslang10TQualifier22getBlendEquationStringENS_19TBlendEquationShiftE(i32 noundef 12)
  %326 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %325)
  br i1 %326, label %299, label %.preheader.13

.preheader.13:                                    ; preds = %.preheader.12
  %327 = tail call noundef ptr @_ZN7glslang10TQualifier22getBlendEquationStringENS_19TBlendEquationShiftE(i32 noundef 13)
  %328 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %327)
  br i1 %328, label %299, label %.preheader.14

.preheader.14:                                    ; preds = %.preheader.13
  %329 = tail call noundef ptr @_ZN7glslang10TQualifier22getBlendEquationStringENS_19TBlendEquationShiftE(i32 noundef 14)
  %330 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %329)
  br i1 %330, label %299, label %.preheader.15

.preheader.15:                                    ; preds = %.preheader.14
  %331 = tail call noundef ptr @_ZN7glslang10TQualifier22getBlendEquationStringENS_19TBlendEquationShiftE(i32 noundef 15)
  %332 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef %331)
  br i1 %332, label %299, label %.critedge

.critedge:                                        ; preds = %.preheader.15
  %333 = load ptr, ptr %0, align 8, !tbaa !35
  %334 = getelementptr inbounds i8, ptr %333, i64 336
  %335 = load ptr, ptr %334, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %335(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.593, ptr noundef nonnull @.str.591, ptr noundef nonnull @.str.2)
  br label %394

336:                                              ; preds = %292
  %337 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.594)
  br i1 %337, label %338, label %._crit_edge

._crit_edge:                                      ; preds = %336
  %.pre = load i32, ptr %125, align 4, !tbaa !60
  br label %343

338:                                              ; preds = %336
  %339 = load ptr, ptr %0, align 8, !tbaa !35
  %340 = getelementptr inbounds i8, ptr %339, i64 40
  %341 = load ptr, ptr %340, align 8
  tail call void %341(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 1, ptr noundef nonnull @_ZN7glslangL37E_GL_NV_sample_mask_override_coverageE, ptr noundef nonnull @.str.595)
  %342 = getelementptr inbounds i8, ptr %2, i64 156
  store i8 1, ptr %342, align 4, !tbaa !74
  br label %394

343:                                              ; preds = %._crit_edge, %221
  %344 = phi i32 [ %.pre, %._crit_edge ], [ %222, %221 ]
  switch i32 %344, label %365 [
    i32 0, label %345
    i32 1, label %345
    i32 2, label %345
    i32 3, label %345
    i32 6, label %352
    i32 7, label %352
    i32 8, label %352
    i32 9, label %352
    i32 10, label %352
    i32 11, label %352
  ]

345:                                              ; preds = %343, %343, %343, %343
  %346 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.596)
  br i1 %346, label %347, label %thread-pre-split192

347:                                              ; preds = %345
  %348 = load ptr, ptr %0, align 8, !tbaa !35
  %349 = getelementptr inbounds i8, ptr %348, i64 40
  %350 = load ptr, ptr %349, align 8
  tail call void %350(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 1, ptr noundef nonnull @_ZN7glslangL23E_GL_NV_viewport_array2E, ptr noundef nonnull @.str.597)
  %351 = getelementptr inbounds i8, ptr %2, i64 56
  store i8 1, ptr %351, align 8, !tbaa !75
  br label %394

352:                                              ; preds = %343, %343, %343, %343, %343, %343
  %353 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.598)
  br i1 %353, label %356, label %354

354:                                              ; preds = %352
  %355 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.599)
  br i1 %355, label %356, label %thread-pre-split192

356:                                              ; preds = %354, %352
  %357 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.598)
  %358 = load ptr, ptr %0, align 8, !tbaa !35
  %359 = getelementptr inbounds i8, ptr %358, i64 40
  %360 = load ptr, ptr %359, align 8
  br i1 %357, label %361, label %362

361:                                              ; preds = %356
  tail call void %360(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 1, ptr noundef nonnull @_ZN7glslangL19E_GL_NV_ray_tracingE, ptr noundef nonnull @.str.600)
  br label %363

362:                                              ; preds = %356
  tail call void %360(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 1, ptr noundef nonnull @_ZN7glslangL20E_GL_EXT_ray_tracingE, ptr noundef nonnull @.str.601)
  br label %363

363:                                              ; preds = %362, %361
  %364 = getelementptr inbounds i8, ptr %2, i64 64
  store i8 1, ptr %364, align 8, !tbaa !76
  br label %394

thread-pre-split192:                              ; preds = %345, %354
  %.pr193 = load i32, ptr %125, align 4, !tbaa !60
  br label %365

365:                                              ; preds = %thread-pre-split192, %343
  %366 = phi i32 [ %.pr193, %thread-pre-split192 ], [ %344, %343 ]
  %367 = icmp eq i32 %366, 5
  br i1 %367, label %368, label %382

368:                                              ; preds = %365
  %369 = tail call noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE7compareEmmPKc(ptr noundef nonnull align 8 dereferenceable(40) %3, i64 noundef 0, i64 noundef 17, ptr noundef nonnull @.str.602)
  %370 = icmp eq i32 %369, 0
  br i1 %370, label %371, label %382

371:                                              ; preds = %368
  %372 = load ptr, ptr %0, align 8, !tbaa !35
  %373 = getelementptr inbounds i8, ptr %372, i64 40
  %374 = load ptr, ptr %373, align 8
  tail call void %374(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 1, ptr noundef nonnull @_ZN7glslangL34E_GL_NV_compute_shader_derivativesE, ptr noundef nonnull @.str.603)
  %375 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.604)
  br i1 %375, label %376, label %378

376:                                              ; preds = %371
  %377 = getelementptr inbounds i8, ptr %2, i64 157
  store i8 1, ptr %377, align 1, !tbaa !77
  br label %394

378:                                              ; preds = %371
  %379 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.605)
  br i1 %379, label %380, label %382

380:                                              ; preds = %378
  %381 = getelementptr inbounds i8, ptr %2, i64 158
  store i8 1, ptr %381, align 2, !tbaa !78
  br label %394

382:                                              ; preds = %368, %378, %365
  %383 = tail call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS7_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull @.str.606)
  br i1 %383, label %384, label %389

384:                                              ; preds = %382
  %385 = load ptr, ptr %0, align 8, !tbaa !35
  %386 = getelementptr inbounds i8, ptr %385, i64 40
  %387 = load ptr, ptr %386, align 8
  tail call void %387(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef 1, ptr noundef nonnull @_ZN7glslangL36E_GL_EXT_ray_flags_primitive_cullingE, ptr noundef nonnull @.str.607)
  %388 = getelementptr inbounds i8, ptr %2, i64 164
  store i8 1, ptr %388, align 4, !tbaa !79
  br label %394

389:                                              ; preds = %382
  %390 = tail call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(40) %3) #6
  %391 = load ptr, ptr %0, align 8, !tbaa !35
  %392 = getelementptr inbounds i8, ptr %391, i64 336
  %393 = load ptr, ptr %392, align 8
  tail call void (ptr, ptr, ptr, ptr, ptr, ...) %393(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull @.str.608, ptr noundef %390, ptr noundef nonnull @.str.2)
  br label %394

394:                                              ; preds = %299, %295, %.thread184, %101, %.critedge, %49, %30, %389, %384, %380, %376, %363, %347, %338, %260, %244, %240, %231, %219, %215, %210, %205, %200, %195, %190, %185, %180, %169, %165, %160, %155, %150, %142, %137, %130, %113, %106, %81, %73, %65, %57, %38, %19, %11
  ret void
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZSt9transformIN9__gnu_cxx17__normal_iteratorIPcNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEEEEESB_PDoFiiEET0_T_SF_SE_T1_(ptr, ptr, ptr, ptr noundef) local_unnamed_addr #0

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

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(read)
declare i32 @tolower(i32 noundef) #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN7glslang10TQualifier21getLayoutMatrixStringENS_13TLayoutMatrixE(i32 noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN7glslang10TQualifier22getLayoutPackingStringENS_14TLayoutPackingE(i32 noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN7glslang10TQualifier21getLayoutFormatStringENS_13TLayoutFormatE(i32 noundef) local_unnamed_addr #0 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN7glslang10TQualifier22getVertexSpacingStringENS_14TVertexSpacingE(i32 noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN7glslang10TQualifier20getVertexOrderStringENS_12TVertexOrderE(i32 noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN7glslang10TQualifier20getLayoutDepthStringENS_12TLayoutDepthE(i32 noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN7glslang10TQualifier26getInterlockOrderingStringENS_18TInterlockOrderingE(i32 noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN7glslang10TQualifier22getBlendEquationStringENS_19TBlendEquationShiftE(i32 noundef) local_unnamed_addr #0 align 2

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

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

!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 = !{!6, !7, i64 48}
!33 = !{i8 0, i8 2}
!34 = !{}
!35 = !{!36, !36, i64 0}
!36 = !{!"vtable pointer", !9, i64 0}
!37 = distinct !{!37, !38}
!38 = !{!"llvm.loop.mustprogress"}
!39 = !{!40, !7, i64 53}
!40 = !{!"_ZTSN7glslang11TPublicTypeE", !41, i64 0, !42, i64 4, !44, i64 8, !51, i64 80, !12, i64 168, !12, i64 168, !12, i64 169, !7, i64 169, !11, i64 176, !11, i64 184, !57, i64 192, !11, i64 216, !11, i64 224}
!41 = !{!"_ZTSN7glslang10TBasicTypeE", !8, i64 0}
!42 = !{!"_ZTSN7glslang8TSamplerE", !41, i64 0, !43, i64 1, !7, i64 2, !7, i64 2, !7, i64 2, !7, i64 2, !7, i64 2, !7, i64 2, !12, i64 2, !12, i64 3, !7, i64 3, !7, i64 3}
!43 = !{!"_ZTSN7glslang11TSamplerDimE", !8, i64 0}
!44 = !{!"_ZTSN7glslang10TQualifierE", !11, i64 0, !45, i64 8, !46, i64 8, !46, i64 9, !47, i64 11, !7, i64 11, !7, i64 11, !7, i64 11, !7, i64 11, !7, i64 11, !7, i64 12, !7, i64 12, !7, i64 12, !7, i64 12, !7, i64 12, !7, i64 12, !7, i64 12, !7, i64 12, !7, i64 13, !7, i64 13, !7, i64 13, !7, i64 13, !7, i64 13, !7, i64 13, !7, i64 13, !7, i64 13, !7, i64 14, !7, i64 14, !7, i64 14, !7, i64 14, !7, i64 14, !7, i64 14, !7, i64 14, !7, i64 14, !7, i64 15, !7, i64 15, !7, i64 15, !48, i64 15, !49, i64 16, !12, i64 20, !12, i64 24, !12, i64 28, !12, i64 29, !12, i64 29, !12, i64 32, !12, i64 34, !12, i64 35, !12, i64 36, !12, i64 36, !12, i64 38, !12, i64 40, !12, i64 41, !12, i64 42, !50, i64 44, !7, i64 45, !7, i64 46, !7, i64 47, !7, i64 48, !12, i64 52, !7, i64 56, !12, i64 60, !11, i64 64}
!45 = !{!"_ZTSN7glslang17TStorageQualifierE", !8, i64 0}
!46 = !{!"_ZTSN7glslang16TBuiltInVariableE", !8, i64 0}
!47 = !{!"_ZTSN7glslang19TPrecisionQualifierE", !8, i64 0}
!48 = !{!"_ZTSN7glslang13TLayoutMatrixE", !8, i64 0}
!49 = !{!"_ZTSN7glslang14TLayoutPackingE", !8, i64 0}
!50 = !{!"_ZTSN7glslang13TLayoutFormatE", !8, i64 0}
!51 = !{!"_ZTSN7glslang17TShaderQualifiersE", !52, i64 0, !7, i64 4, !7, i64 5, !12, i64 8, !12, i64 12, !53, i64 16, !54, i64 20, !7, i64 24, !8, i64 28, !8, i64 40, !8, i64 44, !7, i64 56, !7, i64 57, !55, i64 60, !7, i64 64, !12, i64 68, !56, i64 72, !7, i64 76, !7, i64 77, !7, i64 78, !12, i64 80, !7, i64 84}
!52 = !{!"_ZTSN7glslang15TLayoutGeometryE", !8, i64 0}
!53 = !{!"_ZTSN7glslang14TVertexSpacingE", !8, i64 0}
!54 = !{!"_ZTSN7glslang12TVertexOrderE", !8, i64 0}
!55 = !{!"_ZTSN7glslang12TLayoutDepthE", !8, i64 0}
!56 = !{!"_ZTSN7glslang18TInterlockOrderingE", !8, i64 0}
!57 = !{!"_ZTSN7glslang10TSourceLocE", !11, i64 0, !12, i64 8, !12, i64 12, !12, i64 16}
!58 = !{!40, !7, i64 54}
!59 = !{!6, !11, i64 56}
!60 = !{!6, !13, i64 28}
!61 = !{!40, !52, i64 80}
!62 = !{!40, !7, i64 55}
!63 = !{!40, !53, i64 96}
!64 = !{!40, !54, i64 100}
!65 = !{!40, !7, i64 104}
!66 = !{!6, !10, i64 12}
!67 = !{!40, !7, i64 85}
!68 = !{!40, !7, i64 84}
!69 = !{!40, !7, i64 136}
!70 = !{!40, !7, i64 137}
!71 = !{!40, !55, i64 140}
!72 = !{!40, !56, i64 152}
!73 = !{!40, !7, i64 144}
!74 = !{!40, !7, i64 156}
!75 = !{!40, !7, i64 56}
!76 = !{!40, !7, i64 64}
!77 = !{!40, !7, i64 157}
!78 = !{!40, !7, i64 158}
!79 = !{!40, !7, i64 164}


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