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

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

%"class.glslang::TType" = type { ptr, i32, [4 x i8], %"class.glslang::TQualifier", ptr, %union.anon.179, ptr, ptr, %"struct.glslang::TSampler", ptr, ptr }
%"class.glslang::TQualifier" = type <{ ptr, i64, i8, [3 x i8], i32, i32, i64, i64, i8, i8, i8, i8, i8, [3 x i8], i32, i8, [3 x i8], i32, ptr }>
%union.anon.179 = type { ptr }
%"struct.glslang::TSampler" = type { 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
@.str.88 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.327 = external hidden unnamed_addr constant [12 x i8], align 1
@_ZN7glslangL20E_GL_EXT_ray_tracingE = external hidden constant ptr, align 8
@_ZN7glslangL31E_GL_EXT_buffer_reference_uvec2E = external hidden constant ptr, align 8
@.str.824 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.825 = external hidden unnamed_addr constant [30 x i8], align 1
@__PRETTY_FUNCTION__._ZN7glslang13TParseContext16constructBuiltInERKNS_5TTypeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocEb = external hidden unnamed_addr constant [123 x i8], align 1
@.str.826 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.827 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.828 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.829 = external hidden unnamed_addr constant [14 x i8], align 1

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

declare noundef ptr @_ZN7glslang13TIntermediate12addUnaryMathENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocE(ptr noundef nonnull align 8 dereferenceable(1784), i32 noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(24)) #4

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

declare noundef ptr @_ZN7glslang13TIntermediate20setAggregateOperatorEP11TIntermNodeNS_9TOperatorERKNS_5TTypeERKNS_10TSourceLocE(ptr noundef nonnull align 8 dereferenceable(1784), ptr noundef, i32 noundef, ptr noundef nonnull align 8 dereferenceable(144), ptr noundef nonnull align 8 dereferenceable(24)) #4

declare noundef ptr @_ZN7glslang13TIntermediate22addBuiltInFunctionCallERKNS_10TSourceLocENS_9TOperatorEbP11TIntermNodeRKNS_5TTypeE(ptr noundef nonnull align 8 dereferenceable(1784), ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, i1 noundef zeroext, ptr noundef, ptr noundef nonnull align 8 dereferenceable(144)) #4

declare noundef i32 @_ZNK7glslang13TIntermediate22mapTypeToConstructorOpERKNS_5TTypeE(ptr noundef nonnull align 8 dereferenceable(1784), ptr noundef nonnull align 8 dereferenceable(144)) #4

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

; Function Attrs: mustprogress uwtable
define dso_local noundef ptr @_ZN7glslang13TParseContext16constructBuiltInERKNS_5TTypeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocEb(ptr noundef nonnull align 8 dereferenceable(24912) %0, ptr noundef nonnull align 8 dereferenceable(144) %1, i32 noundef %2, ptr noundef %3, ptr noundef nonnull align 8 dereferenceable(24) %4, i1 noundef zeroext %5) #1 align 2 personality ptr @__gxx_personality_v0 {
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca i8, align 1
  %14 = alloca %"class.glslang::TType", align 8
  %15 = alloca i32, align 4
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca ptr, align 8
  %19 = alloca i32, align 4
  %20 = alloca ptr, align 8
  %21 = alloca i32, align 4
  %22 = alloca %"class.glslang::TType", align 8
  %23 = alloca i32, align 4
  %24 = alloca %"class.glslang::TType", align 8
  %25 = alloca i32, align 4
  %26 = alloca %"class.glslang::TType", align 8
  %27 = alloca i32, align 4
  %28 = alloca %"class.glslang::TType", align 8
  %29 = alloca i32, align 4
  %30 = alloca %"class.glslang::TType", align 8
  %31 = alloca i32, align 4
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca i32, align 4
  store ptr %0, ptr %8, align 8, !tbaa !5
  store ptr %1, ptr %9, align 8, !tbaa !5
  store i32 %2, ptr %10, align 4, !tbaa !9
  store ptr %3, ptr %11, align 8, !tbaa !5
  store ptr %4, ptr %12, align 8, !tbaa !5
  %36 = zext i1 %5 to i8
  store i8 %36, ptr %13, align 1, !tbaa !11
  %37 = load ptr, ptr %8, align 8
  %38 = load ptr, ptr %11, align 8, !tbaa !5
  %39 = load ptr, ptr %38, align 8, !tbaa !13
  %40 = getelementptr inbounds ptr, ptr %39, i64 30
  %41 = load ptr, ptr %40, align 8
  %42 = call noundef nonnull align 8 dereferenceable(144) ptr %41(ptr noundef nonnull align 8 dereferenceable(176) %38)
  %43 = load ptr, ptr %42, align 8, !tbaa !13
  %44 = getelementptr inbounds ptr, ptr %43, i64 28
  %45 = load ptr, ptr %44, align 8
  %46 = call noundef zeroext i1 %45(ptr noundef nonnull align 8 dereferenceable(144) %42)
  br i1 %46, label %47, label %106

47:                                               ; preds = %6
  %48 = load ptr, ptr %9, align 8, !tbaa !5
  %49 = load ptr, ptr %48, align 8, !tbaa !13
  %50 = getelementptr inbounds ptr, ptr %49, i64 24
  %51 = load ptr, ptr %50, align 8
  %52 = call noundef zeroext i1 %51(ptr noundef nonnull align 8 dereferenceable(144) %48)
  br i1 %52, label %59, label %53

53:                                               ; preds = %47
  %54 = load ptr, ptr %9, align 8, !tbaa !5
  %55 = load ptr, ptr %54, align 8, !tbaa !13
  %56 = getelementptr inbounds ptr, ptr %55, i64 27
  %57 = load ptr, ptr %56, align 8
  %58 = call noundef zeroext i1 %57(ptr noundef nonnull align 8 dereferenceable(144) %54)
  br i1 %58, label %59, label %106

59:                                               ; preds = %53, %47
  %60 = load ptr, ptr %9, align 8, !tbaa !5
  %61 = load ptr, ptr %60, align 8, !tbaa !13
  %62 = getelementptr inbounds ptr, ptr %61, i64 36
  %63 = load ptr, ptr %62, align 8
  %64 = call noundef zeroext i1 %63(ptr noundef nonnull align 8 dereferenceable(144) %60)
  %65 = zext i1 %64 to i32
  %66 = load ptr, ptr %11, align 8, !tbaa !5
  %67 = load ptr, ptr %66, align 8, !tbaa !13
  %68 = getelementptr inbounds ptr, ptr %67, i64 30
  %69 = load ptr, ptr %68, align 8
  %70 = call noundef nonnull align 8 dereferenceable(144) ptr %69(ptr noundef nonnull align 8 dereferenceable(176) %66)
  %71 = load ptr, ptr %70, align 8, !tbaa !13
  %72 = getelementptr inbounds ptr, ptr %71, i64 36
  %73 = load ptr, ptr %72, align 8
  %74 = call noundef zeroext i1 %73(ptr noundef nonnull align 8 dereferenceable(144) %70)
  %75 = zext i1 %74 to i32
  %76 = icmp ne i32 %65, %75
  br i1 %76, label %77, label %106

77:                                               ; preds = %59
  call void @llvm.lifetime.start.p0(i64 144, ptr %14) #5
  %78 = load ptr, ptr %11, align 8, !tbaa !5
  %79 = load ptr, ptr %78, align 8, !tbaa !13
  %80 = getelementptr inbounds ptr, ptr %79, i64 32
  %81 = load ptr, ptr %80, align 8
  %82 = call noundef i32 %81(ptr noundef nonnull align 8 dereferenceable(176) %78)
  %83 = load ptr, ptr %9, align 8, !tbaa !5
  %84 = load ptr, ptr %83, align 8, !tbaa !13
  %85 = getelementptr inbounds ptr, ptr %84, i64 12
  %86 = load ptr, ptr %85, align 8
  %87 = call noundef i32 %86(ptr noundef nonnull align 8 dereferenceable(144) %83)
  %88 = load ptr, ptr %11, align 8, !tbaa !5
  %89 = load ptr, ptr %88, align 8, !tbaa !13
  %90 = getelementptr inbounds ptr, ptr %89, i64 43
  %91 = load ptr, ptr %90, align 8
  %92 = call noundef zeroext i1 %91(ptr noundef nonnull align 8 dereferenceable(176) %88)
  call void @_ZN7glslang5TTypeC2ENS_10TBasicTypeENS_17TStorageQualifierEiiib(ptr noundef nonnull align 8 dereferenceable(144) %14, i32 noundef %82, i32 noundef 0, i32 noundef %87, i32 noundef 0, i32 noundef 0, i1 noundef zeroext %92)
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #5
  %93 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %37, i32 0, i32 7
  %94 = load ptr, ptr %93, align 8, !tbaa !15
  %95 = invoke noundef i32 @_ZNK7glslang13TIntermediate22mapTypeToConstructorOpERKNS_5TTypeE(ptr noundef nonnull align 8 dereferenceable(1784) %94, ptr noundef nonnull align 8 dereferenceable(144) %14)
          to label %96 unwind label %102

96:                                               ; preds = %77
  store i32 %95, ptr %15, align 4, !tbaa !9
  %97 = load i32, ptr %15, align 4, !tbaa !9
  %98 = load ptr, ptr %11, align 8, !tbaa !5
  %99 = load ptr, ptr %12, align 8, !tbaa !5
  %100 = invoke noundef ptr @_ZN7glslang13TParseContext16constructBuiltInERKNS_5TTypeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocEb(ptr noundef nonnull align 8 dereferenceable(24912) %37, ptr noundef nonnull align 8 dereferenceable(144) %14, i32 noundef %97, ptr noundef %98, ptr noundef nonnull align 8 dereferenceable(24) %99, i1 noundef zeroext false)
          to label %101 unwind label %102

101:                                              ; preds = %96
  store ptr %100, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #5
  call void @_ZN7glslang5TTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(144) %14) #5
  call void @llvm.lifetime.end.p0(i64 144, ptr %14) #5
  br label %106

102:                                              ; preds = %96, %77
  %103 = landingpad { ptr, i32 }
          cleanup
  %104 = extractvalue { ptr, i32 } %103, 0
  store ptr %104, ptr %16, align 8
  %105 = extractvalue { ptr, i32 } %103, 1
  store i32 %105, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #5
  call void @_ZN7glslang5TTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(144) %14) #5
  call void @llvm.lifetime.end.p0(i64 144, ptr %14) #5
  br label %908

106:                                              ; preds = %101, %59, %53, %6
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #5
  %107 = load i32, ptr %10, align 4, !tbaa !9
  switch i32 %107, label %857 [
    i32 477, label %108
    i32 478, label %108
    i32 479, label %108
    i32 480, label %108
    i32 481, label %108
    i32 482, label %108
    i32 483, label %108
    i32 484, label %108
    i32 485, label %108
    i32 486, label %108
    i32 487, label %108
    i32 488, label %108
    i32 475, label %108
    i32 507, label %109
    i32 508, label %109
    i32 509, label %109
    i32 466, label %109
    i32 510, label %110
    i32 511, label %138
    i32 512, label %138
    i32 467, label %138
    i32 492, label %139
    i32 493, label %139
    i32 494, label %139
    i32 474, label %139
    i32 489, label %140
    i32 490, label %140
    i32 491, label %140
    i32 519, label %140
    i32 520, label %140
    i32 521, label %140
    i32 522, label %140
    i32 523, label %140
    i32 524, label %140
    i32 525, label %140
    i32 526, label %140
    i32 527, label %140
    i32 476, label %140
    i32 556, label %141
    i32 557, label %141
    i32 558, label %141
    i32 559, label %141
    i32 560, label %141
    i32 561, label %141
    i32 562, label %141
    i32 563, label %141
    i32 564, label %141
    i32 565, label %141
    i32 566, label %141
    i32 567, label %141
    i32 555, label %141
    i32 495, label %198
    i32 496, label %198
    i32 497, label %198
    i32 468, label %198
    i32 498, label %255
    i32 499, label %255
    i32 500, label %255
    i32 469, label %255
    i32 501, label %312
    i32 502, label %312
    i32 503, label %312
    i32 470, label %312
    i32 504, label %369
    i32 505, label %369
    i32 506, label %369
    i32 471, label %369
    i32 513, label %426
    i32 514, label %426
    i32 515, label %426
    i32 472, label %426
    i32 473, label %427
    i32 516, label %453
    i32 517, label %453
    i32 518, label %453
    i32 570, label %454
    i32 571, label %466
    i32 572, label %563
    i32 573, label %777
  ]

108:                                              ; preds = %106, %106, %106, %106, %106, %106, %106, %106, %106, %106, %106, %106, %106
  store i32 475, ptr %19, align 4, !tbaa !9
  br label %862

109:                                              ; preds = %106, %106, %106, %106
  store i32 466, ptr %19, align 4, !tbaa !9
  br label %862

110:                                              ; preds = %106
  %111 = load ptr, ptr %11, align 8, !tbaa !5
  %112 = load ptr, ptr %111, align 8, !tbaa !13
  %113 = getelementptr inbounds ptr, ptr %112, i64 30
  %114 = load ptr, ptr %113, align 8
  %115 = call noundef nonnull align 8 dereferenceable(144) ptr %114(ptr noundef nonnull align 8 dereferenceable(176) %111)
  %116 = load ptr, ptr %115, align 8, !tbaa !13
  %117 = getelementptr inbounds ptr, ptr %116, i64 7
  %118 = load ptr, ptr %117, align 8
  %119 = call noundef i32 %118(ptr noundef nonnull align 8 dereferenceable(144) %115)
  %120 = icmp eq i32 %119, 18
  br i1 %120, label %121, label %137

121:                                              ; preds = %110
  %122 = load ptr, ptr %12, align 8, !tbaa !5
  %123 = load ptr, ptr %37, align 8, !tbaa !13
  %124 = getelementptr inbounds ptr, ptr %123, i64 5
  %125 = load ptr, ptr %124, align 8
  call void %125(ptr noundef nonnull align 8 dereferenceable(192) %37, ptr noundef nonnull align 8 dereferenceable(24) %122, i32 noundef 1, ptr noundef @_ZN7glslangL31E_GL_EXT_buffer_reference_uvec2E, ptr noundef @.str.824)
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #5
  %126 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %37, i32 0, i32 7
  %127 = load ptr, ptr %126, align 8, !tbaa !15
  %128 = load ptr, ptr %11, align 8, !tbaa !5
  %129 = load ptr, ptr %128, align 8, !tbaa !13
  %130 = getelementptr inbounds ptr, ptr %129, i64 0
  %131 = load ptr, ptr %130, align 8
  %132 = call noundef nonnull align 8 dereferenceable(24) ptr %131(ptr noundef nonnull align 8 dereferenceable(32) %128)
  %133 = load ptr, ptr %11, align 8, !tbaa !5
  %134 = load ptr, ptr %9, align 8, !tbaa !5
  %135 = call noundef ptr @_ZN7glslang13TIntermediate22addBuiltInFunctionCallERKNS_10TSourceLocENS_9TOperatorEbP11TIntermNodeRKNS_5TTypeE(ptr noundef nonnull align 8 dereferenceable(1784) %127, ptr noundef nonnull align 8 dereferenceable(24) %132, i32 noundef 151, i1 noundef zeroext true, ptr noundef %133, ptr noundef nonnull align 8 dereferenceable(144) %134)
  store ptr %135, ptr %20, align 8, !tbaa !5
  %136 = load ptr, ptr %20, align 8, !tbaa !5
  store ptr %136, ptr %7, align 8
  store i32 1, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #5
  br label %905

137:                                              ; preds = %110
  br label %138

138:                                              ; preds = %137, %106, %106, %106
  store i32 467, ptr %19, align 4, !tbaa !9
  br label %862

139:                                              ; preds = %106, %106, %106, %106
  store i32 474, ptr %19, align 4, !tbaa !9
  br label %862

140:                                              ; preds = %106, %106, %106, %106, %106, %106, %106, %106, %106, %106, %106, %106, %106
  store i32 476, ptr %19, align 4, !tbaa !9
  br label %862

141:                                              ; preds = %106, %106, %106, %106, %106, %106, %106, %106, %106, %106, %106, %106, %106
  store i32 555, ptr %19, align 4, !tbaa !9
  %142 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %37, i32 0, i32 7
  %143 = load ptr, ptr %142, align 8, !tbaa !15
  %144 = call noundef zeroext i1 @_ZNK7glslang13TIntermediate28getArithemeticFloat16EnabledEv(ptr noundef nonnull align 8 dereferenceable(1784) %143)
  br i1 %144, label %197, label %145

145:                                              ; preds = %141
  call void @llvm.lifetime.start.p0(i64 144, ptr %22) #5
  %146 = load ptr, ptr %9, align 8, !tbaa !5
  %147 = load ptr, ptr %146, align 8, !tbaa !13
  %148 = getelementptr inbounds ptr, ptr %147, i64 12
  %149 = load ptr, ptr %148, align 8
  %150 = call noundef i32 %149(ptr noundef nonnull align 8 dereferenceable(144) %146)
  call void @_ZN7glslang5TTypeC2ENS_10TBasicTypeENS_17TStorageQualifierEiiib(ptr noundef nonnull align 8 dereferenceable(144) %22, i32 noundef 1, i32 noundef 0, i32 noundef %150, i32 noundef 0, i32 noundef 0, i1 noundef zeroext false)
  %151 = load ptr, ptr %11, align 8, !tbaa !5
  store ptr %151, ptr %18, align 8, !tbaa !5
  %152 = load ptr, ptr %18, align 8, !tbaa !5
  %153 = load ptr, ptr %152, align 8, !tbaa !13
  %154 = getelementptr inbounds ptr, ptr %153, i64 30
  %155 = load ptr, ptr %154, align 8
  %156 = invoke noundef nonnull align 8 dereferenceable(144) ptr %155(ptr noundef nonnull align 8 dereferenceable(176) %152)
          to label %157 unwind label %164

157:                                              ; preds = %145
  %158 = invoke noundef zeroext i1 @_ZNK7glslang5TTypeneERKS0_(ptr noundef nonnull align 8 dereferenceable(144) %22, ptr noundef nonnull align 8 dereferenceable(144) %156)
          to label %159 unwind label %164

159:                                              ; preds = %157
  br i1 %158, label %160, label %189

160:                                              ; preds = %159
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #5
  %161 = load i32, ptr %10, align 4, !tbaa !9
  %162 = icmp eq i32 %161, 555
  br i1 %162, label %163, label %168

163:                                              ; preds = %160
  store i32 475, ptr %23, align 4, !tbaa !9
  br label %172

164:                                              ; preds = %189, %157, %145
  %165 = landingpad { ptr, i32 }
          cleanup
  %166 = extractvalue { ptr, i32 } %165, 0
  store ptr %166, ptr %16, align 8
  %167 = extractvalue { ptr, i32 } %165, 1
  store i32 %167, ptr %17, align 4
  br label %196

168:                                              ; preds = %160
  %169 = load i32, ptr %10, align 4, !tbaa !9
  %170 = add nsw i32 477, %169
  %171 = sub nsw i32 %170, 556
  store i32 %171, ptr %23, align 4, !tbaa !9
  br label %172

172:                                              ; preds = %168, %163
  %173 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %37, i32 0, i32 7
  %174 = load ptr, ptr %173, align 8, !tbaa !15
  %175 = load ptr, ptr %18, align 8, !tbaa !5
  %176 = load i32, ptr %23, align 4, !tbaa !9
  %177 = load ptr, ptr %11, align 8, !tbaa !5
  %178 = load ptr, ptr %177, align 8, !tbaa !13
  %179 = getelementptr inbounds ptr, ptr %178, i64 0
  %180 = load ptr, ptr %179, align 8
  %181 = invoke noundef nonnull align 8 dereferenceable(24) ptr %180(ptr noundef nonnull align 8 dereferenceable(32) %177)
          to label %182 unwind label %185

182:                                              ; preds = %172
  %183 = invoke noundef ptr @_ZN7glslang13TIntermediate20setAggregateOperatorEP11TIntermNodeNS_9TOperatorERKNS_5TTypeERKNS_10TSourceLocE(ptr noundef nonnull align 8 dereferenceable(1784) %174, ptr noundef %175, i32 noundef %176, ptr noundef nonnull align 8 dereferenceable(144) %22, ptr noundef nonnull align 8 dereferenceable(24) %181)
          to label %184 unwind label %185

184:                                              ; preds = %182
  store ptr %183, ptr %18, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #5
  br label %189

185:                                              ; preds = %182, %172
  %186 = landingpad { ptr, i32 }
          cleanup
  %187 = extractvalue { ptr, i32 } %186, 0
  store ptr %187, ptr %16, align 8
  %188 = extractvalue { ptr, i32 } %186, 1
  store i32 %188, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #5
  br label %196

189:                                              ; preds = %184, %159
  %190 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %37, i32 0, i32 7
  %191 = load ptr, ptr %190, align 8, !tbaa !15
  %192 = load ptr, ptr %18, align 8, !tbaa !5
  %193 = invoke noundef ptr @_ZNK7glslang13TIntermediate13addConversionENS_10TBasicTypeEPNS_12TIntermTypedE(ptr noundef nonnull align 8 dereferenceable(1784) %191, i32 noundef 3, ptr noundef %192)
          to label %194 unwind label %164

194:                                              ; preds = %189
  store ptr %193, ptr %18, align 8, !tbaa !5
  %195 = load ptr, ptr %18, align 8, !tbaa !5
  store ptr %195, ptr %7, align 8
  store i32 1, ptr %21, align 4
  call void @_ZN7glslang5TTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(144) %22) #5
  call void @llvm.lifetime.end.p0(i64 144, ptr %22) #5
  br label %905

196:                                              ; preds = %185, %164
  call void @_ZN7glslang5TTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(144) %22) #5
  call void @llvm.lifetime.end.p0(i64 144, ptr %22) #5
  br label %907

197:                                              ; preds = %141
  br label %862

198:                                              ; preds = %106, %106, %106, %106
  store i32 468, ptr %19, align 4, !tbaa !9
  %199 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %37, i32 0, i32 7
  %200 = load ptr, ptr %199, align 8, !tbaa !15
  %201 = call noundef zeroext i1 @_ZNK7glslang13TIntermediate25getArithemeticInt8EnabledEv(ptr noundef nonnull align 8 dereferenceable(1784) %200)
  br i1 %201, label %254, label %202

202:                                              ; preds = %198
  call void @llvm.lifetime.start.p0(i64 144, ptr %24) #5
  %203 = load ptr, ptr %9, align 8, !tbaa !5
  %204 = load ptr, ptr %203, align 8, !tbaa !13
  %205 = getelementptr inbounds ptr, ptr %204, i64 12
  %206 = load ptr, ptr %205, align 8
  %207 = call noundef i32 %206(ptr noundef nonnull align 8 dereferenceable(144) %203)
  call void @_ZN7glslang5TTypeC2ENS_10TBasicTypeENS_17TStorageQualifierEiiib(ptr noundef nonnull align 8 dereferenceable(144) %24, i32 noundef 8, i32 noundef 0, i32 noundef %207, i32 noundef 0, i32 noundef 0, i1 noundef zeroext false)
  %208 = load ptr, ptr %11, align 8, !tbaa !5
  store ptr %208, ptr %18, align 8, !tbaa !5
  %209 = load ptr, ptr %18, align 8, !tbaa !5
  %210 = load ptr, ptr %209, align 8, !tbaa !13
  %211 = getelementptr inbounds ptr, ptr %210, i64 30
  %212 = load ptr, ptr %211, align 8
  %213 = invoke noundef nonnull align 8 dereferenceable(144) ptr %212(ptr noundef nonnull align 8 dereferenceable(176) %209)
          to label %214 unwind label %221

214:                                              ; preds = %202
  %215 = invoke noundef zeroext i1 @_ZNK7glslang5TTypeneERKS0_(ptr noundef nonnull align 8 dereferenceable(144) %24, ptr noundef nonnull align 8 dereferenceable(144) %213)
          to label %216 unwind label %221

216:                                              ; preds = %214
  br i1 %215, label %217, label %246

217:                                              ; preds = %216
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #5
  %218 = load i32, ptr %10, align 4, !tbaa !9
  %219 = icmp eq i32 %218, 468
  br i1 %219, label %220, label %225

220:                                              ; preds = %217
  store i32 466, ptr %25, align 4, !tbaa !9
  br label %229

221:                                              ; preds = %246, %214, %202
  %222 = landingpad { ptr, i32 }
          cleanup
  %223 = extractvalue { ptr, i32 } %222, 0
  store ptr %223, ptr %16, align 8
  %224 = extractvalue { ptr, i32 } %222, 1
  store i32 %224, ptr %17, align 4
  br label %253

225:                                              ; preds = %217
  %226 = load i32, ptr %10, align 4, !tbaa !9
  %227 = add nsw i32 507, %226
  %228 = sub nsw i32 %227, 495
  store i32 %228, ptr %25, align 4, !tbaa !9
  br label %229

229:                                              ; preds = %225, %220
  %230 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %37, i32 0, i32 7
  %231 = load ptr, ptr %230, align 8, !tbaa !15
  %232 = load ptr, ptr %18, align 8, !tbaa !5
  %233 = load i32, ptr %25, align 4, !tbaa !9
  %234 = load ptr, ptr %11, align 8, !tbaa !5
  %235 = load ptr, ptr %234, align 8, !tbaa !13
  %236 = getelementptr inbounds ptr, ptr %235, i64 0
  %237 = load ptr, ptr %236, align 8
  %238 = invoke noundef nonnull align 8 dereferenceable(24) ptr %237(ptr noundef nonnull align 8 dereferenceable(32) %234)
          to label %239 unwind label %242

239:                                              ; preds = %229
  %240 = invoke noundef ptr @_ZN7glslang13TIntermediate20setAggregateOperatorEP11TIntermNodeNS_9TOperatorERKNS_5TTypeERKNS_10TSourceLocE(ptr noundef nonnull align 8 dereferenceable(1784) %231, ptr noundef %232, i32 noundef %233, ptr noundef nonnull align 8 dereferenceable(144) %24, ptr noundef nonnull align 8 dereferenceable(24) %238)
          to label %241 unwind label %242

241:                                              ; preds = %239
  store ptr %240, ptr %18, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #5
  br label %246

242:                                              ; preds = %239, %229
  %243 = landingpad { ptr, i32 }
          cleanup
  %244 = extractvalue { ptr, i32 } %243, 0
  store ptr %244, ptr %16, align 8
  %245 = extractvalue { ptr, i32 } %243, 1
  store i32 %245, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #5
  br label %253

246:                                              ; preds = %241, %216
  %247 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %37, i32 0, i32 7
  %248 = load ptr, ptr %247, align 8, !tbaa !15
  %249 = load ptr, ptr %18, align 8, !tbaa !5
  %250 = invoke noundef ptr @_ZNK7glslang13TIntermediate13addConversionENS_10TBasicTypeEPNS_12TIntermTypedE(ptr noundef nonnull align 8 dereferenceable(1784) %248, i32 noundef 4, ptr noundef %249)
          to label %251 unwind label %221

251:                                              ; preds = %246
  store ptr %250, ptr %18, align 8, !tbaa !5
  %252 = load ptr, ptr %18, align 8, !tbaa !5
  store ptr %252, ptr %7, align 8
  store i32 1, ptr %21, align 4
  call void @_ZN7glslang5TTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(144) %24) #5
  call void @llvm.lifetime.end.p0(i64 144, ptr %24) #5
  br label %905

253:                                              ; preds = %242, %221
  call void @_ZN7glslang5TTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(144) %24) #5
  call void @llvm.lifetime.end.p0(i64 144, ptr %24) #5
  br label %907

254:                                              ; preds = %198
  br label %862

255:                                              ; preds = %106, %106, %106, %106
  store i32 469, ptr %19, align 4, !tbaa !9
  %256 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %37, i32 0, i32 7
  %257 = load ptr, ptr %256, align 8, !tbaa !15
  %258 = call noundef zeroext i1 @_ZNK7glslang13TIntermediate25getArithemeticInt8EnabledEv(ptr noundef nonnull align 8 dereferenceable(1784) %257)
  br i1 %258, label %311, label %259

259:                                              ; preds = %255
  call void @llvm.lifetime.start.p0(i64 144, ptr %26) #5
  %260 = load ptr, ptr %9, align 8, !tbaa !5
  %261 = load ptr, ptr %260, align 8, !tbaa !13
  %262 = getelementptr inbounds ptr, ptr %261, i64 12
  %263 = load ptr, ptr %262, align 8
  %264 = call noundef i32 %263(ptr noundef nonnull align 8 dereferenceable(144) %260)
  call void @_ZN7glslang5TTypeC2ENS_10TBasicTypeENS_17TStorageQualifierEiiib(ptr noundef nonnull align 8 dereferenceable(144) %26, i32 noundef 9, i32 noundef 0, i32 noundef %264, i32 noundef 0, i32 noundef 0, i1 noundef zeroext false)
  %265 = load ptr, ptr %11, align 8, !tbaa !5
  store ptr %265, ptr %18, align 8, !tbaa !5
  %266 = load ptr, ptr %18, align 8, !tbaa !5
  %267 = load ptr, ptr %266, align 8, !tbaa !13
  %268 = getelementptr inbounds ptr, ptr %267, i64 30
  %269 = load ptr, ptr %268, align 8
  %270 = invoke noundef nonnull align 8 dereferenceable(144) ptr %269(ptr noundef nonnull align 8 dereferenceable(176) %266)
          to label %271 unwind label %278

271:                                              ; preds = %259
  %272 = invoke noundef zeroext i1 @_ZNK7glslang5TTypeneERKS0_(ptr noundef nonnull align 8 dereferenceable(144) %26, ptr noundef nonnull align 8 dereferenceable(144) %270)
          to label %273 unwind label %278

273:                                              ; preds = %271
  br i1 %272, label %274, label %303

274:                                              ; preds = %273
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #5
  %275 = load i32, ptr %10, align 4, !tbaa !9
  %276 = icmp eq i32 %275, 469
  br i1 %276, label %277, label %282

277:                                              ; preds = %274
  store i32 467, ptr %27, align 4, !tbaa !9
  br label %286

278:                                              ; preds = %303, %271, %259
  %279 = landingpad { ptr, i32 }
          cleanup
  %280 = extractvalue { ptr, i32 } %279, 0
  store ptr %280, ptr %16, align 8
  %281 = extractvalue { ptr, i32 } %279, 1
  store i32 %281, ptr %17, align 4
  br label %310

282:                                              ; preds = %274
  %283 = load i32, ptr %10, align 4, !tbaa !9
  %284 = add nsw i32 510, %283
  %285 = sub nsw i32 %284, 498
  store i32 %285, ptr %27, align 4, !tbaa !9
  br label %286

286:                                              ; preds = %282, %277
  %287 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %37, i32 0, i32 7
  %288 = load ptr, ptr %287, align 8, !tbaa !15
  %289 = load ptr, ptr %18, align 8, !tbaa !5
  %290 = load i32, ptr %27, align 4, !tbaa !9
  %291 = load ptr, ptr %11, align 8, !tbaa !5
  %292 = load ptr, ptr %291, align 8, !tbaa !13
  %293 = getelementptr inbounds ptr, ptr %292, i64 0
  %294 = load ptr, ptr %293, align 8
  %295 = invoke noundef nonnull align 8 dereferenceable(24) ptr %294(ptr noundef nonnull align 8 dereferenceable(32) %291)
          to label %296 unwind label %299

296:                                              ; preds = %286
  %297 = invoke noundef ptr @_ZN7glslang13TIntermediate20setAggregateOperatorEP11TIntermNodeNS_9TOperatorERKNS_5TTypeERKNS_10TSourceLocE(ptr noundef nonnull align 8 dereferenceable(1784) %288, ptr noundef %289, i32 noundef %290, ptr noundef nonnull align 8 dereferenceable(144) %26, ptr noundef nonnull align 8 dereferenceable(24) %295)
          to label %298 unwind label %299

298:                                              ; preds = %296
  store ptr %297, ptr %18, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #5
  br label %303

299:                                              ; preds = %296, %286
  %300 = landingpad { ptr, i32 }
          cleanup
  %301 = extractvalue { ptr, i32 } %300, 0
  store ptr %301, ptr %16, align 8
  %302 = extractvalue { ptr, i32 } %300, 1
  store i32 %302, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #5
  br label %310

303:                                              ; preds = %298, %273
  %304 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %37, i32 0, i32 7
  %305 = load ptr, ptr %304, align 8, !tbaa !15
  %306 = load ptr, ptr %18, align 8, !tbaa !5
  %307 = invoke noundef ptr @_ZNK7glslang13TIntermediate13addConversionENS_10TBasicTypeEPNS_12TIntermTypedE(ptr noundef nonnull align 8 dereferenceable(1784) %305, i32 noundef 5, ptr noundef %306)
          to label %308 unwind label %278

308:                                              ; preds = %303
  store ptr %307, ptr %18, align 8, !tbaa !5
  %309 = load ptr, ptr %18, align 8, !tbaa !5
  store ptr %309, ptr %7, align 8
  store i32 1, ptr %21, align 4
  call void @_ZN7glslang5TTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(144) %26) #5
  call void @llvm.lifetime.end.p0(i64 144, ptr %26) #5
  br label %905

310:                                              ; preds = %299, %278
  call void @_ZN7glslang5TTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(144) %26) #5
  call void @llvm.lifetime.end.p0(i64 144, ptr %26) #5
  br label %907

311:                                              ; preds = %255
  br label %862

312:                                              ; preds = %106, %106, %106, %106
  store i32 470, ptr %19, align 4, !tbaa !9
  %313 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %37, i32 0, i32 7
  %314 = load ptr, ptr %313, align 8, !tbaa !15
  %315 = call noundef zeroext i1 @_ZNK7glslang13TIntermediate26getArithemeticInt16EnabledEv(ptr noundef nonnull align 8 dereferenceable(1784) %314)
  br i1 %315, label %368, label %316

316:                                              ; preds = %312
  call void @llvm.lifetime.start.p0(i64 144, ptr %28) #5
  %317 = load ptr, ptr %9, align 8, !tbaa !5
  %318 = load ptr, ptr %317, align 8, !tbaa !13
  %319 = getelementptr inbounds ptr, ptr %318, i64 12
  %320 = load ptr, ptr %319, align 8
  %321 = call noundef i32 %320(ptr noundef nonnull align 8 dereferenceable(144) %317)
  call void @_ZN7glslang5TTypeC2ENS_10TBasicTypeENS_17TStorageQualifierEiiib(ptr noundef nonnull align 8 dereferenceable(144) %28, i32 noundef 8, i32 noundef 0, i32 noundef %321, i32 noundef 0, i32 noundef 0, i1 noundef zeroext false)
  %322 = load ptr, ptr %11, align 8, !tbaa !5
  store ptr %322, ptr %18, align 8, !tbaa !5
  %323 = load ptr, ptr %18, align 8, !tbaa !5
  %324 = load ptr, ptr %323, align 8, !tbaa !13
  %325 = getelementptr inbounds ptr, ptr %324, i64 30
  %326 = load ptr, ptr %325, align 8
  %327 = invoke noundef nonnull align 8 dereferenceable(144) ptr %326(ptr noundef nonnull align 8 dereferenceable(176) %323)
          to label %328 unwind label %335

328:                                              ; preds = %316
  %329 = invoke noundef zeroext i1 @_ZNK7glslang5TTypeneERKS0_(ptr noundef nonnull align 8 dereferenceable(144) %28, ptr noundef nonnull align 8 dereferenceable(144) %327)
          to label %330 unwind label %335

330:                                              ; preds = %328
  br i1 %329, label %331, label %360

331:                                              ; preds = %330
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #5
  %332 = load i32, ptr %10, align 4, !tbaa !9
  %333 = icmp eq i32 %332, 470
  br i1 %333, label %334, label %339

334:                                              ; preds = %331
  store i32 466, ptr %29, align 4, !tbaa !9
  br label %343

335:                                              ; preds = %360, %328, %316
  %336 = landingpad { ptr, i32 }
          cleanup
  %337 = extractvalue { ptr, i32 } %336, 0
  store ptr %337, ptr %16, align 8
  %338 = extractvalue { ptr, i32 } %336, 1
  store i32 %338, ptr %17, align 4
  br label %367

339:                                              ; preds = %331
  %340 = load i32, ptr %10, align 4, !tbaa !9
  %341 = add nsw i32 507, %340
  %342 = sub nsw i32 %341, 501
  store i32 %342, ptr %29, align 4, !tbaa !9
  br label %343

343:                                              ; preds = %339, %334
  %344 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %37, i32 0, i32 7
  %345 = load ptr, ptr %344, align 8, !tbaa !15
  %346 = load ptr, ptr %18, align 8, !tbaa !5
  %347 = load i32, ptr %29, align 4, !tbaa !9
  %348 = load ptr, ptr %11, align 8, !tbaa !5
  %349 = load ptr, ptr %348, align 8, !tbaa !13
  %350 = getelementptr inbounds ptr, ptr %349, i64 0
  %351 = load ptr, ptr %350, align 8
  %352 = invoke noundef nonnull align 8 dereferenceable(24) ptr %351(ptr noundef nonnull align 8 dereferenceable(32) %348)
          to label %353 unwind label %356

353:                                              ; preds = %343
  %354 = invoke noundef ptr @_ZN7glslang13TIntermediate20setAggregateOperatorEP11TIntermNodeNS_9TOperatorERKNS_5TTypeERKNS_10TSourceLocE(ptr noundef nonnull align 8 dereferenceable(1784) %345, ptr noundef %346, i32 noundef %347, ptr noundef nonnull align 8 dereferenceable(144) %28, ptr noundef nonnull align 8 dereferenceable(24) %352)
          to label %355 unwind label %356

355:                                              ; preds = %353
  store ptr %354, ptr %18, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #5
  br label %360

356:                                              ; preds = %353, %343
  %357 = landingpad { ptr, i32 }
          cleanup
  %358 = extractvalue { ptr, i32 } %357, 0
  store ptr %358, ptr %16, align 8
  %359 = extractvalue { ptr, i32 } %357, 1
  store i32 %359, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #5
  br label %367

360:                                              ; preds = %355, %330
  %361 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %37, i32 0, i32 7
  %362 = load ptr, ptr %361, align 8, !tbaa !15
  %363 = load ptr, ptr %18, align 8, !tbaa !5
  %364 = invoke noundef ptr @_ZNK7glslang13TIntermediate13addConversionENS_10TBasicTypeEPNS_12TIntermTypedE(ptr noundef nonnull align 8 dereferenceable(1784) %362, i32 noundef 6, ptr noundef %363)
          to label %365 unwind label %335

365:                                              ; preds = %360
  store ptr %364, ptr %18, align 8, !tbaa !5
  %366 = load ptr, ptr %18, align 8, !tbaa !5
  store ptr %366, ptr %7, align 8
  store i32 1, ptr %21, align 4
  call void @_ZN7glslang5TTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(144) %28) #5
  call void @llvm.lifetime.end.p0(i64 144, ptr %28) #5
  br label %905

367:                                              ; preds = %356, %335
  call void @_ZN7glslang5TTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(144) %28) #5
  call void @llvm.lifetime.end.p0(i64 144, ptr %28) #5
  br label %907

368:                                              ; preds = %312
  br label %862

369:                                              ; preds = %106, %106, %106, %106
  store i32 471, ptr %19, align 4, !tbaa !9
  %370 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %37, i32 0, i32 7
  %371 = load ptr, ptr %370, align 8, !tbaa !15
  %372 = call noundef zeroext i1 @_ZNK7glslang13TIntermediate26getArithemeticInt16EnabledEv(ptr noundef nonnull align 8 dereferenceable(1784) %371)
  br i1 %372, label %425, label %373

373:                                              ; preds = %369
  call void @llvm.lifetime.start.p0(i64 144, ptr %30) #5
  %374 = load ptr, ptr %9, align 8, !tbaa !5
  %375 = load ptr, ptr %374, align 8, !tbaa !13
  %376 = getelementptr inbounds ptr, ptr %375, i64 12
  %377 = load ptr, ptr %376, align 8
  %378 = call noundef i32 %377(ptr noundef nonnull align 8 dereferenceable(144) %374)
  call void @_ZN7glslang5TTypeC2ENS_10TBasicTypeENS_17TStorageQualifierEiiib(ptr noundef nonnull align 8 dereferenceable(144) %30, i32 noundef 9, i32 noundef 0, i32 noundef %378, i32 noundef 0, i32 noundef 0, i1 noundef zeroext false)
  %379 = load ptr, ptr %11, align 8, !tbaa !5
  store ptr %379, ptr %18, align 8, !tbaa !5
  %380 = load ptr, ptr %18, align 8, !tbaa !5
  %381 = load ptr, ptr %380, align 8, !tbaa !13
  %382 = getelementptr inbounds ptr, ptr %381, i64 30
  %383 = load ptr, ptr %382, align 8
  %384 = invoke noundef nonnull align 8 dereferenceable(144) ptr %383(ptr noundef nonnull align 8 dereferenceable(176) %380)
          to label %385 unwind label %392

385:                                              ; preds = %373
  %386 = invoke noundef zeroext i1 @_ZNK7glslang5TTypeneERKS0_(ptr noundef nonnull align 8 dereferenceable(144) %30, ptr noundef nonnull align 8 dereferenceable(144) %384)
          to label %387 unwind label %392

387:                                              ; preds = %385
  br i1 %386, label %388, label %417

388:                                              ; preds = %387
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #5
  %389 = load i32, ptr %10, align 4, !tbaa !9
  %390 = icmp eq i32 %389, 471
  br i1 %390, label %391, label %396

391:                                              ; preds = %388
  store i32 467, ptr %31, align 4, !tbaa !9
  br label %400

392:                                              ; preds = %417, %385, %373
  %393 = landingpad { ptr, i32 }
          cleanup
  %394 = extractvalue { ptr, i32 } %393, 0
  store ptr %394, ptr %16, align 8
  %395 = extractvalue { ptr, i32 } %393, 1
  store i32 %395, ptr %17, align 4
  br label %424

396:                                              ; preds = %388
  %397 = load i32, ptr %10, align 4, !tbaa !9
  %398 = add nsw i32 510, %397
  %399 = sub nsw i32 %398, 504
  store i32 %399, ptr %31, align 4, !tbaa !9
  br label %400

400:                                              ; preds = %396, %391
  %401 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %37, i32 0, i32 7
  %402 = load ptr, ptr %401, align 8, !tbaa !15
  %403 = load ptr, ptr %18, align 8, !tbaa !5
  %404 = load i32, ptr %31, align 4, !tbaa !9
  %405 = load ptr, ptr %11, align 8, !tbaa !5
  %406 = load ptr, ptr %405, align 8, !tbaa !13
  %407 = getelementptr inbounds ptr, ptr %406, i64 0
  %408 = load ptr, ptr %407, align 8
  %409 = invoke noundef nonnull align 8 dereferenceable(24) ptr %408(ptr noundef nonnull align 8 dereferenceable(32) %405)
          to label %410 unwind label %413

410:                                              ; preds = %400
  %411 = invoke noundef ptr @_ZN7glslang13TIntermediate20setAggregateOperatorEP11TIntermNodeNS_9TOperatorERKNS_5TTypeERKNS_10TSourceLocE(ptr noundef nonnull align 8 dereferenceable(1784) %402, ptr noundef %403, i32 noundef %404, ptr noundef nonnull align 8 dereferenceable(144) %30, ptr noundef nonnull align 8 dereferenceable(24) %409)
          to label %412 unwind label %413

412:                                              ; preds = %410
  store ptr %411, ptr %18, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #5
  br label %417

413:                                              ; preds = %410, %400
  %414 = landingpad { ptr, i32 }
          cleanup
  %415 = extractvalue { ptr, i32 } %414, 0
  store ptr %415, ptr %16, align 8
  %416 = extractvalue { ptr, i32 } %414, 1
  store i32 %416, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #5
  br label %424

417:                                              ; preds = %412, %387
  %418 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %37, i32 0, i32 7
  %419 = load ptr, ptr %418, align 8, !tbaa !15
  %420 = load ptr, ptr %18, align 8, !tbaa !5
  %421 = invoke noundef ptr @_ZNK7glslang13TIntermediate13addConversionENS_10TBasicTypeEPNS_12TIntermTypedE(ptr noundef nonnull align 8 dereferenceable(1784) %419, i32 noundef 7, ptr noundef %420)
          to label %422 unwind label %392

422:                                              ; preds = %417
  store ptr %421, ptr %18, align 8, !tbaa !5
  %423 = load ptr, ptr %18, align 8, !tbaa !5
  store ptr %423, ptr %7, align 8
  store i32 1, ptr %21, align 4
  call void @_ZN7glslang5TTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(144) %30) #5
  call void @llvm.lifetime.end.p0(i64 144, ptr %30) #5
  br label %905

424:                                              ; preds = %413, %392
  call void @_ZN7glslang5TTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(144) %30) #5
  call void @llvm.lifetime.end.p0(i64 144, ptr %30) #5
  br label %907

425:                                              ; preds = %369
  br label %862

426:                                              ; preds = %106, %106, %106, %106
  store i32 472, ptr %19, align 4, !tbaa !9
  br label %862

427:                                              ; preds = %106
  %428 = load ptr, ptr %9, align 8, !tbaa !5
  %429 = load ptr, ptr %428, align 8, !tbaa !13
  %430 = getelementptr inbounds ptr, ptr %429, i64 24
  %431 = load ptr, ptr %430, align 8
  %432 = call noundef zeroext i1 %431(ptr noundef nonnull align 8 dereferenceable(144) %428)
  br i1 %432, label %433, label %452

433:                                              ; preds = %427
  %434 = load ptr, ptr %11, align 8, !tbaa !5
  %435 = load ptr, ptr %434, align 8, !tbaa !13
  %436 = getelementptr inbounds ptr, ptr %435, i64 30
  %437 = load ptr, ptr %436, align 8
  %438 = call noundef nonnull align 8 dereferenceable(144) ptr %437(ptr noundef nonnull align 8 dereferenceable(176) %434)
  %439 = call noundef zeroext i1 @_ZNK7glslang5TType11isReferenceEv(ptr noundef nonnull align 8 dereferenceable(144) %438)
  br i1 %439, label %440, label %452

440:                                              ; preds = %433
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #5
  %441 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %37, i32 0, i32 7
  %442 = load ptr, ptr %441, align 8, !tbaa !15
  %443 = load ptr, ptr %11, align 8, !tbaa !5
  %444 = load ptr, ptr %443, align 8, !tbaa !13
  %445 = getelementptr inbounds ptr, ptr %444, i64 0
  %446 = load ptr, ptr %445, align 8
  %447 = call noundef nonnull align 8 dereferenceable(24) ptr %446(ptr noundef nonnull align 8 dereferenceable(32) %443)
  %448 = load ptr, ptr %11, align 8, !tbaa !5
  %449 = load ptr, ptr %9, align 8, !tbaa !5
  %450 = call noundef ptr @_ZN7glslang13TIntermediate22addBuiltInFunctionCallERKNS_10TSourceLocENS_9TOperatorEbP11TIntermNodeRKNS_5TTypeE(ptr noundef nonnull align 8 dereferenceable(1784) %442, ptr noundef nonnull align 8 dereferenceable(24) %447, i32 noundef 149, i1 noundef zeroext true, ptr noundef %448, ptr noundef nonnull align 8 dereferenceable(144) %449)
  store ptr %450, ptr %32, align 8, !tbaa !5
  %451 = load ptr, ptr %32, align 8, !tbaa !5
  store ptr %451, ptr %7, align 8
  store i32 1, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #5
  br label %905

452:                                              ; preds = %433, %427
  br label %453

453:                                              ; preds = %452, %106, %106, %106
  store i32 473, ptr %19, align 4, !tbaa !9
  br label %862

454:                                              ; preds = %106
  %455 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %37, i32 0, i32 7
  %456 = load ptr, ptr %455, align 8, !tbaa !15
  %457 = load ptr, ptr %11, align 8, !tbaa !5
  %458 = load ptr, ptr %457, align 8, !tbaa !13
  %459 = getelementptr inbounds ptr, ptr %458, i64 0
  %460 = load ptr, ptr %459, align 8
  %461 = call noundef nonnull align 8 dereferenceable(24) ptr %460(ptr noundef nonnull align 8 dereferenceable(32) %457)
  %462 = load ptr, ptr %11, align 8, !tbaa !5
  %463 = load ptr, ptr %9, align 8, !tbaa !5
  %464 = call noundef ptr @_ZN7glslang13TIntermediate22addBuiltInFunctionCallERKNS_10TSourceLocENS_9TOperatorEbP11TIntermNodeRKNS_5TTypeE(ptr noundef nonnull align 8 dereferenceable(1784) %456, ptr noundef nonnull align 8 dereferenceable(24) %461, i32 noundef 15, i1 noundef zeroext true, ptr noundef %462, ptr noundef nonnull align 8 dereferenceable(144) %463)
  store ptr %464, ptr %18, align 8, !tbaa !5
  %465 = load ptr, ptr %18, align 8, !tbaa !5
  store ptr %465, ptr %7, align 8
  store i32 1, ptr %21, align 4
  br label %905

466:                                              ; preds = %106
  %467 = load ptr, ptr %11, align 8, !tbaa !5
  %468 = load ptr, ptr %467, align 8, !tbaa !13
  %469 = getelementptr inbounds ptr, ptr %468, i64 30
  %470 = load ptr, ptr %469, align 8
  %471 = call noundef nonnull align 8 dereferenceable(144) ptr %470(ptr noundef nonnull align 8 dereferenceable(176) %467)
  %472 = call noundef zeroext i1 @_ZNK7glslang5TType11isReferenceEv(ptr noundef nonnull align 8 dereferenceable(144) %471)
  br i1 %472, label %473, label %485

473:                                              ; preds = %466
  %474 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %37, i32 0, i32 7
  %475 = load ptr, ptr %474, align 8, !tbaa !15
  %476 = load ptr, ptr %11, align 8, !tbaa !5
  %477 = load ptr, ptr %476, align 8, !tbaa !13
  %478 = getelementptr inbounds ptr, ptr %477, i64 0
  %479 = load ptr, ptr %478, align 8
  %480 = call noundef nonnull align 8 dereferenceable(24) ptr %479(ptr noundef nonnull align 8 dereferenceable(32) %476)
  %481 = load ptr, ptr %11, align 8, !tbaa !5
  %482 = load ptr, ptr %9, align 8, !tbaa !5
  %483 = call noundef ptr @_ZN7glslang13TIntermediate22addBuiltInFunctionCallERKNS_10TSourceLocENS_9TOperatorEbP11TIntermNodeRKNS_5TTypeE(ptr noundef nonnull align 8 dereferenceable(1784) %475, ptr noundef nonnull align 8 dereferenceable(24) %480, i32 noundef 571, i1 noundef zeroext true, ptr noundef %481, ptr noundef nonnull align 8 dereferenceable(144) %482)
  store ptr %483, ptr %18, align 8, !tbaa !5
  %484 = load ptr, ptr %18, align 8, !tbaa !5
  store ptr %484, ptr %7, align 8
  store i32 1, ptr %21, align 4
  br label %905

485:                                              ; preds = %466
  %486 = load ptr, ptr %11, align 8, !tbaa !5
  %487 = load ptr, ptr %486, align 8, !tbaa !13
  %488 = getelementptr inbounds ptr, ptr %487, i64 30
  %489 = load ptr, ptr %488, align 8
  %490 = call noundef nonnull align 8 dereferenceable(144) ptr %489(ptr noundef nonnull align 8 dereferenceable(176) %486)
  %491 = load ptr, ptr %490, align 8, !tbaa !13
  %492 = getelementptr inbounds ptr, ptr %491, i64 24
  %493 = load ptr, ptr %492, align 8
  %494 = call noundef zeroext i1 %493(ptr noundef nonnull align 8 dereferenceable(144) %490)
  br i1 %494, label %495, label %518

495:                                              ; preds = %485
  %496 = load ptr, ptr %11, align 8, !tbaa !5
  %497 = load ptr, ptr %496, align 8, !tbaa !13
  %498 = getelementptr inbounds ptr, ptr %497, i64 30
  %499 = load ptr, ptr %498, align 8
  %500 = call noundef nonnull align 8 dereferenceable(144) ptr %499(ptr noundef nonnull align 8 dereferenceable(176) %496)
  %501 = load ptr, ptr %500, align 8, !tbaa !13
  %502 = getelementptr inbounds ptr, ptr %501, i64 7
  %503 = load ptr, ptr %502, align 8
  %504 = call noundef i32 %503(ptr noundef nonnull align 8 dereferenceable(144) %500)
  %505 = icmp eq i32 %504, 11
  br i1 %505, label %506, label %518

506:                                              ; preds = %495
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #5
  %507 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %37, i32 0, i32 7
  %508 = load ptr, ptr %507, align 8, !tbaa !15
  %509 = load ptr, ptr %11, align 8, !tbaa !5
  %510 = load ptr, ptr %509, align 8, !tbaa !13
  %511 = getelementptr inbounds ptr, ptr %510, i64 0
  %512 = load ptr, ptr %511, align 8
  %513 = call noundef nonnull align 8 dereferenceable(24) ptr %512(ptr noundef nonnull align 8 dereferenceable(32) %509)
  %514 = load ptr, ptr %11, align 8, !tbaa !5
  %515 = load ptr, ptr %9, align 8, !tbaa !5
  %516 = call noundef ptr @_ZN7glslang13TIntermediate22addBuiltInFunctionCallERKNS_10TSourceLocENS_9TOperatorEbP11TIntermNodeRKNS_5TTypeE(ptr noundef nonnull align 8 dereferenceable(1784) %508, ptr noundef nonnull align 8 dereferenceable(24) %513, i32 noundef 148, i1 noundef zeroext true, ptr noundef %514, ptr noundef nonnull align 8 dereferenceable(144) %515)
  store ptr %516, ptr %33, align 8, !tbaa !5
  %517 = load ptr, ptr %33, align 8, !tbaa !5
  store ptr %517, ptr %7, align 8
  store i32 1, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #5
  br label %905

518:                                              ; preds = %495, %485
  %519 = load ptr, ptr %11, align 8, !tbaa !5
  %520 = load ptr, ptr %519, align 8, !tbaa !13
  %521 = getelementptr inbounds ptr, ptr %520, i64 30
  %522 = load ptr, ptr %521, align 8
  %523 = call noundef nonnull align 8 dereferenceable(144) ptr %522(ptr noundef nonnull align 8 dereferenceable(176) %519)
  %524 = load ptr, ptr %523, align 8, !tbaa !13
  %525 = getelementptr inbounds ptr, ptr %524, i64 27
  %526 = load ptr, ptr %525, align 8
  %527 = call noundef zeroext i1 %526(ptr noundef nonnull align 8 dereferenceable(144) %523)
  br i1 %527, label %528, label %562

528:                                              ; preds = %518
  %529 = load ptr, ptr %11, align 8, !tbaa !5
  %530 = load ptr, ptr %529, align 8, !tbaa !13
  %531 = getelementptr inbounds ptr, ptr %530, i64 30
  %532 = load ptr, ptr %531, align 8
  %533 = call noundef nonnull align 8 dereferenceable(144) ptr %532(ptr noundef nonnull align 8 dereferenceable(176) %529)
  %534 = load ptr, ptr %533, align 8, !tbaa !13
  %535 = getelementptr inbounds ptr, ptr %534, i64 7
  %536 = load ptr, ptr %535, align 8
  %537 = call noundef i32 %536(ptr noundef nonnull align 8 dereferenceable(144) %533)
  %538 = icmp eq i32 %537, 9
  br i1 %538, label %539, label %562

539:                                              ; preds = %528
  %540 = load ptr, ptr %11, align 8, !tbaa !5
  %541 = load ptr, ptr %540, align 8, !tbaa !13
  %542 = getelementptr inbounds ptr, ptr %541, i64 38
  %543 = load ptr, ptr %542, align 8
  %544 = call noundef i32 %543(ptr noundef nonnull align 8 dereferenceable(176) %540)
  %545 = icmp eq i32 %544, 2
  br i1 %545, label %546, label %562

546:                                              ; preds = %539
  %547 = load ptr, ptr %12, align 8, !tbaa !5
  %548 = load ptr, ptr %37, align 8, !tbaa !13
  %549 = getelementptr inbounds ptr, ptr %548, i64 5
  %550 = load ptr, ptr %549, align 8
  call void %550(ptr noundef nonnull align 8 dereferenceable(192) %37, ptr noundef nonnull align 8 dereferenceable(24) %547, i32 noundef 1, ptr noundef @_ZN7glslangL31E_GL_EXT_buffer_reference_uvec2E, ptr noundef @.str.825)
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #5
  %551 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %37, i32 0, i32 7
  %552 = load ptr, ptr %551, align 8, !tbaa !15
  %553 = load ptr, ptr %11, align 8, !tbaa !5
  %554 = load ptr, ptr %553, align 8, !tbaa !13
  %555 = getelementptr inbounds ptr, ptr %554, i64 0
  %556 = load ptr, ptr %555, align 8
  %557 = call noundef nonnull align 8 dereferenceable(24) ptr %556(ptr noundef nonnull align 8 dereferenceable(32) %553)
  %558 = load ptr, ptr %11, align 8, !tbaa !5
  %559 = load ptr, ptr %9, align 8, !tbaa !5
  %560 = call noundef ptr @_ZN7glslang13TIntermediate22addBuiltInFunctionCallERKNS_10TSourceLocENS_9TOperatorEbP11TIntermNodeRKNS_5TTypeE(ptr noundef nonnull align 8 dereferenceable(1784) %552, ptr noundef nonnull align 8 dereferenceable(24) %557, i32 noundef 150, i1 noundef zeroext true, ptr noundef %558, ptr noundef nonnull align 8 dereferenceable(144) %559)
  store ptr %560, ptr %34, align 8, !tbaa !5
  %561 = load ptr, ptr %34, align 8, !tbaa !5
  store ptr %561, ptr %7, align 8
  store i32 1, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #5
  br label %905

562:                                              ; preds = %539, %528, %518
  store ptr null, ptr %7, align 8
  store i32 1, ptr %21, align 4
  br label %905

563:                                              ; preds = %106
  %564 = load ptr, ptr %11, align 8, !tbaa !5
  %565 = load ptr, ptr %564, align 8, !tbaa !13
  %566 = getelementptr inbounds ptr, ptr %565, i64 30
  %567 = load ptr, ptr %566, align 8
  %568 = call noundef nonnull align 8 dereferenceable(144) ptr %567(ptr noundef nonnull align 8 dereferenceable(176) %564)
  %569 = call noundef zeroext i1 @_ZNK7glslang5TType9isCoopMatEv(ptr noundef nonnull align 8 dereferenceable(144) %568)
  br i1 %569, label %611, label %570

570:                                              ; preds = %563
  %571 = load ptr, ptr %9, align 8, !tbaa !5
  %572 = load ptr, ptr %571, align 8, !tbaa !13
  %573 = getelementptr inbounds ptr, ptr %572, i64 7
  %574 = load ptr, ptr %573, align 8
  %575 = call noundef i32 %574(ptr noundef nonnull align 8 dereferenceable(144) %571)
  %576 = load ptr, ptr %11, align 8, !tbaa !5
  %577 = load ptr, ptr %576, align 8, !tbaa !13
  %578 = getelementptr inbounds ptr, ptr %577, i64 30
  %579 = load ptr, ptr %578, align 8
  %580 = call noundef nonnull align 8 dereferenceable(144) ptr %579(ptr noundef nonnull align 8 dereferenceable(176) %576)
  %581 = load ptr, ptr %580, align 8, !tbaa !13
  %582 = getelementptr inbounds ptr, ptr %581, i64 7
  %583 = load ptr, ptr %582, align 8
  %584 = call noundef i32 %583(ptr noundef nonnull align 8 dereferenceable(144) %580)
  %585 = icmp ne i32 %575, %584
  br i1 %585, label %586, label %600

586:                                              ; preds = %570
  %587 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %37, i32 0, i32 7
  %588 = load ptr, ptr %587, align 8, !tbaa !15
  %589 = load ptr, ptr %9, align 8, !tbaa !5
  %590 = load ptr, ptr %589, align 8, !tbaa !13
  %591 = getelementptr inbounds ptr, ptr %590, i64 7
  %592 = load ptr, ptr %591, align 8
  %593 = call noundef i32 %592(ptr noundef nonnull align 8 dereferenceable(144) %589)
  %594 = load ptr, ptr %11, align 8, !tbaa !5
  %595 = call noundef ptr @_ZNK7glslang13TIntermediate13addConversionENS_10TBasicTypeEPNS_12TIntermTypedE(ptr noundef nonnull align 8 dereferenceable(1784) %588, i32 noundef %593, ptr noundef %594)
  store ptr %595, ptr %11, align 8, !tbaa !5
  %596 = load ptr, ptr %11, align 8, !tbaa !5
  %597 = icmp eq ptr %596, null
  br i1 %597, label %598, label %599

598:                                              ; preds = %586
  store ptr null, ptr %7, align 8
  store i32 1, ptr %21, align 4
  br label %905

599:                                              ; preds = %586
  br label %600

600:                                              ; preds = %599, %570
  %601 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %37, i32 0, i32 7
  %602 = load ptr, ptr %601, align 8, !tbaa !15
  %603 = load ptr, ptr %11, align 8, !tbaa !5
  %604 = load ptr, ptr %9, align 8, !tbaa !5
  %605 = load ptr, ptr %11, align 8, !tbaa !5
  %606 = load ptr, ptr %605, align 8, !tbaa !13
  %607 = getelementptr inbounds ptr, ptr %606, i64 0
  %608 = load ptr, ptr %607, align 8
  %609 = call noundef nonnull align 8 dereferenceable(24) ptr %608(ptr noundef nonnull align 8 dereferenceable(32) %605)
  %610 = call noundef ptr @_ZN7glslang13TIntermediate20setAggregateOperatorEP11TIntermNodeNS_9TOperatorERKNS_5TTypeERKNS_10TSourceLocE(ptr noundef nonnull align 8 dereferenceable(1784) %602, ptr noundef %603, i32 noundef 572, ptr noundef nonnull align 8 dereferenceable(144) %604, ptr noundef nonnull align 8 dereferenceable(24) %609)
  store ptr %610, ptr %11, align 8, !tbaa !5
  br label %775

611:                                              ; preds = %563
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #5
  store i32 0, ptr %35, align 4, !tbaa !9
  %612 = load ptr, ptr %9, align 8, !tbaa !5
  %613 = load ptr, ptr %612, align 8, !tbaa !13
  %614 = getelementptr inbounds ptr, ptr %613, i64 7
  %615 = load ptr, ptr %614, align 8
  %616 = call noundef i32 %615(ptr noundef nonnull align 8 dereferenceable(144) %612)
  switch i32 %616, label %617 [
    i32 8, label %618
    i32 9, label %635
    i32 4, label %653
    i32 5, label %670
    i32 1, label %687
    i32 3, label %704
  ]

617:                                              ; preds = %611
  call void @__assert_fail(ptr noundef @.str.88, ptr noundef @.str.68, i32 noundef 8022, ptr noundef @__PRETTY_FUNCTION__._ZN7glslang13TParseContext16constructBuiltInERKNS_5TTypeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocEb) #6
  unreachable

618:                                              ; preds = %611
  %619 = load ptr, ptr %11, align 8, !tbaa !5
  %620 = load ptr, ptr %619, align 8, !tbaa !13
  %621 = getelementptr inbounds ptr, ptr %620, i64 30
  %622 = load ptr, ptr %621, align 8
  %623 = call noundef nonnull align 8 dereferenceable(144) ptr %622(ptr noundef nonnull align 8 dereferenceable(176) %619)
  %624 = load ptr, ptr %623, align 8, !tbaa !13
  %625 = getelementptr inbounds ptr, ptr %624, i64 7
  %626 = load ptr, ptr %625, align 8
  %627 = call noundef i32 %626(ptr noundef nonnull align 8 dereferenceable(144) %623)
  switch i32 %627, label %633 [
    i32 1, label %628
    i32 3, label %629
    i32 5, label %630
    i32 4, label %631
    i32 9, label %632
  ]

628:                                              ; preds = %618
  store i32 130, ptr %35, align 4, !tbaa !9
  br label %634

629:                                              ; preds = %618
  store i32 120, ptr %35, align 4, !tbaa !9
  br label %634

630:                                              ; preds = %618
  store i32 47, ptr %35, align 4, !tbaa !9
  br label %634

631:                                              ; preds = %618
  store i32 39, ptr %35, align 4, !tbaa !9
  br label %634

632:                                              ; preds = %618
  store i32 87, ptr %35, align 4, !tbaa !9
  br label %634

633:                                              ; preds = %618
  call void @__assert_fail(ptr noundef @.str.88, ptr noundef @.str.68, i32 noundef 8031, ptr noundef @__PRETTY_FUNCTION__._ZN7glslang13TParseContext16constructBuiltInERKNS_5TTypeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocEb) #6
  unreachable

634:                                              ; preds = %632, %631, %630, %629, %628
  br label %721

635:                                              ; preds = %611
  %636 = load ptr, ptr %11, align 8, !tbaa !5
  %637 = load ptr, ptr %636, align 8, !tbaa !13
  %638 = getelementptr inbounds ptr, ptr %637, i64 30
  %639 = load ptr, ptr %638, align 8
  %640 = call noundef nonnull align 8 dereferenceable(144) ptr %639(ptr noundef nonnull align 8 dereferenceable(176) %636)
  %641 = load ptr, ptr %640, align 8, !tbaa !13
  %642 = getelementptr inbounds ptr, ptr %641, i64 7
  %643 = load ptr, ptr %642, align 8
  %644 = call noundef i32 %643(ptr noundef nonnull align 8 dereferenceable(144) %640)
  switch i32 %644, label %651 [
    i32 1, label %645
    i32 3, label %646
    i32 5, label %647
    i32 4, label %648
    i32 8, label %649
    i32 9, label %650
  ]

645:                                              ; preds = %635
  store i32 134, ptr %35, align 4, !tbaa !9
  br label %652

646:                                              ; preds = %635
  store i32 124, ptr %35, align 4, !tbaa !9
  br label %652

647:                                              ; preds = %635
  store i32 50, ptr %35, align 4, !tbaa !9
  br label %652

648:                                              ; preds = %635
  store i32 43, ptr %35, align 4, !tbaa !9
  br label %652

649:                                              ; preds = %635
  store i32 83, ptr %35, align 4, !tbaa !9
  br label %652

650:                                              ; preds = %635
  store i32 85, ptr %35, align 4, !tbaa !9
  br label %652

651:                                              ; preds = %635
  call void @__assert_fail(ptr noundef @.str.88, ptr noundef @.str.68, i32 noundef 8042, ptr noundef @__PRETTY_FUNCTION__._ZN7glslang13TParseContext16constructBuiltInERKNS_5TTypeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocEb) #6
  unreachable

652:                                              ; preds = %650, %649, %648, %647, %646, %645
  br label %721

653:                                              ; preds = %611
  %654 = load ptr, ptr %11, align 8, !tbaa !5
  %655 = load ptr, ptr %654, align 8, !tbaa !13
  %656 = getelementptr inbounds ptr, ptr %655, i64 30
  %657 = load ptr, ptr %656, align 8
  %658 = call noundef nonnull align 8 dereferenceable(144) ptr %657(ptr noundef nonnull align 8 dereferenceable(176) %654)
  %659 = load ptr, ptr %658, align 8, !tbaa !13
  %660 = getelementptr inbounds ptr, ptr %659, i64 7
  %661 = load ptr, ptr %660, align 8
  %662 = call noundef i32 %661(ptr noundef nonnull align 8 dereferenceable(144) %658)
  switch i32 %662, label %668 [
    i32 1, label %663
    i32 3, label %664
    i32 5, label %665
    i32 8, label %666
    i32 9, label %667
  ]

663:                                              ; preds = %653
  store i32 128, ptr %35, align 4, !tbaa !9
  br label %669

664:                                              ; preds = %653
  store i32 118, ptr %35, align 4, !tbaa !9
  br label %669

665:                                              ; preds = %653
  store i32 45, ptr %35, align 4, !tbaa !9
  br label %669

666:                                              ; preds = %653
  store i32 78, ptr %35, align 4, !tbaa !9
  br label %669

667:                                              ; preds = %653
  store i32 85, ptr %35, align 4, !tbaa !9
  br label %669

668:                                              ; preds = %653
  call void @__assert_fail(ptr noundef @.str.88, ptr noundef @.str.68, i32 noundef 8052, ptr noundef @__PRETTY_FUNCTION__._ZN7glslang13TParseContext16constructBuiltInERKNS_5TTypeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocEb) #6
  unreachable

669:                                              ; preds = %667, %666, %665, %664, %663
  br label %721

670:                                              ; preds = %611
  %671 = load ptr, ptr %11, align 8, !tbaa !5
  %672 = load ptr, ptr %671, align 8, !tbaa !13
  %673 = getelementptr inbounds ptr, ptr %672, i64 30
  %674 = load ptr, ptr %673, align 8
  %675 = call noundef nonnull align 8 dereferenceable(144) ptr %674(ptr noundef nonnull align 8 dereferenceable(176) %671)
  %676 = load ptr, ptr %675, align 8, !tbaa !13
  %677 = getelementptr inbounds ptr, ptr %676, i64 7
  %678 = load ptr, ptr %677, align 8
  %679 = call noundef i32 %678(ptr noundef nonnull align 8 dereferenceable(144) %675)
  switch i32 %679, label %685 [
    i32 1, label %680
    i32 3, label %681
    i32 4, label %682
    i32 8, label %683
    i32 9, label %684
  ]

680:                                              ; preds = %670
  store i32 132, ptr %35, align 4, !tbaa !9
  br label %686

681:                                              ; preds = %670
  store i32 122, ptr %35, align 4, !tbaa !9
  br label %686

682:                                              ; preds = %670
  store i32 41, ptr %35, align 4, !tbaa !9
  br label %686

683:                                              ; preds = %670
  store i32 81, ptr %35, align 4, !tbaa !9
  br label %686

684:                                              ; preds = %670
  store i32 89, ptr %35, align 4, !tbaa !9
  br label %686

685:                                              ; preds = %670
  call void @__assert_fail(ptr noundef @.str.88, ptr noundef @.str.68, i32 noundef 8062, ptr noundef @__PRETTY_FUNCTION__._ZN7glslang13TParseContext16constructBuiltInERKNS_5TTypeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocEb) #6
  unreachable

686:                                              ; preds = %684, %683, %682, %681, %680
  br label %721

687:                                              ; preds = %611
  %688 = load ptr, ptr %11, align 8, !tbaa !5
  %689 = load ptr, ptr %688, align 8, !tbaa !13
  %690 = getelementptr inbounds ptr, ptr %689, i64 30
  %691 = load ptr, ptr %690, align 8
  %692 = call noundef nonnull align 8 dereferenceable(144) ptr %691(ptr noundef nonnull align 8 dereferenceable(176) %688)
  %693 = load ptr, ptr %692, align 8, !tbaa !13
  %694 = getelementptr inbounds ptr, ptr %693, i64 7
  %695 = load ptr, ptr %694, align 8
  %696 = call noundef i32 %695(ptr noundef nonnull align 8 dereferenceable(144) %692)
  switch i32 %696, label %702 [
    i32 3, label %697
    i32 4, label %698
    i32 5, label %699
    i32 8, label %700
    i32 9, label %701
  ]

697:                                              ; preds = %687
  store i32 126, ptr %35, align 4, !tbaa !9
  br label %703

698:                                              ; preds = %687
  store i32 53, ptr %35, align 4, !tbaa !9
  br label %703

699:                                              ; preds = %687
  store i32 56, ptr %35, align 4, !tbaa !9
  br label %703

700:                                              ; preds = %687
  store i32 93, ptr %35, align 4, !tbaa !9
  br label %703

701:                                              ; preds = %687
  store i32 96, ptr %35, align 4, !tbaa !9
  br label %703

702:                                              ; preds = %687
  call void @__assert_fail(ptr noundef @.str.88, ptr noundef @.str.68, i32 noundef 8072, ptr noundef @__PRETTY_FUNCTION__._ZN7glslang13TParseContext16constructBuiltInERKNS_5TTypeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocEb) #6
  unreachable

703:                                              ; preds = %701, %700, %699, %698, %697
  br label %721

704:                                              ; preds = %611
  %705 = load ptr, ptr %11, align 8, !tbaa !5
  %706 = load ptr, ptr %705, align 8, !tbaa !13
  %707 = getelementptr inbounds ptr, ptr %706, i64 30
  %708 = load ptr, ptr %707, align 8
  %709 = call noundef nonnull align 8 dereferenceable(144) ptr %708(ptr noundef nonnull align 8 dereferenceable(176) %705)
  %710 = load ptr, ptr %709, align 8, !tbaa !13
  %711 = getelementptr inbounds ptr, ptr %710, i64 7
  %712 = load ptr, ptr %711, align 8
  %713 = call noundef i32 %712(ptr noundef nonnull align 8 dereferenceable(144) %709)
  switch i32 %713, label %719 [
    i32 1, label %714
    i32 4, label %715
    i32 5, label %716
    i32 8, label %717
    i32 9, label %718
  ]

714:                                              ; preds = %704
  store i32 136, ptr %35, align 4, !tbaa !9
  br label %720

715:                                              ; preds = %704
  store i32 52, ptr %35, align 4, !tbaa !9
  br label %720

716:                                              ; preds = %704
  store i32 55, ptr %35, align 4, !tbaa !9
  br label %720

717:                                              ; preds = %704
  store i32 92, ptr %35, align 4, !tbaa !9
  br label %720

718:                                              ; preds = %704
  store i32 95, ptr %35, align 4, !tbaa !9
  br label %720

719:                                              ; preds = %704
  call void @__assert_fail(ptr noundef @.str.88, ptr noundef @.str.68, i32 noundef 8082, ptr noundef @__PRETTY_FUNCTION__._ZN7glslang13TParseContext16constructBuiltInERKNS_5TTypeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocEb) #6
  unreachable

720:                                              ; preds = %718, %717, %716, %715, %714
  br label %721

721:                                              ; preds = %720, %703, %686, %669, %652, %634
  %722 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %37, i32 0, i32 7
  %723 = load ptr, ptr %722, align 8, !tbaa !15
  %724 = load i32, ptr %35, align 4, !tbaa !9
  %725 = load ptr, ptr %11, align 8, !tbaa !5
  %726 = load ptr, ptr %11, align 8, !tbaa !5
  %727 = load ptr, ptr %726, align 8, !tbaa !13
  %728 = getelementptr inbounds ptr, ptr %727, i64 0
  %729 = load ptr, ptr %728, align 8
  %730 = call noundef nonnull align 8 dereferenceable(24) ptr %729(ptr noundef nonnull align 8 dereferenceable(32) %726)
  %731 = load ptr, ptr %9, align 8, !tbaa !5
  %732 = call noundef ptr @_ZNK7glslang13TIntermediate12addUnaryNodeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocERKNS_5TTypeE(ptr noundef nonnull align 8 dereferenceable(1784) %723, i32 noundef %724, ptr noundef %725, ptr noundef nonnull align 8 dereferenceable(24) %730, ptr noundef nonnull align 8 dereferenceable(144) %731)
  store ptr %732, ptr %11, align 8, !tbaa !5
  %733 = load ptr, ptr %11, align 8, !tbaa !5
  %734 = load ptr, ptr %733, align 8, !tbaa !13
  %735 = getelementptr inbounds ptr, ptr %734, i64 7
  %736 = load ptr, ptr %735, align 8
  %737 = call noundef ptr %736(ptr noundef nonnull align 8 dereferenceable(32) %733)
  %738 = load ptr, ptr %737, align 8, !tbaa !13
  %739 = getelementptr inbounds ptr, ptr %738, i64 49
  %740 = load ptr, ptr %739, align 8
  %741 = call noundef ptr %740(ptr noundef nonnull align 8 dereferenceable(240) %737)
  %742 = load ptr, ptr %741, align 8, !tbaa !13
  %743 = getelementptr inbounds ptr, ptr %742, i64 5
  %744 = load ptr, ptr %743, align 8
  %745 = call noundef ptr %744(ptr noundef nonnull align 8 dereferenceable(32) %741)
  %746 = icmp ne ptr %745, null
  br i1 %746, label %747, label %771

747:                                              ; preds = %721
  %748 = load ptr, ptr %11, align 8, !tbaa !5
  %749 = load ptr, ptr %748, align 8, !tbaa !13
  %750 = getelementptr inbounds ptr, ptr %749, i64 7
  %751 = load ptr, ptr %750, align 8
  %752 = call noundef ptr %751(ptr noundef nonnull align 8 dereferenceable(32) %748)
  %753 = load ptr, ptr %752, align 8, !tbaa !13
  %754 = getelementptr inbounds ptr, ptr %753, i64 49
  %755 = load ptr, ptr %754, align 8
  %756 = call noundef ptr %755(ptr noundef nonnull align 8 dereferenceable(240) %752)
  %757 = load ptr, ptr %756, align 8, !tbaa !13
  %758 = getelementptr inbounds ptr, ptr %757, i64 5
  %759 = load ptr, ptr %758, align 8
  %760 = call noundef ptr %759(ptr noundef nonnull align 8 dereferenceable(32) %756)
  %761 = load i32, ptr %35, align 4, !tbaa !9
  %762 = load ptr, ptr %11, align 8, !tbaa !5
  %763 = load ptr, ptr %762, align 8, !tbaa !13
  %764 = getelementptr inbounds ptr, ptr %763, i64 30
  %765 = load ptr, ptr %764, align 8
  %766 = call noundef nonnull align 8 dereferenceable(144) ptr %765(ptr noundef nonnull align 8 dereferenceable(176) %762)
  %767 = load ptr, ptr %760, align 8, !tbaa !13
  %768 = getelementptr inbounds ptr, ptr %767, i64 49
  %769 = load ptr, ptr %768, align 8
  %770 = call noundef ptr %769(ptr noundef nonnull align 8 dereferenceable(193) %760, i32 noundef %761, ptr noundef nonnull align 8 dereferenceable(144) %766)
  store ptr %770, ptr %7, align 8
  store i32 1, ptr %21, align 4
  br label %772

771:                                              ; preds = %721
  store i32 0, ptr %21, align 4
  br label %772

772:                                              ; preds = %771, %747
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #5
  %773 = load i32, ptr %21, align 4
  switch i32 %773, label %905 [
    i32 0, label %774
  ]

774:                                              ; preds = %772
  br label %775

775:                                              ; preds = %774, %600
  %776 = load ptr, ptr %11, align 8, !tbaa !5
  store ptr %776, ptr %7, align 8
  store i32 1, ptr %21, align 4
  br label %905

777:                                              ; preds = %106
  %778 = load ptr, ptr %11, align 8, !tbaa !5
  %779 = load ptr, ptr %778, align 8, !tbaa !13
  %780 = getelementptr inbounds ptr, ptr %779, i64 30
  %781 = load ptr, ptr %780, align 8
  %782 = call noundef nonnull align 8 dereferenceable(144) ptr %781(ptr noundef nonnull align 8 dereferenceable(176) %778)
  %783 = load ptr, ptr %782, align 8, !tbaa !13
  %784 = getelementptr inbounds ptr, ptr %783, i64 24
  %785 = load ptr, ptr %784, align 8
  %786 = call noundef zeroext i1 %785(ptr noundef nonnull align 8 dereferenceable(144) %782)
  br i1 %786, label %787, label %813

787:                                              ; preds = %777
  %788 = load ptr, ptr %11, align 8, !tbaa !5
  %789 = load ptr, ptr %788, align 8, !tbaa !13
  %790 = getelementptr inbounds ptr, ptr %789, i64 30
  %791 = load ptr, ptr %790, align 8
  %792 = call noundef nonnull align 8 dereferenceable(144) ptr %791(ptr noundef nonnull align 8 dereferenceable(176) %788)
  %793 = load ptr, ptr %792, align 8, !tbaa !13
  %794 = getelementptr inbounds ptr, ptr %793, i64 7
  %795 = load ptr, ptr %794, align 8
  %796 = call noundef i32 %795(ptr noundef nonnull align 8 dereferenceable(144) %792)
  %797 = icmp eq i32 %796, 11
  br i1 %797, label %798, label %813

798:                                              ; preds = %787
  %799 = load ptr, ptr %12, align 8, !tbaa !5
  %800 = load ptr, ptr %37, align 8, !tbaa !13
  %801 = getelementptr inbounds ptr, ptr %800, i64 5
  %802 = load ptr, ptr %801, align 8
  call void %802(ptr noundef nonnull align 8 dereferenceable(192) %37, ptr noundef nonnull align 8 dereferenceable(24) %799, i32 noundef 1, ptr noundef @_ZN7glslangL20E_GL_EXT_ray_tracingE, ptr noundef @.str.826)
  %803 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %37, i32 0, i32 7
  %804 = load ptr, ptr %803, align 8, !tbaa !15
  %805 = load ptr, ptr %11, align 8, !tbaa !5
  %806 = load ptr, ptr %805, align 8, !tbaa !13
  %807 = getelementptr inbounds ptr, ptr %806, i64 0
  %808 = load ptr, ptr %807, align 8
  %809 = call noundef nonnull align 8 dereferenceable(24) ptr %808(ptr noundef nonnull align 8 dereferenceable(32) %805)
  %810 = load ptr, ptr %11, align 8, !tbaa !5
  %811 = load ptr, ptr %9, align 8, !tbaa !5
  %812 = call noundef ptr @_ZN7glslang13TIntermediate22addBuiltInFunctionCallERKNS_10TSourceLocENS_9TOperatorEbP11TIntermNodeRKNS_5TTypeE(ptr noundef nonnull align 8 dereferenceable(1784) %804, ptr noundef nonnull align 8 dereferenceable(24) %809, i32 noundef 152, i1 noundef zeroext true, ptr noundef %810, ptr noundef nonnull align 8 dereferenceable(144) %811)
  store ptr %812, ptr %7, align 8
  store i32 1, ptr %21, align 4
  br label %905

813:                                              ; preds = %787, %777
  %814 = load ptr, ptr %11, align 8, !tbaa !5
  %815 = load ptr, ptr %814, align 8, !tbaa !13
  %816 = getelementptr inbounds ptr, ptr %815, i64 30
  %817 = load ptr, ptr %816, align 8
  %818 = call noundef nonnull align 8 dereferenceable(144) ptr %817(ptr noundef nonnull align 8 dereferenceable(176) %814)
  %819 = load ptr, ptr %818, align 8, !tbaa !13
  %820 = getelementptr inbounds ptr, ptr %819, i64 27
  %821 = load ptr, ptr %820, align 8
  %822 = call noundef zeroext i1 %821(ptr noundef nonnull align 8 dereferenceable(144) %818)
  br i1 %822, label %823, label %856

823:                                              ; preds = %813
  %824 = load ptr, ptr %11, align 8, !tbaa !5
  %825 = load ptr, ptr %824, align 8, !tbaa !13
  %826 = getelementptr inbounds ptr, ptr %825, i64 30
  %827 = load ptr, ptr %826, align 8
  %828 = call noundef nonnull align 8 dereferenceable(144) ptr %827(ptr noundef nonnull align 8 dereferenceable(176) %824)
  %829 = load ptr, ptr %828, align 8, !tbaa !13
  %830 = getelementptr inbounds ptr, ptr %829, i64 7
  %831 = load ptr, ptr %830, align 8
  %832 = call noundef i32 %831(ptr noundef nonnull align 8 dereferenceable(144) %828)
  %833 = icmp eq i32 %832, 9
  br i1 %833, label %834, label %856

834:                                              ; preds = %823
  %835 = load ptr, ptr %11, align 8, !tbaa !5
  %836 = load ptr, ptr %835, align 8, !tbaa !13
  %837 = getelementptr inbounds ptr, ptr %836, i64 38
  %838 = load ptr, ptr %837, align 8
  %839 = call noundef i32 %838(ptr noundef nonnull align 8 dereferenceable(176) %835)
  %840 = icmp eq i32 %839, 2
  br i1 %840, label %841, label %856

841:                                              ; preds = %834
  %842 = load ptr, ptr %12, align 8, !tbaa !5
  %843 = load ptr, ptr %37, align 8, !tbaa !13
  %844 = getelementptr inbounds ptr, ptr %843, i64 5
  %845 = load ptr, ptr %844, align 8
  call void %845(ptr noundef nonnull align 8 dereferenceable(192) %37, ptr noundef nonnull align 8 dereferenceable(24) %842, i32 noundef 1, ptr noundef @_ZN7glslangL20E_GL_EXT_ray_tracingE, ptr noundef @.str.827)
  %846 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %37, i32 0, i32 7
  %847 = load ptr, ptr %846, align 8, !tbaa !15
  %848 = load ptr, ptr %11, align 8, !tbaa !5
  %849 = load ptr, ptr %848, align 8, !tbaa !13
  %850 = getelementptr inbounds ptr, ptr %849, i64 0
  %851 = load ptr, ptr %850, align 8
  %852 = call noundef nonnull align 8 dereferenceable(24) ptr %851(ptr noundef nonnull align 8 dereferenceable(32) %848)
  %853 = load ptr, ptr %11, align 8, !tbaa !5
  %854 = load ptr, ptr %9, align 8, !tbaa !5
  %855 = call noundef ptr @_ZN7glslang13TIntermediate22addBuiltInFunctionCallERKNS_10TSourceLocENS_9TOperatorEbP11TIntermNodeRKNS_5TTypeE(ptr noundef nonnull align 8 dereferenceable(1784) %847, ptr noundef nonnull align 8 dereferenceable(24) %852, i32 noundef 153, i1 noundef zeroext true, ptr noundef %853, ptr noundef nonnull align 8 dereferenceable(144) %854)
  store ptr %855, ptr %7, align 8
  store i32 1, ptr %21, align 4
  br label %905

856:                                              ; preds = %834, %823, %813
  store ptr null, ptr %7, align 8
  store i32 1, ptr %21, align 4
  br label %905

857:                                              ; preds = %106
  %858 = load ptr, ptr %12, align 8, !tbaa !5
  %859 = load ptr, ptr %37, align 8, !tbaa !13
  %860 = getelementptr inbounds ptr, ptr %859, i64 42
  %861 = load ptr, ptr %860, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %861(ptr noundef nonnull align 8 dereferenceable(1176) %37, ptr noundef nonnull align 8 dereferenceable(24) %858, ptr noundef @.str.828, ptr noundef @.str.2, ptr noundef @.str.2)
  store ptr null, ptr %7, align 8
  store i32 1, ptr %21, align 4
  br label %905

862:                                              ; preds = %453, %426, %425, %368, %311, %254, %197, %140, %139, %138, %109, %108
  %863 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %37, i32 0, i32 7
  %864 = load ptr, ptr %863, align 8, !tbaa !15
  %865 = load i32, ptr %19, align 4, !tbaa !9
  %866 = load ptr, ptr %11, align 8, !tbaa !5
  %867 = load ptr, ptr %11, align 8, !tbaa !5
  %868 = load ptr, ptr %867, align 8, !tbaa !13
  %869 = getelementptr inbounds ptr, ptr %868, i64 0
  %870 = load ptr, ptr %869, align 8
  %871 = call noundef nonnull align 8 dereferenceable(24) ptr %870(ptr noundef nonnull align 8 dereferenceable(32) %867)
  %872 = call noundef ptr @_ZN7glslang13TIntermediate12addUnaryMathENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocE(ptr noundef nonnull align 8 dereferenceable(1784) %864, i32 noundef %865, ptr noundef %866, ptr noundef nonnull align 8 dereferenceable(24) %871)
  store ptr %872, ptr %18, align 8, !tbaa !5
  %873 = load ptr, ptr %18, align 8, !tbaa !5
  %874 = icmp eq ptr %873, null
  br i1 %874, label %875, label %880

875:                                              ; preds = %862
  %876 = load ptr, ptr %12, align 8, !tbaa !5
  %877 = load ptr, ptr %37, align 8, !tbaa !13
  %878 = getelementptr inbounds ptr, ptr %877, i64 42
  %879 = load ptr, ptr %878, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %879(ptr noundef nonnull align 8 dereferenceable(1176) %37, ptr noundef nonnull align 8 dereferenceable(24) %876, ptr noundef @.str.829, ptr noundef @.str.327, ptr noundef @.str.2)
  store ptr null, ptr %7, align 8
  store i32 1, ptr %21, align 4
  br label %905

880:                                              ; preds = %862
  %881 = load i8, ptr %13, align 1, !tbaa !11, !range !38, !noundef !39
  %882 = trunc i8 %881 to i1
  br i1 %882, label %895, label %883

883:                                              ; preds = %880
  %884 = load ptr, ptr %18, align 8, !tbaa !5
  %885 = load ptr, ptr %11, align 8, !tbaa !5
  %886 = icmp ne ptr %884, %885
  br i1 %886, label %887, label %897

887:                                              ; preds = %883
  %888 = load ptr, ptr %18, align 8, !tbaa !5
  %889 = load ptr, ptr %888, align 8, !tbaa !13
  %890 = getelementptr inbounds ptr, ptr %889, i64 30
  %891 = load ptr, ptr %890, align 8
  %892 = call noundef nonnull align 8 dereferenceable(144) ptr %891(ptr noundef nonnull align 8 dereferenceable(176) %888)
  %893 = load ptr, ptr %9, align 8, !tbaa !5
  %894 = call noundef zeroext i1 @_ZNK7glslang5TTypeeqERKS0_(ptr noundef nonnull align 8 dereferenceable(144) %892, ptr noundef nonnull align 8 dereferenceable(144) %893)
  br i1 %894, label %895, label %897

895:                                              ; preds = %887, %880
  %896 = load ptr, ptr %18, align 8, !tbaa !5
  store ptr %896, ptr %7, align 8
  store i32 1, ptr %21, align 4
  br label %905

897:                                              ; preds = %887, %883
  %898 = getelementptr inbounds %"class.glslang::TParseVersions", ptr %37, i32 0, i32 7
  %899 = load ptr, ptr %898, align 8, !tbaa !15
  %900 = load ptr, ptr %18, align 8, !tbaa !5
  %901 = load i32, ptr %10, align 4, !tbaa !9
  %902 = load ptr, ptr %9, align 8, !tbaa !5
  %903 = load ptr, ptr %12, align 8, !tbaa !5
  %904 = call noundef ptr @_ZN7glslang13TIntermediate20setAggregateOperatorEP11TIntermNodeNS_9TOperatorERKNS_5TTypeERKNS_10TSourceLocE(ptr noundef nonnull align 8 dereferenceable(1784) %899, ptr noundef %900, i32 noundef %901, ptr noundef nonnull align 8 dereferenceable(144) %902, ptr noundef nonnull align 8 dereferenceable(24) %903)
  store ptr %904, ptr %7, align 8
  store i32 1, ptr %21, align 4
  br label %905

905:                                              ; preds = %897, %895, %875, %857, %856, %841, %798, %775, %772, %598, %562, %546, %506, %473, %454, %440, %422, %365, %308, %251, %194, %121
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #5
  %906 = load ptr, ptr %7, align 8
  ret ptr %906

907:                                              ; preds = %424, %367, %310, %253, %196
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #5
  br label %908

908:                                              ; preds = %907, %102
  %909 = load ptr, ptr %16, align 8
  %910 = load i32, ptr %17, align 4
  %911 = insertvalue { ptr, i32 } poison, ptr %909, 0
  %912 = insertvalue { ptr, i32 } %911, i32 %910, 1
  resume { ptr, i32 } %912
}

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

declare noundef ptr @_ZNK7glslang13TIntermediate13addConversionENS_10TBasicTypeEPNS_12TIntermTypedE(ptr noundef nonnull align 8 dereferenceable(1784), i32 noundef, ptr noundef) #4

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

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

declare noundef ptr @_ZNK7glslang13TIntermediate12addUnaryNodeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocERKNS_5TTypeE(ptr noundef nonnull align 8 dereferenceable(1784), i32 noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(144)) #4

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


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

%"class.glslang::TType" = type { ptr, i32, [4 x i8], %"class.glslang::TQualifier", ptr, %union.anon.179, ptr, ptr, %"struct.glslang::TSampler", ptr, ptr }
%"class.glslang::TQualifier" = type <{ ptr, i64, i8, [3 x i8], i32, i32, i64, i64, i8, i8, i8, i8, i8, [3 x i8], i32, i8, [3 x i8], i32, ptr }>
%union.anon.179 = type { ptr }
%"struct.glslang::TSampler" = type { i32 }

@.str.2 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.327 = external hidden unnamed_addr constant [12 x i8], align 1
@_ZN7glslangL20E_GL_EXT_ray_tracingE = external hidden constant ptr, align 8
@_ZN7glslangL31E_GL_EXT_buffer_reference_uvec2E = external hidden constant ptr, align 8
@.str.824 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.825 = external hidden unnamed_addr constant [30 x i8], align 1
@__PRETTY_FUNCTION__._ZN7glslang13TParseContext16constructBuiltInERKNS_5TTypeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocEb = external hidden unnamed_addr constant [123 x i8], align 1
@.str.826 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.827 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.828 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.829 = external hidden unnamed_addr constant [14 x i8], align 1
@switch.table._ZN7glslang13TParseContext16constructBuiltInERKNS_5TTypeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocEb = private unnamed_addr constant [9 x i32] [i32 130, i32 130, i32 120, i32 39, i32 47, i32 130, i32 130, i32 130, i32 87], align 4
@switch.table._ZN7glslang13TParseContext16constructBuiltInERKNS_5TTypeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocEb.1 = private unnamed_addr constant [9 x i32] [i32 134, i32 134, i32 124, i32 43, i32 50, i32 134, i32 134, i32 83, i32 85], align 4
@switch.table._ZN7glslang13TParseContext16constructBuiltInERKNS_5TTypeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocEb.2 = private unnamed_addr constant [9 x i32] [i32 128, i32 128, i32 118, i32 128, i32 45, i32 128, i32 128, i32 78, i32 85], align 4
@switch.table._ZN7glslang13TParseContext16constructBuiltInERKNS_5TTypeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocEb.3 = private unnamed_addr constant [9 x i32] [i32 132, i32 132, i32 122, i32 41, i32 132, i32 132, i32 132, i32 81, i32 89], align 4
@switch.table._ZN7glslang13TParseContext16constructBuiltInERKNS_5TTypeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocEb.4 = private unnamed_addr constant [7 x i32] [i32 126, i32 53, i32 56, i32 126, i32 126, i32 93, i32 96], align 4
@switch.table._ZN7glslang13TParseContext16constructBuiltInERKNS_5TTypeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocEb.5 = private unnamed_addr constant [9 x i32] [i32 136, i32 136, i32 136, i32 52, i32 55, i32 136, i32 136, i32 92, i32 95], align 4

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

declare noundef ptr @_ZN7glslang13TIntermediate12addUnaryMathENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocE(ptr noundef nonnull align 8 dereferenceable(1784), i32 noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4

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

declare noundef ptr @_ZN7glslang13TIntermediate20setAggregateOperatorEP11TIntermNodeNS_9TOperatorERKNS_5TTypeERKNS_10TSourceLocE(ptr noundef nonnull align 8 dereferenceable(1784), ptr noundef, i32 noundef, ptr noundef nonnull align 8 dereferenceable(144), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4

declare noundef ptr @_ZN7glslang13TIntermediate22addBuiltInFunctionCallERKNS_10TSourceLocENS_9TOperatorEbP11TIntermNodeRKNS_5TTypeE(ptr noundef nonnull align 8 dereferenceable(1784), ptr noundef nonnull align 8 dereferenceable(24), i32 noundef, i1 noundef zeroext, ptr noundef, ptr noundef nonnull align 8 dereferenceable(144)) local_unnamed_addr #4

declare noundef i32 @_ZNK7glslang13TIntermediate22mapTypeToConstructorOpERKNS_5TTypeE(ptr noundef nonnull align 8 dereferenceable(1784), ptr noundef nonnull align 8 dereferenceable(144)) local_unnamed_addr #4

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

; Function Attrs: mustprogress uwtable
define dso_local noundef ptr @_ZN7glslang13TParseContext16constructBuiltInERKNS_5TTypeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocEb(ptr noundef nonnull align 8 dereferenceable(24912) %0, ptr noundef nonnull align 8 dereferenceable(144) %1, i32 noundef %2, ptr noundef %3, ptr noundef nonnull align 8 dereferenceable(24) %4, i1 noundef zeroext %5) local_unnamed_addr #1 align 2 personality ptr @__gxx_personality_v0 {
  %7 = alloca %"class.glslang::TType", align 8
  %8 = alloca %"class.glslang::TType", align 8
  %9 = alloca %"class.glslang::TType", align 8
  %10 = alloca %"class.glslang::TType", align 8
  %11 = alloca %"class.glslang::TType", align 8
  %12 = alloca %"class.glslang::TType", align 8
  %13 = load ptr, ptr %3, align 8, !tbaa !5
  %14 = getelementptr inbounds i8, ptr %13, i64 240
  %15 = load ptr, ptr %14, align 8
  %16 = tail call noundef nonnull align 8 dereferenceable(144) ptr %15(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %17 = load ptr, ptr %16, align 8, !tbaa !5
  %18 = getelementptr inbounds i8, ptr %17, i64 224
  %19 = load ptr, ptr %18, align 8
  %20 = tail call noundef zeroext i1 %19(ptr noundef nonnull align 8 dereferenceable(144) %16)
  br i1 %20, label %21, label %66

21:                                               ; preds = %6
  %22 = load ptr, ptr %1, align 8, !tbaa !5
  %23 = getelementptr inbounds i8, ptr %22, i64 192
  %24 = load ptr, ptr %23, align 8
  %25 = tail call noundef zeroext i1 %24(ptr noundef nonnull align 8 dereferenceable(144) %1)
  br i1 %25, label %31, label %26

26:                                               ; preds = %21
  %27 = load ptr, ptr %1, align 8, !tbaa !5
  %28 = getelementptr inbounds i8, ptr %27, i64 216
  %29 = load ptr, ptr %28, align 8
  %30 = tail call noundef zeroext i1 %29(ptr noundef nonnull align 8 dereferenceable(144) %1)
  br i1 %30, label %31, label %66

31:                                               ; preds = %26, %21
  %32 = load ptr, ptr %1, align 8, !tbaa !5
  %33 = getelementptr inbounds i8, ptr %32, i64 288
  %34 = load ptr, ptr %33, align 8
  %35 = tail call noundef zeroext i1 %34(ptr noundef nonnull align 8 dereferenceable(144) %1)
  %36 = load ptr, ptr %3, align 8, !tbaa !5
  %37 = getelementptr inbounds i8, ptr %36, i64 240
  %38 = load ptr, ptr %37, align 8
  %39 = tail call noundef nonnull align 8 dereferenceable(144) ptr %38(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %40 = load ptr, ptr %39, align 8, !tbaa !5
  %41 = getelementptr inbounds i8, ptr %40, i64 288
  %42 = load ptr, ptr %41, align 8
  %43 = tail call noundef zeroext i1 %42(ptr noundef nonnull align 8 dereferenceable(144) %39)
  %44 = xor i1 %35, %43
  br i1 %44, label %45, label %66

45:                                               ; preds = %31
  call void @llvm.lifetime.start.p0(i64 144, ptr nonnull %7) #5
  %46 = load ptr, ptr %3, align 8, !tbaa !5
  %47 = getelementptr inbounds i8, ptr %46, i64 256
  %48 = load ptr, ptr %47, align 8
  %49 = tail call noundef i32 %48(ptr noundef nonnull align 8 dereferenceable(176) %3)
  %50 = load ptr, ptr %1, align 8, !tbaa !5
  %51 = getelementptr inbounds i8, ptr %50, i64 96
  %52 = load ptr, ptr %51, align 8
  %53 = tail call noundef i32 %52(ptr noundef nonnull align 8 dereferenceable(144) %1)
  %54 = load ptr, ptr %3, align 8, !tbaa !5
  %55 = getelementptr inbounds i8, ptr %54, i64 344
  %56 = load ptr, ptr %55, align 8
  %57 = tail call noundef zeroext i1 %56(ptr noundef nonnull align 8 dereferenceable(176) %3)
  call void @_ZN7glslang5TTypeC2ENS_10TBasicTypeENS_17TStorageQualifierEiiib(ptr noundef nonnull align 8 dereferenceable(144) %7, i32 noundef %49, i32 noundef 0, i32 noundef %53, i32 noundef 0, i32 noundef 0, i1 noundef zeroext %57)
  %58 = getelementptr inbounds i8, ptr %0, i64 56
  %59 = load ptr, ptr %58, align 8, !tbaa !8
  %60 = invoke noundef i32 @_ZNK7glslang13TIntermediate22mapTypeToConstructorOpERKNS_5TTypeE(ptr noundef nonnull align 8 dereferenceable(1784) %59, ptr noundef nonnull align 8 dereferenceable(144) %7)
          to label %61 unwind label %64

61:                                               ; preds = %45
  %62 = invoke noundef ptr @_ZN7glslang13TParseContext16constructBuiltInERKNS_5TTypeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocEb(ptr noundef nonnull align 8 dereferenceable(24912) %0, ptr noundef nonnull align 8 dereferenceable(144) %7, i32 noundef %60, ptr noundef nonnull %3, ptr noundef nonnull align 8 dereferenceable(24) %4, i1 noundef zeroext false)
          to label %63 unwind label %64

63:                                               ; preds = %61
  call void @_ZN7glslang5TTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(144) %7) #5
  call void @llvm.lifetime.end.p0(i64 144, ptr nonnull %7) #5
  br label %66

64:                                               ; preds = %61, %45
  %65 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7glslang5TTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(144) %7) #5
  call void @llvm.lifetime.end.p0(i64 144, ptr nonnull %7) #5
  br label %603

66:                                               ; preds = %63, %31, %26, %6
  %.0156 = phi ptr [ %62, %63 ], [ %3, %31 ], [ %3, %26 ], [ %3, %6 ]
  switch i32 %2, label %575 [
    i32 477, label %579
    i32 478, label %579
    i32 479, label %579
    i32 480, label %579
    i32 481, label %579
    i32 482, label %579
    i32 483, label %579
    i32 484, label %579
    i32 485, label %579
    i32 486, label %579
    i32 487, label %579
    i32 488, label %579
    i32 475, label %579
    i32 507, label %67
    i32 508, label %67
    i32 509, label %67
    i32 466, label %67
    i32 510, label %68
    i32 511, label %88
    i32 512, label %88
    i32 467, label %88
    i32 492, label %89
    i32 493, label %89
    i32 494, label %89
    i32 474, label %89
    i32 489, label %90
    i32 490, label %90
    i32 491, label %90
    i32 519, label %90
    i32 520, label %90
    i32 521, label %90
    i32 522, label %90
    i32 523, label %90
    i32 524, label %90
    i32 525, label %90
    i32 526, label %90
    i32 527, label %90
    i32 476, label %90
    i32 556, label %91
    i32 557, label %91
    i32 558, label %91
    i32 559, label %91
    i32 560, label %91
    i32 561, label %91
    i32 562, label %91
    i32 563, label %91
    i32 564, label %91
    i32 565, label %91
    i32 566, label %91
    i32 567, label %91
    i32 555, label %91
    i32 495, label %125
    i32 496, label %125
    i32 497, label %125
    i32 468, label %125
    i32 498, label %159
    i32 499, label %159
    i32 500, label %159
    i32 469, label %159
    i32 501, label %193
    i32 502, label %193
    i32 503, label %193
    i32 470, label %193
    i32 504, label %227
    i32 505, label %227
    i32 506, label %227
    i32 471, label %227
    i32 513, label %261
    i32 514, label %261
    i32 515, label %261
    i32 472, label %261
    i32 473, label %262
    i32 516, label %280
    i32 517, label %280
    i32 518, label %280
    i32 570, label %281
    i32 571, label %288
    i32 572, label %362
    i32 573, label %511
  ]

67:                                               ; preds = %66, %66, %66, %66
  br label %579

68:                                               ; preds = %66
  %69 = load ptr, ptr %.0156, align 8, !tbaa !5
  %70 = getelementptr inbounds i8, ptr %69, i64 240
  %71 = load ptr, ptr %70, align 8
  %72 = call noundef nonnull align 8 dereferenceable(144) ptr %71(ptr noundef nonnull align 8 dereferenceable(176) %.0156)
  %73 = load ptr, ptr %72, align 8, !tbaa !5
  %74 = getelementptr inbounds i8, ptr %73, i64 56
  %75 = load ptr, ptr %74, align 8
  %76 = call noundef i32 %75(ptr noundef nonnull align 8 dereferenceable(144) %72)
  %77 = icmp eq i32 %76, 18
  br i1 %77, label %78, label %88

78:                                               ; preds = %68
  %79 = load ptr, ptr %0, align 8, !tbaa !5
  %80 = getelementptr inbounds i8, ptr %79, i64 40
  %81 = load ptr, ptr %80, align 8
  call void %81(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %4, i32 noundef 1, ptr noundef nonnull @_ZN7glslangL31E_GL_EXT_buffer_reference_uvec2E, ptr noundef nonnull @.str.824)
  %82 = getelementptr inbounds i8, ptr %0, i64 56
  %83 = load ptr, ptr %82, align 8, !tbaa !8
  %84 = load ptr, ptr %.0156, align 8, !tbaa !5
  %85 = load ptr, ptr %84, align 8
  %86 = call noundef nonnull align 8 dereferenceable(24) ptr %85(ptr noundef nonnull align 8 dereferenceable(32) %.0156)
  %87 = call noundef ptr @_ZN7glslang13TIntermediate22addBuiltInFunctionCallERKNS_10TSourceLocENS_9TOperatorEbP11TIntermNodeRKNS_5TTypeE(ptr noundef nonnull align 8 dereferenceable(1784) %83, ptr noundef nonnull align 8 dereferenceable(24) %86, i32 noundef 151, i1 noundef zeroext true, ptr noundef nonnull %.0156, ptr noundef nonnull align 8 dereferenceable(144) %1)
  br label %602

88:                                               ; preds = %68, %66, %66, %66
  br label %579

89:                                               ; preds = %66, %66, %66, %66
  br label %579

90:                                               ; preds = %66, %66, %66, %66, %66, %66, %66, %66, %66, %66, %66, %66, %66
  br label %579

91:                                               ; preds = %66, %66, %66, %66, %66, %66, %66, %66, %66, %66, %66, %66, %66
  %92 = getelementptr inbounds i8, ptr %0, i64 56
  %93 = load ptr, ptr %92, align 8, !tbaa !8
  %94 = call noundef zeroext i1 @_ZNK7glslang13TIntermediate28getArithemeticFloat16EnabledEv(ptr noundef nonnull align 8 dereferenceable(1784) %93)
  br i1 %94, label %579, label %95

95:                                               ; preds = %91
  call void @llvm.lifetime.start.p0(i64 144, ptr nonnull %8) #5
  %96 = load ptr, ptr %1, align 8, !tbaa !5
  %97 = getelementptr inbounds i8, ptr %96, i64 96
  %98 = load ptr, ptr %97, align 8
  %99 = call noundef i32 %98(ptr noundef nonnull align 8 dereferenceable(144) %1)
  call void @_ZN7glslang5TTypeC2ENS_10TBasicTypeENS_17TStorageQualifierEiiib(ptr noundef nonnull align 8 dereferenceable(144) %8, i32 noundef 1, i32 noundef 0, i32 noundef %99, i32 noundef 0, i32 noundef 0, i1 noundef zeroext false)
  %100 = load ptr, ptr %.0156, align 8, !tbaa !5
  %101 = getelementptr inbounds i8, ptr %100, i64 240
  %102 = load ptr, ptr %101, align 8
  %103 = invoke noundef nonnull align 8 dereferenceable(144) ptr %102(ptr noundef nonnull align 8 dereferenceable(176) %.0156)
          to label %104 unwind label %112

104:                                              ; preds = %95
  %105 = invoke noundef zeroext i1 @_ZNK7glslang5TTypeneERKS0_(ptr noundef nonnull align 8 dereferenceable(144) %8, ptr noundef nonnull align 8 dereferenceable(144) %103)
          to label %106 unwind label %112

106:                                              ; preds = %104
  br i1 %105, label %107, label %120

107:                                              ; preds = %106
  %108 = load ptr, ptr %92, align 8, !tbaa !8
  %109 = load ptr, ptr %.0156, align 8, !tbaa !5
  %110 = load ptr, ptr %109, align 8
  %111 = invoke noundef nonnull align 8 dereferenceable(24) ptr %110(ptr noundef nonnull align 8 dereferenceable(32) %.0156)
          to label %114 unwind label %118

112:                                              ; preds = %120, %104, %95
  %113 = landingpad { ptr, i32 }
          cleanup
  br label %124

114:                                              ; preds = %107
  %115 = icmp eq i32 %2, 555
  %116 = add nsw i32 %2, -79
  %.0165 = select i1 %115, i32 475, i32 %116
  %117 = invoke noundef ptr @_ZN7glslang13TIntermediate20setAggregateOperatorEP11TIntermNodeNS_9TOperatorERKNS_5TTypeERKNS_10TSourceLocE(ptr noundef nonnull align 8 dereferenceable(1784) %108, ptr noundef nonnull %.0156, i32 noundef %.0165, ptr noundef nonnull align 8 dereferenceable(144) %8, ptr noundef nonnull align 8 dereferenceable(24) %111)
          to label %120 unwind label %118

118:                                              ; preds = %114, %107
  %119 = landingpad { ptr, i32 }
          cleanup
  br label %124

120:                                              ; preds = %114, %106
  %.0175 = phi ptr [ %.0156, %106 ], [ %117, %114 ]
  %121 = load ptr, ptr %92, align 8, !tbaa !8
  %122 = invoke noundef ptr @_ZNK7glslang13TIntermediate13addConversionENS_10TBasicTypeEPNS_12TIntermTypedE(ptr noundef nonnull align 8 dereferenceable(1784) %121, i32 noundef 3, ptr noundef %.0175)
          to label %123 unwind label %112

123:                                              ; preds = %120
  call void @_ZN7glslang5TTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(144) %8) #5
  call void @llvm.lifetime.end.p0(i64 144, ptr nonnull %8) #5
  br label %602

124:                                              ; preds = %118, %112
  %.pn195 = phi { ptr, i32 } [ %113, %112 ], [ %119, %118 ]
  call void @_ZN7glslang5TTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(144) %8) #5
  call void @llvm.lifetime.end.p0(i64 144, ptr nonnull %8) #5
  br label %603

125:                                              ; preds = %66, %66, %66, %66
  %126 = getelementptr inbounds i8, ptr %0, i64 56
  %127 = load ptr, ptr %126, align 8, !tbaa !8
  %128 = call noundef zeroext i1 @_ZNK7glslang13TIntermediate25getArithemeticInt8EnabledEv(ptr noundef nonnull align 8 dereferenceable(1784) %127)
  br i1 %128, label %579, label %129

129:                                              ; preds = %125
  call void @llvm.lifetime.start.p0(i64 144, ptr nonnull %9) #5
  %130 = load ptr, ptr %1, align 8, !tbaa !5
  %131 = getelementptr inbounds i8, ptr %130, i64 96
  %132 = load ptr, ptr %131, align 8
  %133 = call noundef i32 %132(ptr noundef nonnull align 8 dereferenceable(144) %1)
  call void @_ZN7glslang5TTypeC2ENS_10TBasicTypeENS_17TStorageQualifierEiiib(ptr noundef nonnull align 8 dereferenceable(144) %9, i32 noundef 8, i32 noundef 0, i32 noundef %133, i32 noundef 0, i32 noundef 0, i1 noundef zeroext false)
  %134 = load ptr, ptr %.0156, align 8, !tbaa !5
  %135 = getelementptr inbounds i8, ptr %134, i64 240
  %136 = load ptr, ptr %135, align 8
  %137 = invoke noundef nonnull align 8 dereferenceable(144) ptr %136(ptr noundef nonnull align 8 dereferenceable(176) %.0156)
          to label %138 unwind label %146

138:                                              ; preds = %129
  %139 = invoke noundef zeroext i1 @_ZNK7glslang5TTypeneERKS0_(ptr noundef nonnull align 8 dereferenceable(144) %9, ptr noundef nonnull align 8 dereferenceable(144) %137)
          to label %140 unwind label %146

140:                                              ; preds = %138
  br i1 %139, label %141, label %154

141:                                              ; preds = %140
  %142 = load ptr, ptr %126, align 8, !tbaa !8
  %143 = load ptr, ptr %.0156, align 8, !tbaa !5
  %144 = load ptr, ptr %143, align 8
  %145 = invoke noundef nonnull align 8 dereferenceable(24) ptr %144(ptr noundef nonnull align 8 dereferenceable(32) %.0156)
          to label %148 unwind label %152

146:                                              ; preds = %154, %138, %129
  %147 = landingpad { ptr, i32 }
          cleanup
  br label %158

148:                                              ; preds = %141
  %149 = icmp eq i32 %2, 468
  %150 = add nuw nsw i32 %2, 12
  %.0164 = select i1 %149, i32 466, i32 %150
  %151 = invoke noundef ptr @_ZN7glslang13TIntermediate20setAggregateOperatorEP11TIntermNodeNS_9TOperatorERKNS_5TTypeERKNS_10TSourceLocE(ptr noundef nonnull align 8 dereferenceable(1784) %142, ptr noundef nonnull %.0156, i32 noundef %.0164, ptr noundef nonnull align 8 dereferenceable(144) %9, ptr noundef nonnull align 8 dereferenceable(24) %145)
          to label %154 unwind label %152

152:                                              ; preds = %148, %141
  %153 = landingpad { ptr, i32 }
          cleanup
  br label %158

154:                                              ; preds = %148, %140
  %.1176 = phi ptr [ %.0156, %140 ], [ %151, %148 ]
  %155 = load ptr, ptr %126, align 8, !tbaa !8
  %156 = invoke noundef ptr @_ZNK7glslang13TIntermediate13addConversionENS_10TBasicTypeEPNS_12TIntermTypedE(ptr noundef nonnull align 8 dereferenceable(1784) %155, i32 noundef 4, ptr noundef %.1176)
          to label %157 unwind label %146

157:                                              ; preds = %154
  call void @_ZN7glslang5TTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(144) %9) #5
  call void @llvm.lifetime.end.p0(i64 144, ptr nonnull %9) #5
  br label %602

158:                                              ; preds = %152, %146
  %.pn193 = phi { ptr, i32 } [ %147, %146 ], [ %153, %152 ]
  call void @_ZN7glslang5TTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(144) %9) #5
  call void @llvm.lifetime.end.p0(i64 144, ptr nonnull %9) #5
  br label %603

159:                                              ; preds = %66, %66, %66, %66
  %160 = getelementptr inbounds i8, ptr %0, i64 56
  %161 = load ptr, ptr %160, align 8, !tbaa !8
  %162 = call noundef zeroext i1 @_ZNK7glslang13TIntermediate25getArithemeticInt8EnabledEv(ptr noundef nonnull align 8 dereferenceable(1784) %161)
  br i1 %162, label %579, label %163

163:                                              ; preds = %159
  call void @llvm.lifetime.start.p0(i64 144, ptr nonnull %10) #5
  %164 = load ptr, ptr %1, align 8, !tbaa !5
  %165 = getelementptr inbounds i8, ptr %164, i64 96
  %166 = load ptr, ptr %165, align 8
  %167 = call noundef i32 %166(ptr noundef nonnull align 8 dereferenceable(144) %1)
  call void @_ZN7glslang5TTypeC2ENS_10TBasicTypeENS_17TStorageQualifierEiiib(ptr noundef nonnull align 8 dereferenceable(144) %10, i32 noundef 9, i32 noundef 0, i32 noundef %167, i32 noundef 0, i32 noundef 0, i1 noundef zeroext false)
  %168 = load ptr, ptr %.0156, align 8, !tbaa !5
  %169 = getelementptr inbounds i8, ptr %168, i64 240
  %170 = load ptr, ptr %169, align 8
  %171 = invoke noundef nonnull align 8 dereferenceable(144) ptr %170(ptr noundef nonnull align 8 dereferenceable(176) %.0156)
          to label %172 unwind label %180

172:                                              ; preds = %163
  %173 = invoke noundef zeroext i1 @_ZNK7glslang5TTypeneERKS0_(ptr noundef nonnull align 8 dereferenceable(144) %10, ptr noundef nonnull align 8 dereferenceable(144) %171)
          to label %174 unwind label %180

174:                                              ; preds = %172
  br i1 %173, label %175, label %188

175:                                              ; preds = %174
  %176 = load ptr, ptr %160, align 8, !tbaa !8
  %177 = load ptr, ptr %.0156, align 8, !tbaa !5
  %178 = load ptr, ptr %177, align 8
  %179 = invoke noundef nonnull align 8 dereferenceable(24) ptr %178(ptr noundef nonnull align 8 dereferenceable(32) %.0156)
          to label %182 unwind label %186

180:                                              ; preds = %188, %172, %163
  %181 = landingpad { ptr, i32 }
          cleanup
  br label %192

182:                                              ; preds = %175
  %183 = icmp eq i32 %2, 469
  %184 = add nuw nsw i32 %2, 12
  %.0163 = select i1 %183, i32 467, i32 %184
  %185 = invoke noundef ptr @_ZN7glslang13TIntermediate20setAggregateOperatorEP11TIntermNodeNS_9TOperatorERKNS_5TTypeERKNS_10TSourceLocE(ptr noundef nonnull align 8 dereferenceable(1784) %176, ptr noundef nonnull %.0156, i32 noundef %.0163, ptr noundef nonnull align 8 dereferenceable(144) %10, ptr noundef nonnull align 8 dereferenceable(24) %179)
          to label %188 unwind label %186

186:                                              ; preds = %182, %175
  %187 = landingpad { ptr, i32 }
          cleanup
  br label %192

188:                                              ; preds = %182, %174
  %.2177 = phi ptr [ %.0156, %174 ], [ %185, %182 ]
  %189 = load ptr, ptr %160, align 8, !tbaa !8
  %190 = invoke noundef ptr @_ZNK7glslang13TIntermediate13addConversionENS_10TBasicTypeEPNS_12TIntermTypedE(ptr noundef nonnull align 8 dereferenceable(1784) %189, i32 noundef 5, ptr noundef %.2177)
          to label %191 unwind label %180

191:                                              ; preds = %188
  call void @_ZN7glslang5TTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(144) %10) #5
  call void @llvm.lifetime.end.p0(i64 144, ptr nonnull %10) #5
  br label %602

192:                                              ; preds = %186, %180
  %.pn191 = phi { ptr, i32 } [ %181, %180 ], [ %187, %186 ]
  call void @_ZN7glslang5TTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(144) %10) #5
  call void @llvm.lifetime.end.p0(i64 144, ptr nonnull %10) #5
  br label %603

193:                                              ; preds = %66, %66, %66, %66
  %194 = getelementptr inbounds i8, ptr %0, i64 56
  %195 = load ptr, ptr %194, align 8, !tbaa !8
  %196 = call noundef zeroext i1 @_ZNK7glslang13TIntermediate26getArithemeticInt16EnabledEv(ptr noundef nonnull align 8 dereferenceable(1784) %195)
  br i1 %196, label %579, label %197

197:                                              ; preds = %193
  call void @llvm.lifetime.start.p0(i64 144, ptr nonnull %11) #5
  %198 = load ptr, ptr %1, align 8, !tbaa !5
  %199 = getelementptr inbounds i8, ptr %198, i64 96
  %200 = load ptr, ptr %199, align 8
  %201 = call noundef i32 %200(ptr noundef nonnull align 8 dereferenceable(144) %1)
  call void @_ZN7glslang5TTypeC2ENS_10TBasicTypeENS_17TStorageQualifierEiiib(ptr noundef nonnull align 8 dereferenceable(144) %11, i32 noundef 8, i32 noundef 0, i32 noundef %201, i32 noundef 0, i32 noundef 0, i1 noundef zeroext false)
  %202 = load ptr, ptr %.0156, align 8, !tbaa !5
  %203 = getelementptr inbounds i8, ptr %202, i64 240
  %204 = load ptr, ptr %203, align 8
  %205 = invoke noundef nonnull align 8 dereferenceable(144) ptr %204(ptr noundef nonnull align 8 dereferenceable(176) %.0156)
          to label %206 unwind label %214

206:                                              ; preds = %197
  %207 = invoke noundef zeroext i1 @_ZNK7glslang5TTypeneERKS0_(ptr noundef nonnull align 8 dereferenceable(144) %11, ptr noundef nonnull align 8 dereferenceable(144) %205)
          to label %208 unwind label %214

208:                                              ; preds = %206
  br i1 %207, label %209, label %222

209:                                              ; preds = %208
  %210 = load ptr, ptr %194, align 8, !tbaa !8
  %211 = load ptr, ptr %.0156, align 8, !tbaa !5
  %212 = load ptr, ptr %211, align 8
  %213 = invoke noundef nonnull align 8 dereferenceable(24) ptr %212(ptr noundef nonnull align 8 dereferenceable(32) %.0156)
          to label %216 unwind label %220

214:                                              ; preds = %222, %206, %197
  %215 = landingpad { ptr, i32 }
          cleanup
  br label %226

216:                                              ; preds = %209
  %217 = icmp eq i32 %2, 470
  %218 = add nuw nsw i32 %2, 6
  %.0162 = select i1 %217, i32 466, i32 %218
  %219 = invoke noundef ptr @_ZN7glslang13TIntermediate20setAggregateOperatorEP11TIntermNodeNS_9TOperatorERKNS_5TTypeERKNS_10TSourceLocE(ptr noundef nonnull align 8 dereferenceable(1784) %210, ptr noundef nonnull %.0156, i32 noundef %.0162, ptr noundef nonnull align 8 dereferenceable(144) %11, ptr noundef nonnull align 8 dereferenceable(24) %213)
          to label %222 unwind label %220

220:                                              ; preds = %216, %209
  %221 = landingpad { ptr, i32 }
          cleanup
  br label %226

222:                                              ; preds = %216, %208
  %.3178 = phi ptr [ %.0156, %208 ], [ %219, %216 ]
  %223 = load ptr, ptr %194, align 8, !tbaa !8
  %224 = invoke noundef ptr @_ZNK7glslang13TIntermediate13addConversionENS_10TBasicTypeEPNS_12TIntermTypedE(ptr noundef nonnull align 8 dereferenceable(1784) %223, i32 noundef 6, ptr noundef %.3178)
          to label %225 unwind label %214

225:                                              ; preds = %222
  call void @_ZN7glslang5TTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(144) %11) #5
  call void @llvm.lifetime.end.p0(i64 144, ptr nonnull %11) #5
  br label %602

226:                                              ; preds = %220, %214
  %.pn189 = phi { ptr, i32 } [ %215, %214 ], [ %221, %220 ]
  call void @_ZN7glslang5TTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(144) %11) #5
  call void @llvm.lifetime.end.p0(i64 144, ptr nonnull %11) #5
  br label %603

227:                                              ; preds = %66, %66, %66, %66
  %228 = getelementptr inbounds i8, ptr %0, i64 56
  %229 = load ptr, ptr %228, align 8, !tbaa !8
  %230 = call noundef zeroext i1 @_ZNK7glslang13TIntermediate26getArithemeticInt16EnabledEv(ptr noundef nonnull align 8 dereferenceable(1784) %229)
  br i1 %230, label %579, label %231

231:                                              ; preds = %227
  call void @llvm.lifetime.start.p0(i64 144, ptr nonnull %12) #5
  %232 = load ptr, ptr %1, align 8, !tbaa !5
  %233 = getelementptr inbounds i8, ptr %232, i64 96
  %234 = load ptr, ptr %233, align 8
  %235 = call noundef i32 %234(ptr noundef nonnull align 8 dereferenceable(144) %1)
  call void @_ZN7glslang5TTypeC2ENS_10TBasicTypeENS_17TStorageQualifierEiiib(ptr noundef nonnull align 8 dereferenceable(144) %12, i32 noundef 9, i32 noundef 0, i32 noundef %235, i32 noundef 0, i32 noundef 0, i1 noundef zeroext false)
  %236 = load ptr, ptr %.0156, align 8, !tbaa !5
  %237 = getelementptr inbounds i8, ptr %236, i64 240
  %238 = load ptr, ptr %237, align 8
  %239 = invoke noundef nonnull align 8 dereferenceable(144) ptr %238(ptr noundef nonnull align 8 dereferenceable(176) %.0156)
          to label %240 unwind label %248

240:                                              ; preds = %231
  %241 = invoke noundef zeroext i1 @_ZNK7glslang5TTypeneERKS0_(ptr noundef nonnull align 8 dereferenceable(144) %12, ptr noundef nonnull align 8 dereferenceable(144) %239)
          to label %242 unwind label %248

242:                                              ; preds = %240
  br i1 %241, label %243, label %256

243:                                              ; preds = %242
  %244 = load ptr, ptr %228, align 8, !tbaa !8
  %245 = load ptr, ptr %.0156, align 8, !tbaa !5
  %246 = load ptr, ptr %245, align 8
  %247 = invoke noundef nonnull align 8 dereferenceable(24) ptr %246(ptr noundef nonnull align 8 dereferenceable(32) %.0156)
          to label %250 unwind label %254

248:                                              ; preds = %256, %240, %231
  %249 = landingpad { ptr, i32 }
          cleanup
  br label %260

250:                                              ; preds = %243
  %251 = icmp eq i32 %2, 471
  %252 = add nuw nsw i32 %2, 6
  %.0161 = select i1 %251, i32 467, i32 %252
  %253 = invoke noundef ptr @_ZN7glslang13TIntermediate20setAggregateOperatorEP11TIntermNodeNS_9TOperatorERKNS_5TTypeERKNS_10TSourceLocE(ptr noundef nonnull align 8 dereferenceable(1784) %244, ptr noundef nonnull %.0156, i32 noundef %.0161, ptr noundef nonnull align 8 dereferenceable(144) %12, ptr noundef nonnull align 8 dereferenceable(24) %247)
          to label %256 unwind label %254

254:                                              ; preds = %250, %243
  %255 = landingpad { ptr, i32 }
          cleanup
  br label %260

256:                                              ; preds = %250, %242
  %.4179 = phi ptr [ %.0156, %242 ], [ %253, %250 ]
  %257 = load ptr, ptr %228, align 8, !tbaa !8
  %258 = invoke noundef ptr @_ZNK7glslang13TIntermediate13addConversionENS_10TBasicTypeEPNS_12TIntermTypedE(ptr noundef nonnull align 8 dereferenceable(1784) %257, i32 noundef 7, ptr noundef %.4179)
          to label %259 unwind label %248

259:                                              ; preds = %256
  call void @_ZN7glslang5TTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(144) %12) #5
  call void @llvm.lifetime.end.p0(i64 144, ptr nonnull %12) #5
  br label %602

260:                                              ; preds = %254, %248
  %.pn = phi { ptr, i32 } [ %249, %248 ], [ %255, %254 ]
  call void @_ZN7glslang5TTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(144) %12) #5
  call void @llvm.lifetime.end.p0(i64 144, ptr nonnull %12) #5
  br label %603

261:                                              ; preds = %66, %66, %66, %66
  br label %579

262:                                              ; preds = %66
  %263 = load ptr, ptr %1, align 8, !tbaa !5
  %264 = getelementptr inbounds i8, ptr %263, i64 192
  %265 = load ptr, ptr %264, align 8
  %266 = call noundef zeroext i1 %265(ptr noundef nonnull align 8 dereferenceable(144) %1)
  br i1 %266, label %267, label %280

267:                                              ; preds = %262
  %268 = load ptr, ptr %.0156, align 8, !tbaa !5
  %269 = getelementptr inbounds i8, ptr %268, i64 240
  %270 = load ptr, ptr %269, align 8
  %271 = call noundef nonnull align 8 dereferenceable(144) ptr %270(ptr noundef nonnull align 8 dereferenceable(176) %.0156)
  %272 = call noundef zeroext i1 @_ZNK7glslang5TType11isReferenceEv(ptr noundef nonnull align 8 dereferenceable(144) %271)
  br i1 %272, label %273, label %280

273:                                              ; preds = %267
  %274 = getelementptr inbounds i8, ptr %0, i64 56
  %275 = load ptr, ptr %274, align 8, !tbaa !8
  %276 = load ptr, ptr %.0156, align 8, !tbaa !5
  %277 = load ptr, ptr %276, align 8
  %278 = call noundef nonnull align 8 dereferenceable(24) ptr %277(ptr noundef nonnull align 8 dereferenceable(32) %.0156)
  %279 = call noundef ptr @_ZN7glslang13TIntermediate22addBuiltInFunctionCallERKNS_10TSourceLocENS_9TOperatorEbP11TIntermNodeRKNS_5TTypeE(ptr noundef nonnull align 8 dereferenceable(1784) %275, ptr noundef nonnull align 8 dereferenceable(24) %278, i32 noundef 149, i1 noundef zeroext true, ptr noundef nonnull %.0156, ptr noundef nonnull align 8 dereferenceable(144) %1)
  br label %602

280:                                              ; preds = %262, %267, %66, %66, %66
  br label %579

281:                                              ; preds = %66
  %282 = getelementptr inbounds i8, ptr %0, i64 56
  %283 = load ptr, ptr %282, align 8, !tbaa !8
  %284 = load ptr, ptr %.0156, align 8, !tbaa !5
  %285 = load ptr, ptr %284, align 8
  %286 = call noundef nonnull align 8 dereferenceable(24) ptr %285(ptr noundef nonnull align 8 dereferenceable(32) %.0156)
  %287 = call noundef ptr @_ZN7glslang13TIntermediate22addBuiltInFunctionCallERKNS_10TSourceLocENS_9TOperatorEbP11TIntermNodeRKNS_5TTypeE(ptr noundef nonnull align 8 dereferenceable(1784) %283, ptr noundef nonnull align 8 dereferenceable(24) %286, i32 noundef 15, i1 noundef zeroext true, ptr noundef %.0156, ptr noundef nonnull align 8 dereferenceable(144) %1)
  br label %602

288:                                              ; preds = %66
  %289 = load ptr, ptr %.0156, align 8, !tbaa !5
  %290 = getelementptr inbounds i8, ptr %289, i64 240
  %291 = load ptr, ptr %290, align 8
  %292 = call noundef nonnull align 8 dereferenceable(144) ptr %291(ptr noundef nonnull align 8 dereferenceable(176) %.0156)
  %293 = call noundef zeroext i1 @_ZNK7glslang5TType11isReferenceEv(ptr noundef nonnull align 8 dereferenceable(144) %292)
  br i1 %293, label %294, label %301

294:                                              ; preds = %288
  %295 = getelementptr inbounds i8, ptr %0, i64 56
  %296 = load ptr, ptr %295, align 8, !tbaa !8
  %297 = load ptr, ptr %.0156, align 8, !tbaa !5
  %298 = load ptr, ptr %297, align 8
  %299 = call noundef nonnull align 8 dereferenceable(24) ptr %298(ptr noundef nonnull align 8 dereferenceable(32) %.0156)
  %300 = call noundef ptr @_ZN7glslang13TIntermediate22addBuiltInFunctionCallERKNS_10TSourceLocENS_9TOperatorEbP11TIntermNodeRKNS_5TTypeE(ptr noundef nonnull align 8 dereferenceable(1784) %296, ptr noundef nonnull align 8 dereferenceable(24) %299, i32 noundef 571, i1 noundef zeroext true, ptr noundef nonnull %.0156, ptr noundef nonnull align 8 dereferenceable(144) %1)
  br label %602

301:                                              ; preds = %288
  %302 = load ptr, ptr %.0156, align 8, !tbaa !5
  %303 = getelementptr inbounds i8, ptr %302, i64 240
  %304 = load ptr, ptr %303, align 8
  %305 = call noundef nonnull align 8 dereferenceable(144) ptr %304(ptr noundef nonnull align 8 dereferenceable(176) %.0156)
  %306 = load ptr, ptr %305, align 8, !tbaa !5
  %307 = getelementptr inbounds i8, ptr %306, i64 192
  %308 = load ptr, ptr %307, align 8
  %309 = call noundef zeroext i1 %308(ptr noundef nonnull align 8 dereferenceable(144) %305)
  br i1 %309, label %310, label %327

310:                                              ; preds = %301
  %311 = load ptr, ptr %.0156, align 8, !tbaa !5
  %312 = getelementptr inbounds i8, ptr %311, i64 240
  %313 = load ptr, ptr %312, align 8
  %314 = call noundef nonnull align 8 dereferenceable(144) ptr %313(ptr noundef nonnull align 8 dereferenceable(176) %.0156)
  %315 = load ptr, ptr %314, align 8, !tbaa !5
  %316 = getelementptr inbounds i8, ptr %315, i64 56
  %317 = load ptr, ptr %316, align 8
  %318 = call noundef i32 %317(ptr noundef nonnull align 8 dereferenceable(144) %314)
  %319 = icmp eq i32 %318, 11
  br i1 %319, label %320, label %327

320:                                              ; preds = %310
  %321 = getelementptr inbounds i8, ptr %0, i64 56
  %322 = load ptr, ptr %321, align 8, !tbaa !8
  %323 = load ptr, ptr %.0156, align 8, !tbaa !5
  %324 = load ptr, ptr %323, align 8
  %325 = call noundef nonnull align 8 dereferenceable(24) ptr %324(ptr noundef nonnull align 8 dereferenceable(32) %.0156)
  %326 = call noundef ptr @_ZN7glslang13TIntermediate22addBuiltInFunctionCallERKNS_10TSourceLocENS_9TOperatorEbP11TIntermNodeRKNS_5TTypeE(ptr noundef nonnull align 8 dereferenceable(1784) %322, ptr noundef nonnull align 8 dereferenceable(24) %325, i32 noundef 148, i1 noundef zeroext true, ptr noundef nonnull %.0156, ptr noundef nonnull align 8 dereferenceable(144) %1)
  br label %602

327:                                              ; preds = %310, %301
  %328 = load ptr, ptr %.0156, align 8, !tbaa !5
  %329 = getelementptr inbounds i8, ptr %328, i64 240
  %330 = load ptr, ptr %329, align 8
  %331 = call noundef nonnull align 8 dereferenceable(144) ptr %330(ptr noundef nonnull align 8 dereferenceable(176) %.0156)
  %332 = load ptr, ptr %331, align 8, !tbaa !5
  %333 = getelementptr inbounds i8, ptr %332, i64 216
  %334 = load ptr, ptr %333, align 8
  %335 = call noundef zeroext i1 %334(ptr noundef nonnull align 8 dereferenceable(144) %331)
  br i1 %335, label %336, label %602

336:                                              ; preds = %327
  %337 = load ptr, ptr %.0156, align 8, !tbaa !5
  %338 = getelementptr inbounds i8, ptr %337, i64 240
  %339 = load ptr, ptr %338, align 8
  %340 = call noundef nonnull align 8 dereferenceable(144) ptr %339(ptr noundef nonnull align 8 dereferenceable(176) %.0156)
  %341 = load ptr, ptr %340, align 8, !tbaa !5
  %342 = getelementptr inbounds i8, ptr %341, i64 56
  %343 = load ptr, ptr %342, align 8
  %344 = call noundef i32 %343(ptr noundef nonnull align 8 dereferenceable(144) %340)
  %345 = icmp eq i32 %344, 9
  br i1 %345, label %346, label %602

346:                                              ; preds = %336
  %347 = load ptr, ptr %.0156, align 8, !tbaa !5
  %348 = getelementptr inbounds i8, ptr %347, i64 304
  %349 = load ptr, ptr %348, align 8
  %350 = call noundef i32 %349(ptr noundef nonnull align 8 dereferenceable(176) %.0156)
  %351 = icmp eq i32 %350, 2
  br i1 %351, label %352, label %602

352:                                              ; preds = %346
  %353 = load ptr, ptr %0, align 8, !tbaa !5
  %354 = getelementptr inbounds i8, ptr %353, i64 40
  %355 = load ptr, ptr %354, align 8
  call void %355(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %4, i32 noundef 1, ptr noundef nonnull @_ZN7glslangL31E_GL_EXT_buffer_reference_uvec2E, ptr noundef nonnull @.str.825)
  %356 = getelementptr inbounds i8, ptr %0, i64 56
  %357 = load ptr, ptr %356, align 8, !tbaa !8
  %358 = load ptr, ptr %.0156, align 8, !tbaa !5
  %359 = load ptr, ptr %358, align 8
  %360 = call noundef nonnull align 8 dereferenceable(24) ptr %359(ptr noundef nonnull align 8 dereferenceable(32) %.0156)
  %361 = call noundef ptr @_ZN7glslang13TIntermediate22addBuiltInFunctionCallERKNS_10TSourceLocENS_9TOperatorEbP11TIntermNodeRKNS_5TTypeE(ptr noundef nonnull align 8 dereferenceable(1784) %357, ptr noundef nonnull align 8 dereferenceable(24) %360, i32 noundef 150, i1 noundef zeroext true, ptr noundef nonnull %.0156, ptr noundef nonnull align 8 dereferenceable(144) %1)
  br label %602

362:                                              ; preds = %66
  %363 = load ptr, ptr %.0156, align 8, !tbaa !5
  %364 = getelementptr inbounds i8, ptr %363, i64 240
  %365 = load ptr, ptr %364, align 8
  %366 = call noundef nonnull align 8 dereferenceable(144) ptr %365(ptr noundef nonnull align 8 dereferenceable(176) %.0156)
  %367 = call noundef zeroext i1 @_ZNK7glslang5TType9isCoopMatEv(ptr noundef nonnull align 8 dereferenceable(144) %366)
  %368 = load ptr, ptr %1, align 8, !tbaa !5
  %369 = getelementptr inbounds i8, ptr %368, i64 56
  %370 = load ptr, ptr %369, align 8
  %371 = call noundef i32 %370(ptr noundef nonnull align 8 dereferenceable(144) %1)
  br i1 %367, label %397, label %372

372:                                              ; preds = %362
  %373 = load ptr, ptr %.0156, align 8, !tbaa !5
  %374 = getelementptr inbounds i8, ptr %373, i64 240
  %375 = load ptr, ptr %374, align 8
  %376 = call noundef nonnull align 8 dereferenceable(144) ptr %375(ptr noundef nonnull align 8 dereferenceable(176) %.0156)
  %377 = load ptr, ptr %376, align 8, !tbaa !5
  %378 = getelementptr inbounds i8, ptr %377, i64 56
  %379 = load ptr, ptr %378, align 8
  %380 = call noundef i32 %379(ptr noundef nonnull align 8 dereferenceable(144) %376)
  %.not = icmp eq i32 %371, %380
  br i1 %.not, label %390, label %381

381:                                              ; preds = %372
  %382 = getelementptr inbounds i8, ptr %0, i64 56
  %383 = load ptr, ptr %382, align 8, !tbaa !8
  %384 = load ptr, ptr %1, align 8, !tbaa !5
  %385 = getelementptr inbounds i8, ptr %384, i64 56
  %386 = load ptr, ptr %385, align 8
  %387 = call noundef i32 %386(ptr noundef nonnull align 8 dereferenceable(144) %1)
  %388 = call noundef ptr @_ZNK7glslang13TIntermediate13addConversionENS_10TBasicTypeEPNS_12TIntermTypedE(ptr noundef nonnull align 8 dereferenceable(1784) %383, i32 noundef %387, ptr noundef nonnull %.0156)
  %389 = icmp eq ptr %388, null
  br i1 %389, label %602, label %390

390:                                              ; preds = %381, %372
  %.1157 = phi ptr [ %388, %381 ], [ %.0156, %372 ]
  %391 = getelementptr inbounds i8, ptr %0, i64 56
  %392 = load ptr, ptr %391, align 8, !tbaa !8
  %393 = load ptr, ptr %.1157, align 8, !tbaa !5
  %394 = load ptr, ptr %393, align 8
  %395 = call noundef nonnull align 8 dereferenceable(24) ptr %394(ptr noundef nonnull align 8 dereferenceable(32) %.1157)
  %396 = call noundef ptr @_ZN7glslang13TIntermediate20setAggregateOperatorEP11TIntermNodeNS_9TOperatorERKNS_5TTypeERKNS_10TSourceLocE(ptr noundef nonnull align 8 dereferenceable(1784) %392, ptr noundef nonnull %.1157, i32 noundef 572, ptr noundef nonnull align 8 dereferenceable(144) %1, ptr noundef nonnull align 8 dereferenceable(24) %395)
  br label %602

397:                                              ; preds = %362
  switch i32 %371, label %398 [
    i32 8, label %399
    i32 9, label %410
    i32 4, label %421
    i32 5, label %432
    i32 1, label %443
    i32 3, label %454
  ]

398:                                              ; preds = %397
  call void @__assert_fail(ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.68, i32 noundef 8022, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN7glslang13TParseContext16constructBuiltInERKNS_5TTypeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocEb) #6
  unreachable

399:                                              ; preds = %397
  %400 = load ptr, ptr %.0156, align 8, !tbaa !5
  %401 = getelementptr inbounds i8, ptr %400, i64 240
  %402 = load ptr, ptr %401, align 8
  %403 = call noundef nonnull align 8 dereferenceable(144) ptr %402(ptr noundef nonnull align 8 dereferenceable(176) %.0156)
  %404 = load ptr, ptr %403, align 8, !tbaa !5
  %405 = getelementptr inbounds i8, ptr %404, i64 56
  %406 = load ptr, ptr %405, align 8
  %407 = call noundef i32 %406(ptr noundef nonnull align 8 dereferenceable(144) %403)
  %switch.tableidx = add i32 %407, -1
  %408 = icmp ult i32 %switch.tableidx, 9
  br i1 %408, label %switch.hole_check, label %409

409:                                              ; preds = %switch.hole_check, %399
  call void @__assert_fail(ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.68, i32 noundef 8031, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN7glslang13TParseContext16constructBuiltInERKNS_5TTypeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocEb) #6
  unreachable

410:                                              ; preds = %397
  %411 = load ptr, ptr %.0156, align 8, !tbaa !5
  %412 = getelementptr inbounds i8, ptr %411, i64 240
  %413 = load ptr, ptr %412, align 8
  %414 = call noundef nonnull align 8 dereferenceable(144) ptr %413(ptr noundef nonnull align 8 dereferenceable(176) %.0156)
  %415 = load ptr, ptr %414, align 8, !tbaa !5
  %416 = getelementptr inbounds i8, ptr %415, i64 56
  %417 = load ptr, ptr %416, align 8
  %418 = call noundef i32 %417(ptr noundef nonnull align 8 dereferenceable(144) %414)
  %switch.tableidx201 = add i32 %418, -1
  %419 = icmp ult i32 %switch.tableidx201, 9
  br i1 %419, label %switch.hole_check202, label %420

420:                                              ; preds = %switch.hole_check202, %410
  call void @__assert_fail(ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.68, i32 noundef 8042, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN7glslang13TParseContext16constructBuiltInERKNS_5TTypeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocEb) #6
  unreachable

421:                                              ; preds = %397
  %422 = load ptr, ptr %.0156, align 8, !tbaa !5
  %423 = getelementptr inbounds i8, ptr %422, i64 240
  %424 = load ptr, ptr %423, align 8
  %425 = call noundef nonnull align 8 dereferenceable(144) ptr %424(ptr noundef nonnull align 8 dereferenceable(176) %.0156)
  %426 = load ptr, ptr %425, align 8, !tbaa !5
  %427 = getelementptr inbounds i8, ptr %426, i64 56
  %428 = load ptr, ptr %427, align 8
  %429 = call noundef i32 %428(ptr noundef nonnull align 8 dereferenceable(144) %425)
  %switch.tableidx210 = add i32 %429, -1
  %430 = icmp ult i32 %switch.tableidx210, 9
  br i1 %430, label %switch.hole_check211, label %431

431:                                              ; preds = %switch.hole_check211, %421
  call void @__assert_fail(ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.68, i32 noundef 8052, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN7glslang13TParseContext16constructBuiltInERKNS_5TTypeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocEb) #6
  unreachable

432:                                              ; preds = %397
  %433 = load ptr, ptr %.0156, align 8, !tbaa !5
  %434 = getelementptr inbounds i8, ptr %433, i64 240
  %435 = load ptr, ptr %434, align 8
  %436 = call noundef nonnull align 8 dereferenceable(144) ptr %435(ptr noundef nonnull align 8 dereferenceable(176) %.0156)
  %437 = load ptr, ptr %436, align 8, !tbaa !5
  %438 = getelementptr inbounds i8, ptr %437, i64 56
  %439 = load ptr, ptr %438, align 8
  %440 = call noundef i32 %439(ptr noundef nonnull align 8 dereferenceable(144) %436)
  %switch.tableidx219 = add i32 %440, -1
  %441 = icmp ult i32 %switch.tableidx219, 9
  br i1 %441, label %switch.hole_check220, label %442

442:                                              ; preds = %switch.hole_check220, %432
  call void @__assert_fail(ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.68, i32 noundef 8062, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN7glslang13TParseContext16constructBuiltInERKNS_5TTypeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocEb) #6
  unreachable

443:                                              ; preds = %397
  %444 = load ptr, ptr %.0156, align 8, !tbaa !5
  %445 = getelementptr inbounds i8, ptr %444, i64 240
  %446 = load ptr, ptr %445, align 8
  %447 = call noundef nonnull align 8 dereferenceable(144) ptr %446(ptr noundef nonnull align 8 dereferenceable(176) %.0156)
  %448 = load ptr, ptr %447, align 8, !tbaa !5
  %449 = getelementptr inbounds i8, ptr %448, i64 56
  %450 = load ptr, ptr %449, align 8
  %451 = call noundef i32 %450(ptr noundef nonnull align 8 dereferenceable(144) %447)
  %switch.tableidx228 = add i32 %451, -3
  %452 = icmp ult i32 %switch.tableidx228, 7
  br i1 %452, label %switch.hole_check229, label %453

453:                                              ; preds = %switch.hole_check229, %443
  call void @__assert_fail(ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.68, i32 noundef 8072, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN7glslang13TParseContext16constructBuiltInERKNS_5TTypeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocEb) #6
  unreachable

454:                                              ; preds = %397
  %455 = load ptr, ptr %.0156, align 8, !tbaa !5
  %456 = getelementptr inbounds i8, ptr %455, i64 240
  %457 = load ptr, ptr %456, align 8
  %458 = call noundef nonnull align 8 dereferenceable(144) ptr %457(ptr noundef nonnull align 8 dereferenceable(176) %.0156)
  %459 = load ptr, ptr %458, align 8, !tbaa !5
  %460 = getelementptr inbounds i8, ptr %459, i64 56
  %461 = load ptr, ptr %460, align 8
  %462 = call noundef i32 %461(ptr noundef nonnull align 8 dereferenceable(144) %458)
  %switch.tableidx237 = add i32 %462, -1
  %463 = icmp ult i32 %switch.tableidx237, 9
  br i1 %463, label %switch.hole_check238, label %464

464:                                              ; preds = %switch.hole_check238, %454
  call void @__assert_fail(ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.68, i32 noundef 8082, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN7glslang13TParseContext16constructBuiltInERKNS_5TTypeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocEb) #6
  unreachable

switch.hole_check:                                ; preds = %399
  %switch.maskindex = trunc nuw i32 %switch.tableidx to i16
  %switch.shifted = lshr i16 285, %switch.maskindex
  %switch.lobit = trunc i16 %switch.shifted to i1
  br i1 %switch.lobit, label %switch.lookup, label %409

switch.lookup:                                    ; preds = %switch.hole_check
  %465 = zext nneg i32 %switch.tableidx to i64
  %switch.gep = getelementptr inbounds [9 x i32], ptr @switch.table._ZN7glslang13TParseContext16constructBuiltInERKNS_5TTypeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocEb, i64 0, i64 %465
  br label %471

switch.hole_check202:                             ; preds = %410
  %switch.maskindex204 = trunc nuw i32 %switch.tableidx201 to i16
  %switch.shifted205 = lshr i16 413, %switch.maskindex204
  %switch.lobit206 = trunc i16 %switch.shifted205 to i1
  br i1 %switch.lobit206, label %switch.lookup203, label %420

switch.lookup203:                                 ; preds = %switch.hole_check202
  %466 = zext nneg i32 %switch.tableidx201 to i64
  %switch.gep207 = getelementptr inbounds [9 x i32], ptr @switch.table._ZN7glslang13TParseContext16constructBuiltInERKNS_5TTypeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocEb.1, i64 0, i64 %466
  br label %471

switch.hole_check211:                             ; preds = %421
  %switch.maskindex213 = trunc nuw i32 %switch.tableidx210 to i16
  %switch.shifted214 = lshr i16 405, %switch.maskindex213
  %switch.lobit215 = trunc i16 %switch.shifted214 to i1
  br i1 %switch.lobit215, label %switch.lookup212, label %431

switch.lookup212:                                 ; preds = %switch.hole_check211
  %467 = zext nneg i32 %switch.tableidx210 to i64
  %switch.gep216 = getelementptr inbounds [9 x i32], ptr @switch.table._ZN7glslang13TParseContext16constructBuiltInERKNS_5TTypeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocEb.2, i64 0, i64 %467
  br label %471

switch.hole_check220:                             ; preds = %432
  %switch.maskindex222 = trunc nuw i32 %switch.tableidx219 to i16
  %switch.shifted223 = lshr i16 397, %switch.maskindex222
  %switch.lobit224 = trunc i16 %switch.shifted223 to i1
  br i1 %switch.lobit224, label %switch.lookup221, label %442

switch.lookup221:                                 ; preds = %switch.hole_check220
  %468 = zext nneg i32 %switch.tableidx219 to i64
  %switch.gep225 = getelementptr inbounds [9 x i32], ptr @switch.table._ZN7glslang13TParseContext16constructBuiltInERKNS_5TTypeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocEb.3, i64 0, i64 %468
  br label %471

switch.hole_check229:                             ; preds = %443
  %switch.maskindex231 = trunc nuw i32 %switch.tableidx228 to i8
  %switch.shifted232 = lshr i8 103, %switch.maskindex231
  %switch.lobit233 = trunc i8 %switch.shifted232 to i1
  br i1 %switch.lobit233, label %switch.lookup230, label %453

switch.lookup230:                                 ; preds = %switch.hole_check229
  %469 = zext nneg i32 %switch.tableidx228 to i64
  %switch.gep234 = getelementptr inbounds [7 x i32], ptr @switch.table._ZN7glslang13TParseContext16constructBuiltInERKNS_5TTypeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocEb.4, i64 0, i64 %469
  br label %471

switch.hole_check238:                             ; preds = %454
  %switch.maskindex240 = trunc nuw i32 %switch.tableidx237 to i16
  %switch.shifted241 = lshr i16 409, %switch.maskindex240
  %switch.lobit242 = trunc i16 %switch.shifted241 to i1
  br i1 %switch.lobit242, label %switch.lookup239, label %464

switch.lookup239:                                 ; preds = %switch.hole_check238
  %470 = zext nneg i32 %switch.tableidx237 to i64
  %switch.gep243 = getelementptr inbounds [9 x i32], ptr @switch.table._ZN7glslang13TParseContext16constructBuiltInERKNS_5TTypeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocEb.5, i64 0, i64 %470
  br label %471

471:                                              ; preds = %switch.lookup239, %switch.lookup230, %switch.lookup221, %switch.lookup212, %switch.lookup203, %switch.lookup
  %switch.gep243.sink = phi ptr [ %switch.gep243, %switch.lookup239 ], [ %switch.gep234, %switch.lookup230 ], [ %switch.gep225, %switch.lookup221 ], [ %switch.gep216, %switch.lookup212 ], [ %switch.gep207, %switch.lookup203 ], [ %switch.gep, %switch.lookup ]
  %switch.load244 = load i32, ptr %switch.gep243.sink, align 4
  %472 = getelementptr inbounds i8, ptr %0, i64 56
  %473 = load ptr, ptr %472, align 8, !tbaa !8
  %474 = load ptr, ptr %.0156, align 8, !tbaa !5
  %475 = load ptr, ptr %474, align 8
  %476 = call noundef nonnull align 8 dereferenceable(24) ptr %475(ptr noundef nonnull align 8 dereferenceable(32) %.0156)
  %477 = call noundef ptr @_ZNK7glslang13TIntermediate12addUnaryNodeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocERKNS_5TTypeE(ptr noundef nonnull align 8 dereferenceable(1784) %473, i32 noundef %switch.load244, ptr noundef nonnull %.0156, ptr noundef nonnull align 8 dereferenceable(24) %476, ptr noundef nonnull align 8 dereferenceable(144) %1)
  %478 = load ptr, ptr %477, align 8, !tbaa !5
  %479 = getelementptr inbounds i8, ptr %478, i64 56
  %480 = load ptr, ptr %479, align 8
  %481 = call noundef ptr %480(ptr noundef nonnull align 8 dereferenceable(32) %477)
  %482 = load ptr, ptr %481, align 8, !tbaa !5
  %483 = getelementptr inbounds i8, ptr %482, i64 392
  %484 = load ptr, ptr %483, align 8
  %485 = call noundef ptr %484(ptr noundef nonnull align 8 dereferenceable(240) %481)
  %486 = load ptr, ptr %485, align 8, !tbaa !5
  %487 = getelementptr inbounds i8, ptr %486, i64 40
  %488 = load ptr, ptr %487, align 8
  %489 = call noundef ptr %488(ptr noundef nonnull align 8 dereferenceable(32) %485)
  %.not187 = icmp eq ptr %489, null
  br i1 %.not187, label %602, label %490

490:                                              ; preds = %471
  %491 = load ptr, ptr %477, align 8, !tbaa !5
  %492 = getelementptr inbounds i8, ptr %491, i64 56
  %493 = load ptr, ptr %492, align 8
  %494 = call noundef ptr %493(ptr noundef nonnull align 8 dereferenceable(32) %477)
  %495 = load ptr, ptr %494, align 8, !tbaa !5
  %496 = getelementptr inbounds i8, ptr %495, i64 392
  %497 = load ptr, ptr %496, align 8
  %498 = call noundef ptr %497(ptr noundef nonnull align 8 dereferenceable(240) %494)
  %499 = load ptr, ptr %498, align 8, !tbaa !5
  %500 = getelementptr inbounds i8, ptr %499, i64 40
  %501 = load ptr, ptr %500, align 8
  %502 = call noundef ptr %501(ptr noundef nonnull align 8 dereferenceable(32) %498)
  %503 = load ptr, ptr %477, align 8, !tbaa !5
  %504 = getelementptr inbounds i8, ptr %503, i64 240
  %505 = load ptr, ptr %504, align 8
  %506 = call noundef nonnull align 8 dereferenceable(144) ptr %505(ptr noundef nonnull align 8 dereferenceable(176) %477)
  %507 = load ptr, ptr %502, align 8, !tbaa !5
  %508 = getelementptr inbounds i8, ptr %507, i64 392
  %509 = load ptr, ptr %508, align 8
  %510 = call noundef ptr %509(ptr noundef nonnull align 8 dereferenceable(193) %502, i32 noundef %switch.load244, ptr noundef nonnull align 8 dereferenceable(144) %506)
  br label %602

511:                                              ; preds = %66
  %512 = load ptr, ptr %.0156, align 8, !tbaa !5
  %513 = getelementptr inbounds i8, ptr %512, i64 240
  %514 = load ptr, ptr %513, align 8
  %515 = call noundef nonnull align 8 dereferenceable(144) ptr %514(ptr noundef nonnull align 8 dereferenceable(176) %.0156)
  %516 = load ptr, ptr %515, align 8, !tbaa !5
  %517 = getelementptr inbounds i8, ptr %516, i64 192
  %518 = load ptr, ptr %517, align 8
  %519 = call noundef zeroext i1 %518(ptr noundef nonnull align 8 dereferenceable(144) %515)
  br i1 %519, label %520, label %540

520:                                              ; preds = %511
  %521 = load ptr, ptr %.0156, align 8, !tbaa !5
  %522 = getelementptr inbounds i8, ptr %521, i64 240
  %523 = load ptr, ptr %522, align 8
  %524 = call noundef nonnull align 8 dereferenceable(144) ptr %523(ptr noundef nonnull align 8 dereferenceable(176) %.0156)
  %525 = load ptr, ptr %524, align 8, !tbaa !5
  %526 = getelementptr inbounds i8, ptr %525, i64 56
  %527 = load ptr, ptr %526, align 8
  %528 = call noundef i32 %527(ptr noundef nonnull align 8 dereferenceable(144) %524)
  %529 = icmp eq i32 %528, 11
  br i1 %529, label %530, label %540

530:                                              ; preds = %520
  %531 = load ptr, ptr %0, align 8, !tbaa !5
  %532 = getelementptr inbounds i8, ptr %531, i64 40
  %533 = load ptr, ptr %532, align 8
  call void %533(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %4, i32 noundef 1, ptr noundef nonnull @_ZN7glslangL20E_GL_EXT_ray_tracingE, ptr noundef nonnull @.str.826)
  %534 = getelementptr inbounds i8, ptr %0, i64 56
  %535 = load ptr, ptr %534, align 8, !tbaa !8
  %536 = load ptr, ptr %.0156, align 8, !tbaa !5
  %537 = load ptr, ptr %536, align 8
  %538 = call noundef nonnull align 8 dereferenceable(24) ptr %537(ptr noundef nonnull align 8 dereferenceable(32) %.0156)
  %539 = call noundef ptr @_ZN7glslang13TIntermediate22addBuiltInFunctionCallERKNS_10TSourceLocENS_9TOperatorEbP11TIntermNodeRKNS_5TTypeE(ptr noundef nonnull align 8 dereferenceable(1784) %535, ptr noundef nonnull align 8 dereferenceable(24) %538, i32 noundef 152, i1 noundef zeroext true, ptr noundef nonnull %.0156, ptr noundef nonnull align 8 dereferenceable(144) %1)
  br label %602

540:                                              ; preds = %520, %511
  %541 = load ptr, ptr %.0156, align 8, !tbaa !5
  %542 = getelementptr inbounds i8, ptr %541, i64 240
  %543 = load ptr, ptr %542, align 8
  %544 = call noundef nonnull align 8 dereferenceable(144) ptr %543(ptr noundef nonnull align 8 dereferenceable(176) %.0156)
  %545 = load ptr, ptr %544, align 8, !tbaa !5
  %546 = getelementptr inbounds i8, ptr %545, i64 216
  %547 = load ptr, ptr %546, align 8
  %548 = call noundef zeroext i1 %547(ptr noundef nonnull align 8 dereferenceable(144) %544)
  br i1 %548, label %549, label %602

549:                                              ; preds = %540
  %550 = load ptr, ptr %.0156, align 8, !tbaa !5
  %551 = getelementptr inbounds i8, ptr %550, i64 240
  %552 = load ptr, ptr %551, align 8
  %553 = call noundef nonnull align 8 dereferenceable(144) ptr %552(ptr noundef nonnull align 8 dereferenceable(176) %.0156)
  %554 = load ptr, ptr %553, align 8, !tbaa !5
  %555 = getelementptr inbounds i8, ptr %554, i64 56
  %556 = load ptr, ptr %555, align 8
  %557 = call noundef i32 %556(ptr noundef nonnull align 8 dereferenceable(144) %553)
  %558 = icmp eq i32 %557, 9
  br i1 %558, label %559, label %602

559:                                              ; preds = %549
  %560 = load ptr, ptr %.0156, align 8, !tbaa !5
  %561 = getelementptr inbounds i8, ptr %560, i64 304
  %562 = load ptr, ptr %561, align 8
  %563 = call noundef i32 %562(ptr noundef nonnull align 8 dereferenceable(176) %.0156)
  %564 = icmp eq i32 %563, 2
  br i1 %564, label %565, label %602

565:                                              ; preds = %559
  %566 = load ptr, ptr %0, align 8, !tbaa !5
  %567 = getelementptr inbounds i8, ptr %566, i64 40
  %568 = load ptr, ptr %567, align 8
  call void %568(ptr noundef nonnull align 8 dereferenceable(192) %0, ptr noundef nonnull align 8 dereferenceable(24) %4, i32 noundef 1, ptr noundef nonnull @_ZN7glslangL20E_GL_EXT_ray_tracingE, ptr noundef nonnull @.str.827)
  %569 = getelementptr inbounds i8, ptr %0, i64 56
  %570 = load ptr, ptr %569, align 8, !tbaa !8
  %571 = load ptr, ptr %.0156, align 8, !tbaa !5
  %572 = load ptr, ptr %571, align 8
  %573 = call noundef nonnull align 8 dereferenceable(24) ptr %572(ptr noundef nonnull align 8 dereferenceable(32) %.0156)
  %574 = call noundef ptr @_ZN7glslang13TIntermediate22addBuiltInFunctionCallERKNS_10TSourceLocENS_9TOperatorEbP11TIntermNodeRKNS_5TTypeE(ptr noundef nonnull align 8 dereferenceable(1784) %570, ptr noundef nonnull align 8 dereferenceable(24) %573, i32 noundef 153, i1 noundef zeroext true, ptr noundef nonnull %.0156, ptr noundef nonnull align 8 dereferenceable(144) %1)
  br label %602

575:                                              ; preds = %66
  %576 = load ptr, ptr %0, align 8, !tbaa !5
  %577 = getelementptr inbounds i8, ptr %576, i64 336
  %578 = load ptr, ptr %577, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %578(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull @.str.828, ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.2)
  br label %602

579:                                              ; preds = %66, %66, %66, %66, %66, %66, %66, %66, %66, %66, %66, %66, %66, %227, %193, %159, %125, %91, %280, %261, %90, %89, %88, %67
  %.0174 = phi i32 [ 473, %280 ], [ 472, %261 ], [ 471, %227 ], [ 470, %193 ], [ 469, %159 ], [ 468, %125 ], [ 555, %91 ], [ 476, %90 ], [ 474, %89 ], [ 467, %88 ], [ 466, %67 ], [ 475, %66 ], [ 475, %66 ], [ 475, %66 ], [ 475, %66 ], [ 475, %66 ], [ 475, %66 ], [ 475, %66 ], [ 475, %66 ], [ 475, %66 ], [ 475, %66 ], [ 475, %66 ], [ 475, %66 ], [ 475, %66 ]
  %580 = getelementptr inbounds i8, ptr %0, i64 56
  %581 = load ptr, ptr %580, align 8, !tbaa !8
  %582 = load ptr, ptr %.0156, align 8, !tbaa !5
  %583 = load ptr, ptr %582, align 8
  %584 = call noundef nonnull align 8 dereferenceable(24) ptr %583(ptr noundef nonnull align 8 dereferenceable(32) %.0156)
  %585 = call noundef ptr @_ZN7glslang13TIntermediate12addUnaryMathENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocE(ptr noundef nonnull align 8 dereferenceable(1784) %581, i32 noundef %.0174, ptr noundef %.0156, ptr noundef nonnull align 8 dereferenceable(24) %584)
  %586 = icmp eq ptr %585, null
  br i1 %586, label %587, label %591

587:                                              ; preds = %579
  %588 = load ptr, ptr %0, align 8, !tbaa !5
  %589 = getelementptr inbounds i8, ptr %588, i64 336
  %590 = load ptr, ptr %589, align 8
  call void (ptr, ptr, ptr, ptr, ptr, ...) %590(ptr noundef nonnull align 8 dereferenceable(1176) %0, ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull @.str.829, ptr noundef nonnull @.str.327, ptr noundef nonnull @.str.2)
  br label %602

591:                                              ; preds = %579
  br i1 %5, label %602, label %592

592:                                              ; preds = %591
  %.not199 = icmp eq ptr %585, %.0156
  br i1 %.not199, label %599, label %593

593:                                              ; preds = %592
  %594 = load ptr, ptr %585, align 8, !tbaa !5
  %595 = getelementptr inbounds i8, ptr %594, i64 240
  %596 = load ptr, ptr %595, align 8
  %597 = call noundef nonnull align 8 dereferenceable(144) ptr %596(ptr noundef nonnull align 8 dereferenceable(176) %585)
  %598 = call noundef zeroext i1 @_ZNK7glslang5TTypeeqERKS0_(ptr noundef nonnull align 8 dereferenceable(144) %597, ptr noundef nonnull align 8 dereferenceable(144) %1)
  br i1 %598, label %602, label %599

599:                                              ; preds = %593, %592
  %600 = load ptr, ptr %580, align 8, !tbaa !8
  %601 = call noundef ptr @_ZN7glslang13TIntermediate20setAggregateOperatorEP11TIntermNodeNS_9TOperatorERKNS_5TTypeERKNS_10TSourceLocE(ptr noundef nonnull align 8 dereferenceable(1784) %600, ptr noundef nonnull %585, i32 noundef %2, ptr noundef nonnull align 8 dereferenceable(144) %1, ptr noundef nonnull align 8 dereferenceable(24) %4)
  br label %602

602:                                              ; preds = %490, %471, %591, %593, %540, %549, %559, %390, %381, %327, %336, %346, %599, %587, %575, %565, %530, %352, %320, %294, %281, %273, %259, %225, %191, %157, %123, %78
  %.1 = phi ptr [ null, %575 ], [ %539, %530 ], [ %574, %565 ], [ %300, %294 ], [ %326, %320 ], [ %361, %352 ], [ %287, %281 ], [ null, %587 ], [ %601, %599 ], [ %279, %273 ], [ %258, %259 ], [ %224, %225 ], [ %190, %191 ], [ %156, %157 ], [ %122, %123 ], [ %87, %78 ], [ null, %346 ], [ null, %336 ], [ null, %327 ], [ null, %381 ], [ %396, %390 ], [ null, %559 ], [ null, %549 ], [ null, %540 ], [ %585, %593 ], [ %585, %591 ], [ %510, %490 ], [ %477, %471 ]
  ret ptr %.1

603:                                              ; preds = %124, %158, %192, %226, %260, %64
  %.pn.pn.pn = phi { ptr, i32 } [ %65, %64 ], [ %.pn, %260 ], [ %.pn189, %226 ], [ %.pn191, %192 ], [ %.pn193, %158 ], [ %.pn195, %124 ]
  resume { ptr, i32 } %.pn.pn.pn
}

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

declare noundef ptr @_ZNK7glslang13TIntermediate13addConversionENS_10TBasicTypeEPNS_12TIntermTypedE(ptr noundef nonnull align 8 dereferenceable(1784), i32 noundef, ptr noundef) local_unnamed_addr #4

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

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

declare noundef ptr @_ZNK7glslang13TIntermediate12addUnaryNodeENS_9TOperatorEPNS_12TIntermTypedERKNS_10TSourceLocERKNS_5TTypeE(ptr noundef nonnull align 8 dereferenceable(1784), i32 noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(144)) local_unnamed_addr #4

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


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