; LLVM IR from kajott/GIPS :: src (gips_shader_loader)

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

%"struct.StringUtil::LookupEntry" = type { ptr, i32 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<GIPS::Parameter, std::allocator<GIPS::Parameter>>::_Vector_impl" }
%"struct.std::_Vector_base<GIPS::Parameter, std::allocator<GIPS::Parameter>>::_Vector_impl" = type { %"struct.std::_Vector_base<GIPS::Parameter, std::allocator<GIPS::Parameter>>::_Vector_impl_data" }
%"struct.std::_Vector_base<GIPS::Parameter, std::allocator<GIPS::Parameter>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::__cxx11::basic_ostringstream" = type { %"class.std::basic_ostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.StringUtil::Tokenizer" = type <{ ptr, i32, i32, [32 x i8], i32, [4 x i8] }>
%"class.GLutil::Shader" = type <{ i32, i32, i32, [4 x i8], ptr, i8, [7 x i8] }>
%"class.std::allocator.0" = type { i8 }
%class.anon = type { ptr, ptr }
%class.anon.3 = type { ptr }
%class.anon.4 = type { ptr, ptr, ptr }
%class.anon.5 = type { ptr, ptr, ptr }
%class.anon.6 = type { ptr, ptr, ptr }
%class.anon.7 = type { ptr, ptr, ptr }
%class.anon.8 = type { ptr, ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.GIPS::Node" = type <{ %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, [4 x i8], [4 x %"struct.GIPS::Node::PassData"], %"class.std::vector", i8, i8, i8, [5 x i8], %"class.FileUtil::FileFingerprint", i32, [4 x i8] }>
%"struct.GIPS::Node::PassData" = type { i8, i32, %"class.GLutil::Program", i32, i32, i32, [4 x i8] }
%"class.GLutil::Program" = type <{ i32, i32, ptr, i8, [7 x i8] }>
%"class.FileUtil::FileFingerprint" = type { i64, i64 }
%"class.GIPS::Parameter" = type { %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, i32, float, float, [4 x float], [4 x float], [4 x float], [4 x i32] }

@.str = external hidden unnamed_addr constant [21 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [29 x i8], align 1
@_ZN4GIPSL8tokenMapE = external hidden constant [15 x %"struct.StringUtil::LookupEntry"], align 16
@.str.60 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [72 x i8], align 1
@__PRETTY_FUNCTION__._ZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintE = external hidden unnamed_addr constant [95 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [5 x i8], align 1
@stderr = external global ptr, align 8
@.str.83 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [11 x i8], align 1
@glad_glUniform4f = external global ptr, align 8
@.str.85 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [20 x i8], align 1
@glad_glUseProgram = external global ptr, align 8
@.str.90 = external hidden unnamed_addr constant [61 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintE(ptr noundef nonnull align 8 dereferenceable(348) %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(25) %2, ptr noundef %3) #0 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca i1, align 1
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca %"class.std::vector", align 8
  %12 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %16 = alloca %"class.StringUtil::Tokenizer", align 8
  %17 = alloca %"class.GLutil::Shader", align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i8, align 1
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i8, align 1
  %26 = alloca [4 x i32], align 16
  %27 = alloca [4 x i32], align 16
  %28 = alloca i8, align 1
  %29 = alloca i32, align 4
  %30 = alloca [4 x i32], align 16
  %31 = alloca i32, align 4
  %32 = alloca ptr, align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::allocator.0", align 1
  %35 = alloca i8, align 1
  %36 = alloca i8, align 1
  %37 = alloca ptr, align 8
  %38 = alloca ptr, align 8
  %39 = alloca ptr, align 8
  %40 = alloca ptr, align 8
  %41 = alloca ptr, align 8
  %42 = alloca i8, align 1
  %43 = alloca float, align 4
  %44 = alloca ptr, align 8
  %45 = alloca i8, align 1
  %46 = alloca %class.anon, align 8
  %47 = alloca %class.anon.3, align 8
  %48 = alloca %class.anon.4, align 8
  %49 = alloca %class.anon.5, align 8
  %50 = alloca %class.anon.6, align 8
  %51 = alloca %class.anon.7, align 8
  %52 = alloca %class.anon.8, align 8
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::allocator.0", align 1
  %57 = alloca ptr, align 8
  %58 = alloca float, align 4
  %59 = alloca ptr, align 8
  %60 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %61 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %62 = alloca ptr, align 8
  %63 = alloca float, align 4
  %64 = alloca float, align 4
  %65 = alloca float, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca float, align 4
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::__cxx11::basic_string", align 8
  %72 = alloca %"class.std::allocator.0", align 1
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca %"class.std::allocator.0", align 1
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %"class.std::allocator.0", align 1
  %80 = alloca ptr, align 8
  %81 = alloca ptr, align 8
  %82 = alloca i32, align 4
  %83 = alloca ptr, align 8
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca %"class.std::__cxx11::basic_string", align 8
  %87 = alloca %"class.std::allocator.0", align 1
  %88 = alloca %"class.std::__cxx11::basic_string", align 8
  %89 = alloca %"class.std::__cxx11::basic_string", align 8
  %90 = alloca ptr, align 8
  %91 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %92 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %93 = alloca ptr, align 8
  %94 = alloca %"class.std::__cxx11::basic_string", align 8
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !5
  store ptr %2, ptr %8, align 8, !tbaa !5
  store ptr %3, ptr %9, align 8, !tbaa !5
  %95 = load ptr, ptr %6, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #11
  store ptr null, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr %11) #11
  call void @_ZNSt6vectorIN4GIPS9ParameterESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #11
  call void @llvm.lifetime.start.p0(i64 376, ptr %12) #11
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %12)
          to label %96 unwind label %108

96:                                               ; preds = %4
  call void @llvm.lifetime.start.p0(i64 376, ptr %15) #11
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %15)
          to label %97 unwind label %112

97:                                               ; preds = %96
  call void @llvm.lifetime.start.p0(i64 56, ptr %16) #11
  invoke void @_ZN10StringUtil9TokenizerC2Ev(ptr noundef nonnull align 8 dereferenceable(52) %16)
          to label %98 unwind label %116

98:                                               ; preds = %97
  call void @llvm.lifetime.start.p0(i64 32, ptr %17) #11
  invoke void @_ZN6GLutil6ShaderC2Ev(ptr noundef nonnull align 8 dereferenceable(25) %17)
          to label %99 unwind label %120

99:                                               ; preds = %98
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #11
  store ptr null, ptr %18, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #11
  store ptr null, ptr %19, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #11
  store i32 0, ptr %20, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #11
  store i32 -1, ptr %21, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #11
  store i8 0, ptr %22, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #11
  store i32 0, ptr %23, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #11
  store i32 0, ptr %24, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #11
  store i8 0, ptr %25, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 16, ptr %26) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %27) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #11
  store i8 1, ptr %28, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #11
  store i32 0, ptr %29, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 16, ptr %30) #11
  call void @llvm.memset.p0.i64(ptr align 16 %30, i8 0, i64 16, i1 false)
  %100 = load ptr, ptr %7, align 8, !tbaa !5
  %101 = icmp ne ptr %100, null
  br i1 %101, label %102, label %107

102:                                              ; preds = %99
  %103 = load ptr, ptr %7, align 8, !tbaa !5
  %104 = getelementptr inbounds i8, ptr %103, i64 0
  %105 = load i8, ptr %104, align 1, !tbaa !17
  %106 = icmp ne i8 %105, 0
  br i1 %106, label %124, label %107

107:                                              ; preds = %102, %99
  store i1 false, ptr %5, align 1
  store i32 1, ptr %31, align 4
  br label %1472

108:                                              ; preds = %4
  %109 = landingpad { ptr, i32 }
          cleanup
  %110 = extractvalue { ptr, i32 } %109, 0
  store ptr %110, ptr %13, align 8
  %111 = extractvalue { ptr, i32 } %109, 1
  store i32 %111, ptr %14, align 4
  br label %1478

112:                                              ; preds = %96
  %113 = landingpad { ptr, i32 }
          cleanup
  %114 = extractvalue { ptr, i32 } %113, 0
  store ptr %114, ptr %13, align 8
  %115 = extractvalue { ptr, i32 } %113, 1
  store i32 %115, ptr %14, align 4
  br label %1477

116:                                              ; preds = %97
  %117 = landingpad { ptr, i32 }
          cleanup
  %118 = extractvalue { ptr, i32 } %117, 0
  store ptr %118, ptr %13, align 8
  %119 = extractvalue { ptr, i32 } %117, 1
  store i32 %119, ptr %14, align 4
  br label %1476

120:                                              ; preds = %98
  %121 = landingpad { ptr, i32 }
          cleanup
  %122 = extractvalue { ptr, i32 } %121, 0
  store ptr %122, ptr %13, align 8
  %123 = extractvalue { ptr, i32 } %121, 1
  store i32 %123, ptr %14, align 4
  br label %1475

124:                                              ; preds = %102
  %125 = load ptr, ptr %7, align 8, !tbaa !5
  %126 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, ptr noundef %125)
          to label %127 unwind label %133

127:                                              ; preds = %124
  %128 = load ptr, ptr %9, align 8, !tbaa !5
  %129 = icmp ne ptr %128, null
  br i1 %129, label %130, label %137

130:                                              ; preds = %127
  %131 = load ptr, ptr %9, align 8, !tbaa !5
  %132 = getelementptr inbounds %"class.GIPS::Node", ptr %95, i32 0, i32 11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %132, ptr align 8 %131, i64 16, i1 false), !tbaa.struct !18
  br label %142

133:                                              ; preds = %1459, %1451, %1179, %191, %188, %171, %168, %166, %157, %142, %137, %124
  %134 = landingpad { ptr, i32 }
          cleanup
  %135 = extractvalue { ptr, i32 } %134, 0
  store ptr %135, ptr %13, align 8
  %136 = extractvalue { ptr, i32 } %134, 1
  store i32 %136, ptr %14, align 4
  br label %1474

137:                                              ; preds = %127
  %138 = getelementptr inbounds %"class.GIPS::Node", ptr %95, i32 0, i32 11
  %139 = load ptr, ptr %7, align 8, !tbaa !5
  %140 = invoke noundef zeroext i1 @_ZN8FileUtil15FileFingerprint6updateEPKc(ptr noundef nonnull align 8 dereferenceable(16) %138, ptr noundef %139)
          to label %141 unwind label %133

141:                                              ; preds = %137
  br label %142

142:                                              ; preds = %141, %130
  %143 = getelementptr inbounds %"class.GIPS::Node", ptr %95, i32 0, i32 7
  store i8 1, ptr %143, align 8, !tbaa !21
  %144 = getelementptr inbounds %"class.GIPS::Node", ptr %95, i32 0, i32 3
  store i32 0, ptr %144, align 8, !tbaa !31
  %145 = load ptr, ptr %7, align 8, !tbaa !5
  %146 = getelementptr inbounds %"class.GIPS::Node", ptr %95, i32 0, i32 1
  %147 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %146, ptr noundef %145)
          to label %148 unwind label %133

148:                                              ; preds = %142
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #11
  %149 = load ptr, ptr %7, align 8, !tbaa !5
  %150 = invoke noundef ptr @_ZN10StringUtil12pathBaseNameEPKc(ptr noundef %149)
          to label %151 unwind label %174

151:                                              ; preds = %148
  store ptr %150, ptr %32, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #11
  %152 = load ptr, ptr %32, align 8, !tbaa !5
  %153 = load ptr, ptr %32, align 8, !tbaa !5
  %154 = invoke noundef i32 @_ZN10StringUtil17pathExtStartIndexEPKc(ptr noundef %153)
          to label %155 unwind label %178

155:                                              ; preds = %151
  %156 = sext i32 %154 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EPKcmRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef %152, i64 noundef %156, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %157 unwind label %182

157:                                              ; preds = %155
  %158 = getelementptr inbounds %"class.GIPS::Node", ptr %95, i32 0, i32 0
  %159 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %158, ptr noundef nonnull align 8 dereferenceable(32) %33) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #11
  %160 = getelementptr inbounds %"class.GIPS::Node", ptr %95, i32 0, i32 12
  store i32 0, ptr %160, align 8, !tbaa !32
  %161 = load ptr, ptr %7, align 8, !tbaa !5
  %162 = invoke noundef ptr @_ZN10StringUtil12loadTextFileEPKcPi(ptr noundef %161, ptr noundef null)
          to label %163 unwind label %133

163:                                              ; preds = %157
  store ptr %162, ptr %10, align 8, !tbaa !5
  %164 = load ptr, ptr %10, align 8, !tbaa !5
  %165 = icmp ne ptr %164, null
  br i1 %165, label %188, label %166

166:                                              ; preds = %163
  %167 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.1)
          to label %168 unwind label %133

168:                                              ; preds = %166
  %169 = load ptr, ptr %7, align 8, !tbaa !5
  %170 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %167, ptr noundef %169)
          to label %171 unwind label %133

171:                                              ; preds = %168
  %172 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %170, ptr noundef @.str.2)
          to label %173 unwind label %133

173:                                              ; preds = %171
  br label %1457

174:                                              ; preds = %148
  %175 = landingpad { ptr, i32 }
          cleanup
  %176 = extractvalue { ptr, i32 } %175, 0
  store ptr %176, ptr %13, align 8
  %177 = extractvalue { ptr, i32 } %175, 1
  store i32 %177, ptr %14, align 4
  br label %187

178:                                              ; preds = %151
  %179 = landingpad { ptr, i32 }
          cleanup
  %180 = extractvalue { ptr, i32 } %179, 0
  store ptr %180, ptr %13, align 8
  %181 = extractvalue { ptr, i32 } %179, 1
  store i32 %181, ptr %14, align 4
  br label %186

182:                                              ; preds = %155
  %183 = landingpad { ptr, i32 }
          cleanup
  %184 = extractvalue { ptr, i32 } %183, 0
  store ptr %184, ptr %13, align 8
  %185 = extractvalue { ptr, i32 } %183, 1
  store i32 %185, ptr %14, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #11
  br label %186

186:                                              ; preds = %182, %178
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #11
  br label %187

187:                                              ; preds = %186, %174
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #11
  br label %1474

188:                                              ; preds = %163
  %189 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZN10StringUtil9Tokenizer4initEPKci(ptr noundef nonnull align 8 dereferenceable(52) %16, ptr noundef %189, i32 noundef -1)
          to label %190 unwind label %133

190:                                              ; preds = %188
  br label %191

191:                                              ; preds = %1006, %1004, %190
  %192 = invoke noundef zeroext i1 @_ZN10StringUtil9Tokenizer4nextEv(ptr noundef nonnull align 8 dereferenceable(52) %16)
          to label %193 unwind label %133

193:                                              ; preds = %191
  br i1 %192, label %194, label %1010

194:                                              ; preds = %193
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #11
  %195 = invoke noundef zeroext i1 @_ZNK10StringUtil9Tokenizer7isTokenEPKc(ptr noundef nonnull align 8 dereferenceable(52) %16, ptr noundef @.str.3)
          to label %196 unwind label %212

196:                                              ; preds = %194
  %197 = zext i1 %195 to i8
  store i8 %197, ptr %35, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 1, ptr %36) #11
  %198 = invoke noundef zeroext i1 @_ZNK10StringUtil9Tokenizer7isTokenEPKc(ptr noundef nonnull align 8 dereferenceable(52) %16, ptr noundef @.str.4)
          to label %199 unwind label %216

199:                                              ; preds = %196
  %200 = zext i1 %198 to i8
  store i8 %200, ptr %36, align 1, !tbaa !13
  %201 = load i8, ptr %35, align 1, !tbaa !13, !range !33, !noundef !34
  %202 = trunc i8 %201 to i1
  br i1 %202, label %206, label %203

203:                                              ; preds = %199
  %204 = load i8, ptr %36, align 1, !tbaa !13, !range !33, !noundef !34
  %205 = trunc i8 %204 to i1
  br i1 %205, label %206, label %734

206:                                              ; preds = %203, %199
  %207 = load i8, ptr %35, align 1, !tbaa !13, !range !33, !noundef !34
  %208 = trunc i8 %207 to i1
  br i1 %208, label %209, label %220

209:                                              ; preds = %206
  %210 = invoke noundef zeroext i1 @_ZN10StringUtil9Tokenizer11extendUntilEPKcb(ptr noundef nonnull align 8 dereferenceable(52) %16, ptr noundef @.str.5, i1 noundef zeroext true)
          to label %211 unwind label %216

211:                                              ; preds = %209
  br label %220

212:                                              ; preds = %194
  %213 = landingpad { ptr, i32 }
          cleanup
  %214 = extractvalue { ptr, i32 } %213, 0
  store ptr %214, ptr %13, align 8
  %215 = extractvalue { ptr, i32 } %213, 1
  store i32 %215, ptr %14, align 4
  br label %1009

216:                                              ; preds = %223, %209, %196
  %217 = landingpad { ptr, i32 }
          cleanup
  %218 = extractvalue { ptr, i32 } %217, 0
  store ptr %218, ptr %13, align 8
  %219 = extractvalue { ptr, i32 } %217, 1
  store i32 %219, ptr %14, align 4
  br label %1008

220:                                              ; preds = %211, %206
  %221 = load i8, ptr %36, align 1, !tbaa !13, !range !33, !noundef !34
  %222 = trunc i8 %221 to i1
  br i1 %222, label %223, label %226

223:                                              ; preds = %220
  %224 = invoke noundef zeroext i1 @_ZN10StringUtil9Tokenizer11extendUntilEPKcb(ptr noundef nonnull align 8 dereferenceable(52) %16, ptr noundef @.str.6, i1 noundef zeroext true)
          to label %225 unwind label %216

225:                                              ; preds = %223
  br label %226

226:                                              ; preds = %225, %220
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #11
  %227 = invoke noundef ptr @_ZNK10StringUtil9Tokenizer12extractTokenEv(ptr noundef nonnull align 8 dereferenceable(52) %16)
          to label %228 unwind label %237

228:                                              ; preds = %226
  store ptr %227, ptr %37, align 8, !tbaa !5
  %229 = load i8, ptr %36, align 1, !tbaa !13, !range !33, !noundef !34
  %230 = trunc i8 %229 to i1
  br i1 %230, label %231, label %241

231:                                              ; preds = %228
  %232 = load ptr, ptr %37, align 8, !tbaa !5
  %233 = load ptr, ptr %37, align 8, !tbaa !5
  %234 = call i64 @strlen(ptr noundef %233) #12
  %235 = sub i64 %234, 2
  %236 = getelementptr inbounds i8, ptr %232, i64 %235
  store i8 0, ptr %236, align 1, !tbaa !17
  br label %241

237:                                              ; preds = %226
  %238 = landingpad { ptr, i32 }
          cleanup
  %239 = extractvalue { ptr, i32 } %238, 0
  store ptr %239, ptr %13, align 8
  %240 = extractvalue { ptr, i32 } %238, 1
  store i32 %240, ptr %14, align 4
  br label %733

241:                                              ; preds = %231, %228
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #11
  %242 = load ptr, ptr %37, align 8, !tbaa !5
  %243 = getelementptr inbounds i8, ptr %242, i64 2
  store ptr %243, ptr %38, align 8, !tbaa !5
  %244 = load ptr, ptr %38, align 8, !tbaa !5
  %245 = getelementptr inbounds i8, ptr %244, i64 0
  %246 = load i8, ptr %245, align 1, !tbaa !17
  %247 = sext i8 %246 to i32
  %248 = icmp eq i32 %247, 33
  br i1 %248, label %249, label %252

249:                                              ; preds = %241
  %250 = load ptr, ptr %38, align 8, !tbaa !5
  %251 = getelementptr inbounds i8, ptr %250, i32 1
  store ptr %251, ptr %38, align 8, !tbaa !5
  br label %252

252:                                              ; preds = %249, %241
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #11
  %253 = load ptr, ptr %38, align 8, !tbaa !5
  store ptr %253, ptr %39, align 8, !tbaa !5
  br label %254

254:                                              ; preds = %703, %267, %252
  %255 = load ptr, ptr %39, align 8, !tbaa !5
  %256 = call noundef ptr @strchr(ptr noundef %255, i32 noundef 64) #12
  store ptr %256, ptr %39, align 8, !tbaa !5
  %257 = load ptr, ptr %39, align 8, !tbaa !5
  %258 = icmp ne ptr %257, null
  br i1 %258, label %260, label %259

259:                                              ; preds = %254
  br label %705

260:                                              ; preds = %254
  %261 = load ptr, ptr %39, align 8, !tbaa !5
  %262 = getelementptr inbounds i8, ptr %261, i64 -1
  %263 = load i8, ptr %262, align 1, !tbaa !17
  %264 = sext i8 %263 to i32
  %265 = call i32 @isalnum(i32 noundef %264) #12
  %266 = icmp ne i32 %265, 0
  br i1 %266, label %267, label %270

267:                                              ; preds = %260
  %268 = load ptr, ptr %39, align 8, !tbaa !5
  %269 = getelementptr inbounds i8, ptr %268, i32 1
  store ptr %269, ptr %39, align 8, !tbaa !5
  br label %254, !llvm.loop !35

270:                                              ; preds = %260
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #11
  %271 = load ptr, ptr %39, align 8, !tbaa !5
  %272 = getelementptr inbounds i8, ptr %271, i64 1
  store ptr %272, ptr %40, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #11
  store ptr null, ptr %41, align 8, !tbaa !5
  %273 = load ptr, ptr %40, align 8, !tbaa !5
  store ptr %273, ptr %39, align 8, !tbaa !5
  br label %274

274:                                              ; preds = %286, %270
  %275 = load ptr, ptr %39, align 8, !tbaa !5
  %276 = load i8, ptr %275, align 1, !tbaa !17
  %277 = invoke noundef zeroext i1 @_ZN10StringUtil7isidentEc(i8 noundef signext %276)
          to label %278 unwind label %289

278:                                              ; preds = %274
  br i1 %277, label %279, label %293

279:                                              ; preds = %278
  %280 = load ptr, ptr %39, align 8, !tbaa !5
  %281 = load i8, ptr %280, align 1, !tbaa !17
  %282 = sext i8 %281 to i32
  %283 = call i32 @tolower(i32 noundef %282) #12
  %284 = trunc i32 %283 to i8
  %285 = load ptr, ptr %39, align 8, !tbaa !5
  store i8 %284, ptr %285, align 1, !tbaa !17
  br label %286

286:                                              ; preds = %279
  %287 = load ptr, ptr %39, align 8, !tbaa !5
  %288 = getelementptr inbounds i8, ptr %287, i32 1
  store ptr %288, ptr %39, align 8, !tbaa !5
  br label %274, !llvm.loop !37

289:                                              ; preds = %303, %274
  %290 = landingpad { ptr, i32 }
          cleanup
  %291 = extractvalue { ptr, i32 } %290, 0
  store ptr %291, ptr %13, align 8
  %292 = extractvalue { ptr, i32 } %290, 1
  store i32 %292, ptr %14, align 4
  br label %704

293:                                              ; preds = %278
  %294 = load ptr, ptr %39, align 8, !tbaa !5
  %295 = load i8, ptr %294, align 1, !tbaa !17
  %296 = sext i8 %295 to i32
  %297 = icmp eq i32 %296, 61
  br i1 %297, label %298, label %319

298:                                              ; preds = %293
  %299 = load ptr, ptr %39, align 8, !tbaa !5
  store i8 0, ptr %299, align 1, !tbaa !17
  %300 = load ptr, ptr %39, align 8, !tbaa !5
  %301 = getelementptr inbounds i8, ptr %300, i64 1
  store ptr %301, ptr %41, align 8, !tbaa !5
  %302 = load ptr, ptr %41, align 8, !tbaa !5
  store ptr %302, ptr %39, align 8, !tbaa !5
  br label %303

303:                                              ; preds = %315, %298
  %304 = load ptr, ptr %39, align 8, !tbaa !5
  %305 = load i8, ptr %304, align 1, !tbaa !17
  %306 = invoke noundef zeroext i1 @_ZN10StringUtil7isidentEc(i8 noundef signext %305)
          to label %307 unwind label %289

307:                                              ; preds = %303
  br i1 %306, label %308, label %318

308:                                              ; preds = %307
  %309 = load ptr, ptr %39, align 8, !tbaa !5
  %310 = load i8, ptr %309, align 1, !tbaa !17
  %311 = sext i8 %310 to i32
  %312 = call i32 @tolower(i32 noundef %311) #12
  %313 = trunc i32 %312 to i8
  %314 = load ptr, ptr %39, align 8, !tbaa !5
  store i8 %313, ptr %314, align 1, !tbaa !17
  br label %315

315:                                              ; preds = %308
  %316 = load ptr, ptr %39, align 8, !tbaa !5
  %317 = getelementptr inbounds i8, ptr %316, i32 1
  store ptr %317, ptr %39, align 8, !tbaa !5
  br label %303, !llvm.loop !38

318:                                              ; preds = %307
  br label %319

319:                                              ; preds = %318, %293
  %320 = load ptr, ptr %39, align 8, !tbaa !5
  %321 = load i8, ptr %320, align 1, !tbaa !17
  %322 = icmp ne i8 %321, 0
  br i1 %322, label %323, label %326

323:                                              ; preds = %319
  %324 = load ptr, ptr %39, align 8, !tbaa !5
  %325 = getelementptr inbounds i8, ptr %324, i32 1
  store ptr %325, ptr %39, align 8, !tbaa !5
  store i8 0, ptr %324, align 1, !tbaa !17
  br label %326

326:                                              ; preds = %323, %319
  call void @llvm.lifetime.start.p0(i64 1, ptr %42) #11
  store i8 0, ptr %42, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #11
  store float 0.000000e+00, ptr %43, align 4, !tbaa !39
  %327 = load ptr, ptr %41, align 8, !tbaa !5
  %328 = icmp ne ptr %327, null
  br i1 %328, label %329, label %342

329:                                              ; preds = %326
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #11
  store ptr null, ptr %44, align 8, !tbaa !5
  %330 = load ptr, ptr %41, align 8, !tbaa !5
  %331 = call float @strtof(ptr noundef %330, ptr noundef %44) #11
  store float %331, ptr %43, align 4, !tbaa !39
  %332 = load ptr, ptr %44, align 8, !tbaa !5
  %333 = icmp ne ptr %332, null
  br i1 %333, label %334, label %339

334:                                              ; preds = %329
  %335 = load ptr, ptr %44, align 8, !tbaa !5
  %336 = load i8, ptr %335, align 1, !tbaa !17
  %337 = icmp ne i8 %336, 0
  %338 = xor i1 %337, true
  br label %339

339:                                              ; preds = %334, %329
  %340 = phi i1 [ false, %329 ], [ %338, %334 ]
  %341 = zext i1 %340 to i8
  store i8 %341, ptr %42, align 1, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #11
  br label %342

342:                                              ; preds = %339, %326
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #11
  store i8 0, ptr %45, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 16, ptr %46) #11
  %343 = getelementptr inbounds %class.anon, ptr %46, i32 0, i32 0
  store ptr %40, ptr %343, align 8, !tbaa !5
  %344 = getelementptr inbounds %class.anon, ptr %46, i32 0, i32 1
  store ptr %45, ptr %344, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #11
  %345 = getelementptr inbounds %class.anon.3, ptr %47, i32 0, i32 0
  store ptr %41, ptr %345, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr %48) #11
  %346 = getelementptr inbounds %class.anon.4, ptr %48, i32 0, i32 0
  store ptr %19, ptr %346, align 8, !tbaa !5
  %347 = getelementptr inbounds %class.anon.4, ptr %48, i32 0, i32 1
  store ptr %15, ptr %347, align 8, !tbaa !5
  %348 = getelementptr inbounds %class.anon.4, ptr %48, i32 0, i32 2
  store ptr %40, ptr %348, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr %49) #11
  %349 = getelementptr inbounds %class.anon.5, ptr %49, i32 0, i32 0
  store ptr %19, ptr %349, align 8, !tbaa !5
  %350 = getelementptr inbounds %class.anon.5, ptr %49, i32 0, i32 1
  store ptr %15, ptr %350, align 8, !tbaa !5
  %351 = getelementptr inbounds %class.anon.5, ptr %49, i32 0, i32 2
  store ptr %40, ptr %351, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr %50) #11
  %352 = getelementptr inbounds %class.anon.6, ptr %50, i32 0, i32 0
  store ptr %41, ptr %352, align 8, !tbaa !5
  %353 = getelementptr inbounds %class.anon.6, ptr %50, i32 0, i32 1
  store ptr %15, ptr %353, align 8, !tbaa !5
  %354 = getelementptr inbounds %class.anon.6, ptr %50, i32 0, i32 2
  store ptr %40, ptr %354, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr %51) #11
  %355 = getelementptr inbounds %class.anon.7, ptr %51, i32 0, i32 0
  store ptr %42, ptr %355, align 8, !tbaa !5
  %356 = getelementptr inbounds %class.anon.7, ptr %51, i32 0, i32 1
  store ptr %15, ptr %356, align 8, !tbaa !5
  %357 = getelementptr inbounds %class.anon.7, ptr %51, i32 0, i32 2
  store ptr %40, ptr %357, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #11
  %358 = getelementptr inbounds %class.anon.8, ptr %52, i32 0, i32 0
  store ptr %20, ptr %358, align 8, !tbaa !5
  %359 = getelementptr inbounds %class.anon.8, ptr %52, i32 0, i32 1
  store ptr %15, ptr %359, align 8, !tbaa !5
  %360 = getelementptr inbounds %class.anon.8, ptr %52, i32 0, i32 2
  store ptr %40, ptr %360, align 8, !tbaa !5
  %361 = getelementptr inbounds %class.anon.8, ptr %52, i32 0, i32 3
  store ptr %19, ptr %361, align 8, !tbaa !5
  %362 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef @.str.7)
          to label %363 unwind label %377

363:                                              ; preds = %342
  br i1 %362, label %367, label %364

364:                                              ; preds = %363
  %365 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef @.str.8)
          to label %366 unwind label %377

366:                                              ; preds = %364
  br i1 %365, label %367, label %381

367:                                              ; preds = %366, %363
  %368 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_2clEv"(ptr noundef nonnull align 8 dereferenceable(24) %48)
          to label %369 unwind label %377

369:                                              ; preds = %367
  br i1 %368, label %370, label %381

370:                                              ; preds = %369
  %371 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_5clEv"(ptr noundef nonnull align 8 dereferenceable(24) %51)
          to label %372 unwind label %377

372:                                              ; preds = %370
  br i1 %371, label %373, label %381

373:                                              ; preds = %372
  %374 = load float, ptr %43, align 4, !tbaa !39
  %375 = load ptr, ptr %19, align 8, !tbaa !5
  %376 = getelementptr inbounds %"class.GIPS::Parameter", ptr %375, i32 0, i32 5
  store float %374, ptr %376, align 8, !tbaa !41
  br label %692

377:                                              ; preds = %677, %674, %672, %664, %662, %660, %657, %655, %649, %646, %643, %640, %635, %632, %630, %626, %623, %620, %617, %613, %610, %607, %604, %601, %598, %595, %592, %585, %582, %580, %575, %572, %569, %566, %561, %558, %555, %552, %547, %544, %541, %538, %533, %530, %527, %524, %521, %518, %515, %512, %506, %503, %501, %497, %494, %490, %486, %483, %480, %477, %474, %471, %466, %463, %460, %457, %454, %451, %448, %445, %442, %439, %436, %430, %427, %424, %421, %415, %412, %403, %400, %397, %390, %387, %384, %381, %370, %367, %364, %342
  %378 = landingpad { ptr, i32 }
          cleanup
  %379 = extractvalue { ptr, i32 } %378, 0
  store ptr %379, ptr %13, align 8
  %380 = extractvalue { ptr, i32 } %378, 1
  store i32 %380, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %51) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %50) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %49) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %48) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %46) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #11
  br label %704

381:                                              ; preds = %372, %369, %366
  %382 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef @.str.9)
          to label %383 unwind label %377

383:                                              ; preds = %381
  br i1 %382, label %387, label %384

384:                                              ; preds = %383
  %385 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef @.str.10)
          to label %386 unwind label %377

386:                                              ; preds = %384
  br i1 %385, label %387, label %397

387:                                              ; preds = %386, %383
  %388 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_2clEv"(ptr noundef nonnull align 8 dereferenceable(24) %48)
          to label %389 unwind label %377

389:                                              ; preds = %387
  br i1 %388, label %390, label %397

390:                                              ; preds = %389
  %391 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_5clEv"(ptr noundef nonnull align 8 dereferenceable(24) %51)
          to label %392 unwind label %377

392:                                              ; preds = %390
  br i1 %391, label %393, label %397

393:                                              ; preds = %392
  %394 = load float, ptr %43, align 4, !tbaa !39
  %395 = load ptr, ptr %19, align 8, !tbaa !5
  %396 = getelementptr inbounds %"class.GIPS::Parameter", ptr %395, i32 0, i32 6
  store float %394, ptr %396, align 4, !tbaa !44
  br label %691

397:                                              ; preds = %392, %389, %386
  %398 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef @.str.11)
          to label %399 unwind label %377

399:                                              ; preds = %397
  br i1 %398, label %400, label %412

400:                                              ; preds = %399
  %401 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_2clEv"(ptr noundef nonnull align 8 dereferenceable(24) %48)
          to label %402 unwind label %377

402:                                              ; preds = %400
  br i1 %401, label %403, label %412

403:                                              ; preds = %402
  %404 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_5clEv"(ptr noundef nonnull align 8 dereferenceable(24) %51)
          to label %405 unwind label %377

405:                                              ; preds = %403
  br i1 %404, label %406, label %412

406:                                              ; preds = %405
  %407 = load float, ptr %43, align 4, !tbaa !39
  %408 = fadd float %407, 5.000000e-01
  %409 = fptosi float %408 to i32
  %410 = load ptr, ptr %19, align 8, !tbaa !5
  %411 = getelementptr inbounds %"class.GIPS::Parameter", ptr %410, i32 0, i32 4
  store i32 %409, ptr %411, align 4, !tbaa !45
  br label %690

412:                                              ; preds = %405, %402, %399
  %413 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef @.str.12)
          to label %414 unwind label %377

414:                                              ; preds = %412
  br i1 %413, label %415, label %421

415:                                              ; preds = %414
  %416 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_2clEv"(ptr noundef nonnull align 8 dereferenceable(24) %48)
          to label %417 unwind label %377

417:                                              ; preds = %415
  br i1 %416, label %418, label %421

418:                                              ; preds = %417
  %419 = load ptr, ptr %19, align 8, !tbaa !5
  %420 = getelementptr inbounds %"class.GIPS::Parameter", ptr %419, i32 0, i32 4
  store i32 0, ptr %420, align 4, !tbaa !45
  br label %689

421:                                              ; preds = %417, %414
  %422 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef @.str.13)
          to label %423 unwind label %377

423:                                              ; preds = %421
  br i1 %422, label %424, label %436

424:                                              ; preds = %423
  %425 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_2clEv"(ptr noundef nonnull align 8 dereferenceable(24) %48)
          to label %426 unwind label %377

426:                                              ; preds = %424
  br i1 %425, label %427, label %436

427:                                              ; preds = %426
  %428 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_4clEv"(ptr noundef nonnull align 8 dereferenceable(24) %50)
          to label %429 unwind label %377

429:                                              ; preds = %427
  br i1 %428, label %430, label %436

430:                                              ; preds = %429
  %431 = load ptr, ptr %41, align 8, !tbaa !5
  %432 = load ptr, ptr %19, align 8, !tbaa !5
  %433 = getelementptr inbounds %"class.GIPS::Parameter", ptr %432, i32 0, i32 2
  %434 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %433, ptr noundef %431)
          to label %435 unwind label %377

435:                                              ; preds = %430
  br label %688

436:                                              ; preds = %429, %426, %423
  %437 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef @.str.14)
          to label %438 unwind label %377

438:                                              ; preds = %436
  br i1 %437, label %442, label %439

439:                                              ; preds = %438
  %440 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef @.str.15)
          to label %441 unwind label %377

441:                                              ; preds = %439
  br i1 %440, label %442, label %448

442:                                              ; preds = %441, %438
  %443 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_2clEv"(ptr noundef nonnull align 8 dereferenceable(24) %48)
          to label %444 unwind label %377

444:                                              ; preds = %442
  br i1 %443, label %445, label %448

445:                                              ; preds = %444
  %446 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_6clENS_9GLSLTokenENS_13ParameterTypeEb"(ptr noundef nonnull align 8 dereferenceable(32) %52, i32 noundef 1, i32 noundef 4, i1 noundef zeroext true)
          to label %447 unwind label %377

447:                                              ; preds = %445
  br label %687

448:                                              ; preds = %444, %441
  %449 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef @.str.16)
          to label %450 unwind label %377

450:                                              ; preds = %448
  br i1 %449, label %451, label %457

451:                                              ; preds = %450
  %452 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_2clEv"(ptr noundef nonnull align 8 dereferenceable(24) %48)
          to label %453 unwind label %377

453:                                              ; preds = %451
  br i1 %452, label %454, label %457

454:                                              ; preds = %453
  %455 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_6clENS_9GLSLTokenENS_13ParameterTypeEb"(ptr noundef nonnull align 8 dereferenceable(32) %52, i32 noundef 1, i32 noundef 5, i1 noundef zeroext true)
          to label %456 unwind label %377

456:                                              ; preds = %454
  br label %686

457:                                              ; preds = %453, %450
  %458 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef @.str.17)
          to label %459 unwind label %377

459:                                              ; preds = %457
  br i1 %458, label %460, label %471

460:                                              ; preds = %459
  %461 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_2clEv"(ptr noundef nonnull align 8 dereferenceable(24) %48)
          to label %462 unwind label %377

462:                                              ; preds = %460
  br i1 %461, label %463, label %471

463:                                              ; preds = %462
  %464 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_6clENS_9GLSLTokenENS_13ParameterTypeEb"(ptr noundef nonnull align 8 dereferenceable(32) %52, i32 noundef 3, i32 noundef 6, i1 noundef zeroext false)
          to label %465 unwind label %377

465:                                              ; preds = %463
  br i1 %464, label %469, label %466

466:                                              ; preds = %465
  %467 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_6clENS_9GLSLTokenENS_13ParameterTypeEb"(ptr noundef nonnull align 8 dereferenceable(32) %52, i32 noundef 4, i32 noundef 7, i1 noundef zeroext true)
          to label %468 unwind label %377

468:                                              ; preds = %466
  br label %469

469:                                              ; preds = %468, %465
  %470 = phi i1 [ true, %465 ], [ %467, %468 ]
  br label %685

471:                                              ; preds = %462, %459
  %472 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef @.str.18)
          to label %473 unwind label %377

473:                                              ; preds = %471
  br i1 %472, label %480, label %474

474:                                              ; preds = %473
  %475 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef @.str.19)
          to label %476 unwind label %377

476:                                              ; preds = %474
  br i1 %475, label %480, label %477

477:                                              ; preds = %476
  %478 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef @.str.20)
          to label %479 unwind label %377

479:                                              ; preds = %477
  br i1 %478, label %480, label %512

480:                                              ; preds = %479, %476, %473
  %481 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_3clEv"(ptr noundef nonnull align 8 dereferenceable(24) %49)
          to label %482 unwind label %377

482:                                              ; preds = %480
  br i1 %481, label %483, label %512

483:                                              ; preds = %482
  %484 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_4clEv"(ptr noundef nonnull align 8 dereferenceable(24) %50)
          to label %485 unwind label %377

485:                                              ; preds = %483
  br i1 %484, label %486, label %512

486:                                              ; preds = %485
  %487 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef @.str.21)
          to label %488 unwind label %377

488:                                              ; preds = %486
  br i1 %487, label %489, label %490

489:                                              ; preds = %488
  store i32 1, ptr %29, align 4, !tbaa !15
  br label %511

490:                                              ; preds = %488
  %491 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef @.str.22)
          to label %492 unwind label %377

492:                                              ; preds = %490
  br i1 %491, label %493, label %494

493:                                              ; preds = %492
  store i32 0, ptr %29, align 4, !tbaa !15
  br label %510

494:                                              ; preds = %492
  %495 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef @.str.23)
          to label %496 unwind label %377

496:                                              ; preds = %494
  br i1 %495, label %500, label %497

497:                                              ; preds = %496
  %498 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef @.str.24)
          to label %499 unwind label %377

499:                                              ; preds = %497
  br i1 %498, label %500, label %501

500:                                              ; preds = %499, %496
  store i32 2, ptr %29, align 4, !tbaa !15
  br label %509

501:                                              ; preds = %499
  %502 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.25)
          to label %503 unwind label %377

503:                                              ; preds = %501
  %504 = load ptr, ptr %41, align 8, !tbaa !5
  %505 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %502, ptr noundef %504)
          to label %506 unwind label %377

506:                                              ; preds = %503
  %507 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %505, ptr noundef @.str.2)
          to label %508 unwind label %377

508:                                              ; preds = %506
  br label %509

509:                                              ; preds = %508, %500
  br label %510

510:                                              ; preds = %509, %493
  br label %511

511:                                              ; preds = %510, %489
  br label %684

512:                                              ; preds = %485, %482, %479
  %513 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef @.str.26)
          to label %514 unwind label %377

514:                                              ; preds = %512
  br i1 %513, label %518, label %515

515:                                              ; preds = %514
  %516 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef @.str.27)
          to label %517 unwind label %377

517:                                              ; preds = %515
  br i1 %516, label %518, label %592

518:                                              ; preds = %517, %514
  %519 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_3clEv"(ptr noundef nonnull align 8 dereferenceable(24) %49)
          to label %520 unwind label %377

520:                                              ; preds = %518
  br i1 %519, label %521, label %592

521:                                              ; preds = %520
  %522 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_4clEv"(ptr noundef nonnull align 8 dereferenceable(24) %50)
          to label %523 unwind label %377

523:                                              ; preds = %521
  br i1 %522, label %524, label %592

524:                                              ; preds = %523
  %525 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef @.str.28)
          to label %526 unwind label %377

526:                                              ; preds = %524
  br i1 %525, label %536, label %527

527:                                              ; preds = %526
  %528 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef @.str.29)
          to label %529 unwind label %377

529:                                              ; preds = %527
  br i1 %528, label %536, label %530

530:                                              ; preds = %529
  %531 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef @.str.30)
          to label %532 unwind label %377

532:                                              ; preds = %530
  br i1 %531, label %536, label %533

533:                                              ; preds = %532
  %534 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef @.str.31)
          to label %535 unwind label %377

535:                                              ; preds = %533
  br i1 %534, label %536, label %538

536:                                              ; preds = %535, %532, %529, %526
  %537 = getelementptr inbounds %"class.GIPS::Node", ptr %95, i32 0, i32 12
  store i32 8, ptr %537, align 8, !tbaa !32
  br label %591

538:                                              ; preds = %535
  %539 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef @.str.32)
          to label %540 unwind label %377

540:                                              ; preds = %538
  br i1 %539, label %550, label %541

541:                                              ; preds = %540
  %542 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef @.str.33)
          to label %543 unwind label %377

543:                                              ; preds = %541
  br i1 %542, label %550, label %544

544:                                              ; preds = %543
  %545 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef @.str.34)
          to label %546 unwind label %377

546:                                              ; preds = %544
  br i1 %545, label %550, label %547

547:                                              ; preds = %546
  %548 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef @.str.35)
          to label %549 unwind label %377

549:                                              ; preds = %547
  br i1 %548, label %550, label %552

550:                                              ; preds = %549, %546, %543, %540
  %551 = getelementptr inbounds %"class.GIPS::Node", ptr %95, i32 0, i32 12
  store i32 16, ptr %551, align 8, !tbaa !32
  br label %590

552:                                              ; preds = %549
  %553 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef @.str.36)
          to label %554 unwind label %377

554:                                              ; preds = %552
  br i1 %553, label %564, label %555

555:                                              ; preds = %554
  %556 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef @.str.37)
          to label %557 unwind label %377

557:                                              ; preds = %555
  br i1 %556, label %564, label %558

558:                                              ; preds = %557
  %559 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef @.str.38)
          to label %560 unwind label %377

560:                                              ; preds = %558
  br i1 %559, label %564, label %561

561:                                              ; preds = %560
  %562 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef @.str.39)
          to label %563 unwind label %377

563:                                              ; preds = %561
  br i1 %562, label %564, label %566

564:                                              ; preds = %563, %560, %557, %554
  %565 = getelementptr inbounds %"class.GIPS::Node", ptr %95, i32 0, i32 12
  store i32 116, ptr %565, align 8, !tbaa !32
  br label %589

566:                                              ; preds = %563
  %567 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef @.str.40)
          to label %568 unwind label %377

568:                                              ; preds = %566
  br i1 %567, label %578, label %569

569:                                              ; preds = %568
  %570 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef @.str.41)
          to label %571 unwind label %377

571:                                              ; preds = %569
  br i1 %570, label %578, label %572

572:                                              ; preds = %571
  %573 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef @.str.42)
          to label %574 unwind label %377

574:                                              ; preds = %572
  br i1 %573, label %578, label %575

575:                                              ; preds = %574
  %576 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef @.str.43)
          to label %577 unwind label %377

577:                                              ; preds = %575
  br i1 %576, label %578, label %580

578:                                              ; preds = %577, %574, %571, %568
  %579 = getelementptr inbounds %"class.GIPS::Node", ptr %95, i32 0, i32 12
  store i32 132, ptr %579, align 8, !tbaa !32
  br label %588

580:                                              ; preds = %577
  %581 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.44)
          to label %582 unwind label %377

582:                                              ; preds = %580
  %583 = load ptr, ptr %41, align 8, !tbaa !5
  %584 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %581, ptr noundef %583)
          to label %585 unwind label %377

585:                                              ; preds = %582
  %586 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %584, ptr noundef @.str.2)
          to label %587 unwind label %377

587:                                              ; preds = %585
  br label %588

588:                                              ; preds = %587, %578
  br label %589

589:                                              ; preds = %588, %564
  br label %590

590:                                              ; preds = %589, %550
  br label %591

591:                                              ; preds = %590, %536
  br label %683

592:                                              ; preds = %523, %520, %517
  %593 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef @.str.45)
          to label %594 unwind label %377

594:                                              ; preds = %592
  br i1 %593, label %598, label %595

595:                                              ; preds = %594
  %596 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef @.str.46)
          to label %597 unwind label %377

597:                                              ; preds = %595
  br i1 %596, label %598, label %640

598:                                              ; preds = %597, %594
  %599 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_3clEv"(ptr noundef nonnull align 8 dereferenceable(24) %49)
          to label %600 unwind label %377

600:                                              ; preds = %598
  br i1 %599, label %601, label %640

601:                                              ; preds = %600
  %602 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_4clEv"(ptr noundef nonnull align 8 dereferenceable(24) %50)
          to label %603 unwind label %377

603:                                              ; preds = %601
  br i1 %602, label %604, label %640

604:                                              ; preds = %603
  %605 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef @.str.47)
          to label %606 unwind label %377

606:                                              ; preds = %604
  br i1 %605, label %616, label %607

607:                                              ; preds = %606
  %608 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef @.str.10)
          to label %609 unwind label %377

609:                                              ; preds = %607
  br i1 %608, label %616, label %610

610:                                              ; preds = %609
  %611 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef @.str.48)
          to label %612 unwind label %377

612:                                              ; preds = %610
  br i1 %611, label %616, label %613

613:                                              ; preds = %612
  %614 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef @.str.49)
          to label %615 unwind label %377

615:                                              ; preds = %613
  br i1 %614, label %616, label %617

616:                                              ; preds = %615, %612, %609, %606
  store i8 1, ptr %28, align 1, !tbaa !13
  br label %639

617:                                              ; preds = %615
  %618 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef @.str.50)
          to label %619 unwind label %377

619:                                              ; preds = %617
  br i1 %618, label %629, label %620

620:                                              ; preds = %619
  %621 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef @.str.8)
          to label %622 unwind label %377

622:                                              ; preds = %620
  br i1 %621, label %629, label %623

623:                                              ; preds = %622
  %624 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef @.str.51)
          to label %625 unwind label %377

625:                                              ; preds = %623
  br i1 %624, label %629, label %626

626:                                              ; preds = %625
  %627 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef @.str.52)
          to label %628 unwind label %377

628:                                              ; preds = %626
  br i1 %627, label %629, label %630

629:                                              ; preds = %628, %625, %622, %619
  store i8 0, ptr %28, align 1, !tbaa !13
  br label %638

630:                                              ; preds = %628
  %631 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.53)
          to label %632 unwind label %377

632:                                              ; preds = %630
  %633 = load ptr, ptr %41, align 8, !tbaa !5
  %634 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %631, ptr noundef %633)
          to label %635 unwind label %377

635:                                              ; preds = %632
  %636 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %634, ptr noundef @.str.2)
          to label %637 unwind label %377

637:                                              ; preds = %635
  br label %638

638:                                              ; preds = %637, %629
  br label %639

639:                                              ; preds = %638, %616
  br label %682

640:                                              ; preds = %603, %600, %597
  %641 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef @.str.54)
          to label %642 unwind label %377

642:                                              ; preds = %640
  br i1 %641, label %646, label %643

643:                                              ; preds = %642
  %644 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef @.str.55)
          to label %645 unwind label %377

645:                                              ; preds = %643
  br i1 %644, label %646, label %669

646:                                              ; preds = %645, %642
  %647 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_3clEv"(ptr noundef nonnull align 8 dereferenceable(24) %49)
          to label %648 unwind label %377

648:                                              ; preds = %646
  br i1 %647, label %649, label %669

649:                                              ; preds = %648
  %650 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_5clEv"(ptr noundef nonnull align 8 dereferenceable(24) %51)
          to label %651 unwind label %377

651:                                              ; preds = %649
  br i1 %650, label %652, label %669

652:                                              ; preds = %651
  %653 = load float, ptr %43, align 4, !tbaa !39
  %654 = fcmp ogt float %653, 1.000000e+00
  br i1 %654, label %655, label %668

655:                                              ; preds = %652
  %656 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.56)
          to label %657 unwind label %377

657:                                              ; preds = %655
  %658 = load float, ptr %43, align 4, !tbaa !39
  %659 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %656, float noundef %658)
          to label %660 unwind label %377

660:                                              ; preds = %657
  %661 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %659, ptr noundef @.str.57)
          to label %662 unwind label %377

662:                                              ; preds = %660
  %663 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %661, float noundef 1.000000e+00)
          to label %664 unwind label %377

664:                                              ; preds = %662
  %665 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %663, ptr noundef @.str.58)
          to label %666 unwind label %377

666:                                              ; preds = %664
  %667 = load ptr, ptr %37, align 8, !tbaa !5
  call void @free(ptr noundef %667) #11
  store i32 2, ptr %31, align 4
  br label %701

668:                                              ; preds = %652
  br label %681

669:                                              ; preds = %651, %648, %645
  %670 = load i8, ptr %45, align 1, !tbaa !13, !range !33, !noundef !34
  %671 = trunc i8 %670 to i1
  br i1 %671, label %680, label %672

672:                                              ; preds = %669
  %673 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.59)
          to label %674 unwind label %377

674:                                              ; preds = %672
  %675 = load ptr, ptr %40, align 8, !tbaa !5
  %676 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %673, ptr noundef %675)
          to label %677 unwind label %377

677:                                              ; preds = %674
  %678 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %676, ptr noundef @.str.2)
          to label %679 unwind label %377

679:                                              ; preds = %677
  br label %680

680:                                              ; preds = %679, %669
  br label %681

681:                                              ; preds = %680, %668
  br label %682

682:                                              ; preds = %681, %639
  br label %683

683:                                              ; preds = %682, %591
  br label %684

684:                                              ; preds = %683, %511
  br label %685

685:                                              ; preds = %684, %469
  br label %686

686:                                              ; preds = %685, %456
  br label %687

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

688:                                              ; preds = %687, %435
  br label %689

689:                                              ; preds = %688, %418
  br label %690

690:                                              ; preds = %689, %406
  br label %691

691:                                              ; preds = %690, %393
  br label %692

692:                                              ; preds = %691, %373
  %693 = load ptr, ptr %40, align 8, !tbaa !5
  %694 = getelementptr inbounds i8, ptr %693, i64 -1
  %695 = load ptr, ptr %39, align 8, !tbaa !5
  %696 = load ptr, ptr %39, align 8, !tbaa !5
  %697 = call i64 @strlen(ptr noundef %696) #12
  %698 = add i64 %697, 1
  call void @llvm.memmove.p0.p0.i64(ptr align 1 %694, ptr align 1 %695, i64 %698, i1 false)
  %699 = load ptr, ptr %40, align 8, !tbaa !5
  %700 = getelementptr inbounds i8, ptr %699, i64 -1
  store ptr %700, ptr %39, align 8, !tbaa !5
  store i32 0, ptr %31, align 4
  br label %701

701:                                              ; preds = %692, %666
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %51) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %50) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %49) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %48) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %46) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #11
  %702 = load i32, ptr %31, align 4
  switch i32 %702, label %731 [
    i32 0, label %703
  ]

703:                                              ; preds = %701
  br label %254, !llvm.loop !35

704:                                              ; preds = %377, %289
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #11
  br label %732

705:                                              ; preds = %259
  %706 = load ptr, ptr %19, align 8, !tbaa !5
  %707 = icmp ne ptr %706, null
  br i1 %707, label %708, label %729

708:                                              ; preds = %705
  %709 = load ptr, ptr %38, align 8, !tbaa !5
  %710 = invoke noundef ptr @_ZN10StringUtil14skipWhitespaceEPc(ptr noundef %709)
          to label %711 unwind label %724

711:                                              ; preds = %708
  store ptr %710, ptr %38, align 8, !tbaa !5
  %712 = load ptr, ptr %38, align 8, !tbaa !5
  invoke void @_ZN10StringUtil22trimTrailingWhitespaceEPc(ptr noundef %712)
          to label %713 unwind label %724

713:                                              ; preds = %711
  %714 = load ptr, ptr %38, align 8, !tbaa !5
  %715 = getelementptr inbounds i8, ptr %714, i64 0
  %716 = load i8, ptr %715, align 1, !tbaa !17
  %717 = icmp ne i8 %716, 0
  br i1 %717, label %718, label %728

718:                                              ; preds = %713
  %719 = load ptr, ptr %38, align 8, !tbaa !5
  %720 = load ptr, ptr %19, align 8, !tbaa !5
  %721 = getelementptr inbounds %"class.GIPS::Parameter", ptr %720, i32 0, i32 1
  %722 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %721, ptr noundef %719)
          to label %723 unwind label %724

723:                                              ; preds = %718
  br label %728

724:                                              ; preds = %718, %711, %708
  %725 = landingpad { ptr, i32 }
          cleanup
  %726 = extractvalue { ptr, i32 } %725, 0
  store ptr %726, ptr %13, align 8
  %727 = extractvalue { ptr, i32 } %725, 1
  store i32 %727, ptr %14, align 4
  br label %732

728:                                              ; preds = %723, %713
  br label %729

729:                                              ; preds = %728, %705
  %730 = load ptr, ptr %37, align 8, !tbaa !5
  call void @free(ptr noundef %730) #11
  store ptr null, ptr %19, align 8, !tbaa !5
  store i32 3, ptr %31, align 4
  br label %731, !llvm.loop !46

731:                                              ; preds = %729, %701
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #11
  br label %1004

732:                                              ; preds = %724, %704
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #11
  br label %733

733:                                              ; preds = %732, %237
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #11
  br label %1008

734:                                              ; preds = %203
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #11
  %735 = invoke noundef ptr @_ZNK10StringUtil9Tokenizer5tokenEv(ptr noundef nonnull align 8 dereferenceable(52) %16)
          to label %736 unwind label %742

736:                                              ; preds = %734
  %737 = invoke noundef i32 @_ZN10StringUtil6lookupIN4GIPS9GLSLTokenEEET_PKNS_11LookupEntryIS3_EEPKc(ptr noundef @_ZN4GIPSL8tokenMapE, ptr noundef %735)
          to label %738 unwind label %742

738:                                              ; preds = %736
  store i32 %737, ptr %53, align 4, !tbaa !9
  %739 = load i32, ptr %53, align 4, !tbaa !9
  %740 = icmp eq i32 %739, -1
  br i1 %740, label %741, label %746

741:                                              ; preds = %738
  store i32 3, ptr %31, align 4
  br label %1003, !llvm.loop !46

742:                                              ; preds = %886, %882, %843, %830, %828, %826, %824, %785, %736, %734
  %743 = landingpad { ptr, i32 }
          cleanup
  %744 = extractvalue { ptr, i32 } %743, 0
  store ptr %744, ptr %13, align 8
  %745 = extractvalue { ptr, i32 } %743, 1
  store i32 %745, ptr %14, align 4
  br label %1007

746:                                              ; preds = %738
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #11
  store i32 3, ptr %54, align 4, !tbaa !11
  br label %747

747:                                              ; preds = %760, %746
  %748 = load i32, ptr %54, align 4, !tbaa !11
  %749 = icmp ne i32 %748, 0
  br i1 %749, label %751, label %750

750:                                              ; preds = %747
  store i32 13, ptr %31, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #11
  br label %763

751:                                              ; preds = %747
  %752 = load i32, ptr %54, align 4, !tbaa !11
  %753 = sub nsw i32 %752, 1
  %754 = sext i32 %753 to i64
  %755 = getelementptr inbounds [4 x i32], ptr %30, i64 0, i64 %754
  %756 = load i32, ptr %755, align 4, !tbaa !9
  %757 = load i32, ptr %54, align 4, !tbaa !11
  %758 = sext i32 %757 to i64
  %759 = getelementptr inbounds [4 x i32], ptr %30, i64 0, i64 %758
  store i32 %756, ptr %759, align 4, !tbaa !9
  br label %760

760:                                              ; preds = %751
  %761 = load i32, ptr %54, align 4, !tbaa !11
  %762 = add nsw i32 %761, -1
  store i32 %762, ptr %54, align 4, !tbaa !11
  br label %747, !llvm.loop !47

763:                                              ; preds = %750
  %764 = load i32, ptr %53, align 4, !tbaa !9
  %765 = getelementptr inbounds [4 x i32], ptr %30, i64 0, i64 0
  store i32 %764, ptr %765, align 16, !tbaa !9
  %766 = getelementptr inbounds [4 x i32], ptr %30, i64 0, i64 2
  %767 = load i32, ptr %766, align 8, !tbaa !9
  %768 = icmp eq i32 %767, 10
  br i1 %768, label %769, label %834

769:                                              ; preds = %763
  %770 = getelementptr inbounds [4 x i32], ptr %30, i64 0, i64 1
  %771 = load i32, ptr %770, align 4, !tbaa !9
  %772 = icmp eq i32 %771, 1
  br i1 %772, label %785, label %773

773:                                              ; preds = %769
  %774 = getelementptr inbounds [4 x i32], ptr %30, i64 0, i64 1
  %775 = load i32, ptr %774, align 4, !tbaa !9
  %776 = icmp eq i32 %775, 2
  br i1 %776, label %785, label %777

777:                                              ; preds = %773
  %778 = getelementptr inbounds [4 x i32], ptr %30, i64 0, i64 1
  %779 = load i32, ptr %778, align 4, !tbaa !9
  %780 = icmp eq i32 %779, 3
  br i1 %780, label %785, label %781

781:                                              ; preds = %777
  %782 = getelementptr inbounds [4 x i32], ptr %30, i64 0, i64 1
  %783 = load i32, ptr %782, align 4, !tbaa !9
  %784 = icmp eq i32 %783, 4
  br i1 %784, label %785, label %824

785:                                              ; preds = %781, %777, %773, %769
  %786 = invoke noundef nonnull align 8 dereferenceable(176) ptr @_ZNSt6vectorIN4GIPS9ParameterESaIS1_EE12emplace_backIJEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %11)
          to label %787 unwind label %742

787:                                              ; preds = %785
  %788 = call noundef nonnull align 8 dereferenceable(176) ptr @_ZNSt6vectorIN4GIPS9ParameterESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %11) #11
  store ptr %788, ptr %19, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #11
  %789 = invoke noundef ptr @_ZNK10StringUtil9Tokenizer15stringFromStartEv(ptr noundef nonnull align 8 dereferenceable(52) %16)
          to label %790 unwind label %801

790:                                              ; preds = %787
  %791 = invoke noundef i32 @_ZNK10StringUtil9Tokenizer6lengthEv(ptr noundef nonnull align 8 dereferenceable(52) %16)
          to label %792 unwind label %801

792:                                              ; preds = %790
  %793 = sext i32 %791 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %56) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EPKcmRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef %789, i64 noundef %793, ptr noundef nonnull align 1 dereferenceable(1) %56)
          to label %794 unwind label %805

794:                                              ; preds = %792
  %795 = load ptr, ptr %19, align 8, !tbaa !5
  %796 = getelementptr inbounds %"class.GIPS::Parameter", ptr %795, i32 0, i32 0
  %797 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %796, ptr noundef nonnull align 8 dereferenceable(32) %55) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #11
  %798 = getelementptr inbounds [4 x i32], ptr %30, i64 0, i64 1
  %799 = load i32, ptr %798, align 4, !tbaa !9
  store i32 %799, ptr %20, align 4, !tbaa !9
  %800 = load i32, ptr %20, align 4, !tbaa !9
  switch i32 %800, label %822 [
    i32 1, label %810
    i32 2, label %813
    i32 3, label %816
    i32 4, label %819
  ]

801:                                              ; preds = %790, %787
  %802 = landingpad { ptr, i32 }
          cleanup
  %803 = extractvalue { ptr, i32 } %802, 0
  store ptr %803, ptr %13, align 8
  %804 = extractvalue { ptr, i32 } %802, 1
  store i32 %804, ptr %14, align 4
  br label %809

805:                                              ; preds = %792
  %806 = landingpad { ptr, i32 }
          cleanup
  %807 = extractvalue { ptr, i32 } %806, 0
  store ptr %807, ptr %13, align 8
  %808 = extractvalue { ptr, i32 } %806, 1
  store i32 %808, ptr %14, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #11
  br label %809

809:                                              ; preds = %805, %801
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #11
  br label %1007

810:                                              ; preds = %794
  %811 = load ptr, ptr %19, align 8, !tbaa !5
  %812 = getelementptr inbounds %"class.GIPS::Parameter", ptr %811, i32 0, i32 3
  store i32 0, ptr %812, align 8, !tbaa !48
  br label %823

813:                                              ; preds = %794
  %814 = load ptr, ptr %19, align 8, !tbaa !5
  %815 = getelementptr inbounds %"class.GIPS::Parameter", ptr %814, i32 0, i32 3
  store i32 1, ptr %815, align 8, !tbaa !48
  br label %823

816:                                              ; preds = %794
  %817 = load ptr, ptr %19, align 8, !tbaa !5
  %818 = getelementptr inbounds %"class.GIPS::Parameter", ptr %817, i32 0, i32 3
  store i32 2, ptr %818, align 8, !tbaa !48
  br label %823

819:                                              ; preds = %794
  %820 = load ptr, ptr %19, align 8, !tbaa !5
  %821 = getelementptr inbounds %"class.GIPS::Parameter", ptr %820, i32 0, i32 3
  store i32 3, ptr %821, align 8, !tbaa !48
  br label %823

822:                                              ; preds = %794
  br label %823

823:                                              ; preds = %822, %819, %816, %813, %810
  store i32 -1, ptr %21, align 4, !tbaa !11
  store i8 1, ptr %22, align 1, !tbaa !13
  br label %833

824:                                              ; preds = %781
  %825 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.60)
          to label %826 unwind label %742

826:                                              ; preds = %824
  %827 = invoke noundef ptr @_ZNK10StringUtil9Tokenizer5tokenEv(ptr noundef nonnull align 8 dereferenceable(52) %16)
          to label %828 unwind label %742

828:                                              ; preds = %826
  %829 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %825, ptr noundef %827)
          to label %830 unwind label %742

830:                                              ; preds = %828
  %831 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %829, ptr noundef @.str.61)
          to label %832 unwind label %742

832:                                              ; preds = %830
  store i8 0, ptr %22, align 1, !tbaa !13
  br label %833

833:                                              ; preds = %832, %823
  store i32 3, ptr %31, align 4
  br label %1003, !llvm.loop !46

834:                                              ; preds = %763
  %835 = load ptr, ptr %19, align 8, !tbaa !5
  %836 = icmp ne ptr %835, null
  br i1 %836, label %837, label %847

837:                                              ; preds = %834
  %838 = load i8, ptr %22, align 1, !tbaa !13, !range !33, !noundef !34
  %839 = trunc i8 %838 to i1
  br i1 %839, label %840, label %847

840:                                              ; preds = %837
  %841 = load i32, ptr %21, align 4, !tbaa !11
  %842 = icmp slt i32 %841, 0
  br i1 %842, label %843, label %847

843:                                              ; preds = %840
  %844 = invoke noundef zeroext i1 @_ZNK10StringUtil9Tokenizer8containsEc(ptr noundef nonnull align 8 dereferenceable(52) %16, i8 noundef signext 61)
          to label %845 unwind label %742

845:                                              ; preds = %843
  br i1 %844, label %846, label %847

846:                                              ; preds = %845
  store i32 0, ptr %21, align 4, !tbaa !11
  store i32 3, ptr %31, align 4
  br label %1003, !llvm.loop !46

847:                                              ; preds = %845, %840, %837, %834
  %848 = load ptr, ptr %19, align 8, !tbaa !5
  %849 = icmp ne ptr %848, null
  br i1 %849, label %850, label %882

850:                                              ; preds = %847
  %851 = load i8, ptr %22, align 1, !tbaa !13, !range !33, !noundef !34
  %852 = trunc i8 %851 to i1
  br i1 %852, label %853, label %882

853:                                              ; preds = %850
  %854 = load i32, ptr %21, align 4, !tbaa !11
  %855 = icmp sge i32 %854, 0
  br i1 %855, label %856, label %882

856:                                              ; preds = %853
  %857 = load i32, ptr %21, align 4, !tbaa !11
  %858 = icmp slt i32 %857, 4
  br i1 %858, label %859, label %882

859:                                              ; preds = %856
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #11
  store ptr null, ptr %57, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #11
  %860 = invoke noundef ptr @_ZNK10StringUtil9Tokenizer5tokenEv(ptr noundef nonnull align 8 dereferenceable(52) %16)
          to label %861 unwind label %877

861:                                              ; preds = %859
  %862 = call float @strtof(ptr noundef %860, ptr noundef %57) #11
  store float %862, ptr %58, align 4, !tbaa !39
  %863 = load ptr, ptr %57, align 8, !tbaa !5
  %864 = icmp ne ptr %863, null
  br i1 %864, label %865, label %881

865:                                              ; preds = %861
  %866 = load ptr, ptr %57, align 8, !tbaa !5
  %867 = load i8, ptr %866, align 1, !tbaa !17
  %868 = icmp ne i8 %867, 0
  br i1 %868, label %881, label %869

869:                                              ; preds = %865
  %870 = load float, ptr %58, align 4, !tbaa !39
  %871 = load ptr, ptr %19, align 8, !tbaa !5
  %872 = getelementptr inbounds %"class.GIPS::Parameter", ptr %871, i32 0, i32 9
  %873 = load i32, ptr %21, align 4, !tbaa !11
  %874 = add nsw i32 %873, 1
  store i32 %874, ptr %21, align 4, !tbaa !11
  %875 = sext i32 %873 to i64
  %876 = getelementptr inbounds [4 x float], ptr %872, i64 0, i64 %875
  store float %870, ptr %876, align 4, !tbaa !39
  br label %881

877:                                              ; preds = %859
  %878 = landingpad { ptr, i32 }
          cleanup
  %879 = extractvalue { ptr, i32 } %878, 0
  store ptr %879, ptr %13, align 8
  %880 = extractvalue { ptr, i32 } %878, 1
  store i32 %880, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #11
  br label %1007

881:                                              ; preds = %869, %865, %861
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #11
  br label %882

882:                                              ; preds = %881, %856, %853, %850, %847
  %883 = invoke noundef zeroext i1 @_ZNK10StringUtil9Tokenizer8containsEc(ptr noundef nonnull align 8 dereferenceable(52) %16, i8 noundef signext 59)
          to label %884 unwind label %742

884:                                              ; preds = %882
  br i1 %883, label %885, label %886

885:                                              ; preds = %884
  store i8 0, ptr %22, align 1, !tbaa !13
  store i32 3, ptr %31, align 4
  br label %1003, !llvm.loop !46

886:                                              ; preds = %884
  %887 = invoke noundef ptr @_ZNK10StringUtil9Tokenizer5tokenEv(ptr noundef nonnull align 8 dereferenceable(52) %16)
          to label %888 unwind label %742

888:                                              ; preds = %886
  %889 = getelementptr inbounds i8, ptr %887, i64 0
  %890 = load i8, ptr %889, align 1, !tbaa !17
  %891 = sext i8 %890 to i32
  %892 = call i32 @isalpha(i32 noundef %891) #12
  %893 = icmp ne i32 %892, 0
  br i1 %893, label %894, label %898

894:                                              ; preds = %888
  %895 = load i8, ptr %22, align 1, !tbaa !13, !range !33, !noundef !34
  %896 = trunc i8 %895 to i1
  br i1 %896, label %898, label %897

897:                                              ; preds = %894
  store ptr null, ptr %19, align 8, !tbaa !5
  br label %898

898:                                              ; preds = %897, %894, %888
  %899 = getelementptr inbounds [4 x i32], ptr %30, i64 0, i64 3
  %900 = load i32, ptr %899, align 4, !tbaa !9
  %901 = icmp eq i32 %900, 3
  br i1 %901, label %906, label %902

902:                                              ; preds = %898
  %903 = getelementptr inbounds [4 x i32], ptr %30, i64 0, i64 3
  %904 = load i32, ptr %903, align 4, !tbaa !9
  %905 = icmp eq i32 %904, 4
  br i1 %905, label %906, label %1002

906:                                              ; preds = %902, %898
  %907 = getelementptr inbounds [4 x i32], ptr %30, i64 0, i64 2
  %908 = load i32, ptr %907, align 8, !tbaa !9
  %909 = icmp eq i32 %908, 99
  br i1 %909, label %926, label %910

910:                                              ; preds = %906
  %911 = getelementptr inbounds [4 x i32], ptr %30, i64 0, i64 2
  %912 = load i32, ptr %911, align 8, !tbaa !9
  %913 = icmp eq i32 %912, 100
  br i1 %913, label %926, label %914

914:                                              ; preds = %910
  %915 = getelementptr inbounds [4 x i32], ptr %30, i64 0, i64 2
  %916 = load i32, ptr %915, align 8, !tbaa !9
  %917 = icmp eq i32 %916, 200
  br i1 %917, label %926, label %918

918:                                              ; preds = %914
  %919 = getelementptr inbounds [4 x i32], ptr %30, i64 0, i64 2
  %920 = load i32, ptr %919, align 8, !tbaa !9
  %921 = icmp eq i32 %920, 300
  br i1 %921, label %926, label %922

922:                                              ; preds = %918
  %923 = getelementptr inbounds [4 x i32], ptr %30, i64 0, i64 2
  %924 = load i32, ptr %923, align 8, !tbaa !9
  %925 = icmp eq i32 %924, 400
  br i1 %925, label %926, label %1002

926:                                              ; preds = %922, %918, %914, %910, %906
  %927 = getelementptr inbounds [4 x i32], ptr %30, i64 0, i64 1
  %928 = load i32, ptr %927, align 4, !tbaa !9
  %929 = icmp eq i32 %928, 90
  br i1 %929, label %930, label %1002

930:                                              ; preds = %926
  %931 = getelementptr inbounds [4 x i32], ptr %30, i64 0, i64 0
  %932 = load i32, ptr %931, align 16, !tbaa !9
  %933 = icmp eq i32 %932, 2
  br i1 %933, label %942, label %934

934:                                              ; preds = %930
  %935 = getelementptr inbounds [4 x i32], ptr %30, i64 0, i64 0
  %936 = load i32, ptr %935, align 16, !tbaa !9
  %937 = icmp eq i32 %936, 3
  br i1 %937, label %942, label %938

938:                                              ; preds = %934
  %939 = getelementptr inbounds [4 x i32], ptr %30, i64 0, i64 0
  %940 = load i32, ptr %939, align 16, !tbaa !9
  %941 = icmp eq i32 %940, 4
  br i1 %941, label %942, label %1002

942:                                              ; preds = %938, %934, %930
  %943 = getelementptr inbounds [4 x i32], ptr %30, i64 0, i64 2
  %944 = load i32, ptr %943, align 8, !tbaa !9
  switch i32 %944, label %950 [
    i32 99, label %945
    i32 100, label %946
    i32 200, label %947
    i32 300, label %948
    i32 400, label %949
  ]

945:                                              ; preds = %942
  store i32 0, ptr %23, align 4, !tbaa !11
  store i8 1, ptr %25, align 1, !tbaa !13
  br label %951

946:                                              ; preds = %942
  store i32 0, ptr %23, align 4, !tbaa !11
  store i8 0, ptr %25, align 1, !tbaa !13
  br label %951

947:                                              ; preds = %942
  store i32 1, ptr %23, align 4, !tbaa !11
  br label %951

948:                                              ; preds = %942
  store i32 2, ptr %23, align 4, !tbaa !11
  br label %951

949:                                              ; preds = %942
  store i32 3, ptr %23, align 4, !tbaa !11
  br label %951

950:                                              ; preds = %942
  call void @__assert_fail(ptr noundef @.str.50, ptr noundef @.str.62, i32 noundef 335, ptr noundef @__PRETTY_FUNCTION__._ZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintE) #13
  unreachable

951:                                              ; preds = %949, %948, %947, %946, %945
  %952 = load i32, ptr %23, align 4, !tbaa !11
  %953 = shl i32 1, %952
  %954 = load i32, ptr %24, align 4, !tbaa !11
  %955 = or i32 %954, %953
  store i32 %955, ptr %24, align 4, !tbaa !11
  %956 = load i32, ptr %23, align 4, !tbaa !11
  %957 = icmp sge i32 %956, 4
  br i1 %957, label %958, label %959

958:                                              ; preds = %951
  store i32 3, ptr %31, align 4
  br label %1003, !llvm.loop !46

959:                                              ; preds = %951
  %960 = getelementptr inbounds [4 x i32], ptr %30, i64 0, i64 0
  %961 = load i32, ptr %960, align 16, !tbaa !9
  switch i32 %961, label %974 [
    i32 2, label %962
    i32 3, label %966
    i32 4, label %970
  ]

962:                                              ; preds = %959
  %963 = load i32, ptr %23, align 4, !tbaa !11
  %964 = sext i32 %963 to i64
  %965 = getelementptr inbounds [4 x i32], ptr %26, i64 0, i64 %964
  store i32 0, ptr %965, align 4, !tbaa !49
  br label %975

966:                                              ; preds = %959
  %967 = load i32, ptr %23, align 4, !tbaa !11
  %968 = sext i32 %967 to i64
  %969 = getelementptr inbounds [4 x i32], ptr %26, i64 0, i64 %968
  store i32 1, ptr %969, align 4, !tbaa !49
  br label %975

970:                                              ; preds = %959
  %971 = load i32, ptr %23, align 4, !tbaa !11
  %972 = sext i32 %971 to i64
  %973 = getelementptr inbounds [4 x i32], ptr %26, i64 0, i64 %972
  store i32 2, ptr %973, align 4, !tbaa !49
  br label %975

974:                                              ; preds = %959
  call void @__assert_fail(ptr noundef @.str.50, ptr noundef @.str.62, i32 noundef 343, ptr noundef @__PRETTY_FUNCTION__._ZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintE) #13
  unreachable

975:                                              ; preds = %970, %966, %962
  %976 = getelementptr inbounds [4 x i32], ptr %30, i64 0, i64 3
  %977 = load i32, ptr %976, align 4, !tbaa !9
  switch i32 %977, label %986 [
    i32 3, label %978
    i32 4, label %982
  ]

978:                                              ; preds = %975
  %979 = load i32, ptr %23, align 4, !tbaa !11
  %980 = sext i32 %979 to i64
  %981 = getelementptr inbounds [4 x i32], ptr %27, i64 0, i64 %980
  store i32 0, ptr %981, align 4, !tbaa !51
  br label %987

982:                                              ; preds = %975
  %983 = load i32, ptr %23, align 4, !tbaa !11
  %984 = sext i32 %983 to i64
  %985 = getelementptr inbounds [4 x i32], ptr %27, i64 0, i64 %984
  store i32 1, ptr %985, align 4, !tbaa !51
  br label %987

986:                                              ; preds = %975
  call void @__assert_fail(ptr noundef @.str.50, ptr noundef @.str.62, i32 noundef 348, ptr noundef @__PRETTY_FUNCTION__._ZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintE) #13
  unreachable

987:                                              ; preds = %982, %978
  %988 = load i8, ptr %28, align 1, !tbaa !13, !range !33, !noundef !34
  %989 = trunc i8 %988 to i1
  %990 = getelementptr inbounds %"class.GIPS::Node", ptr %95, i32 0, i32 5
  %991 = load i32, ptr %23, align 4, !tbaa !11
  %992 = sext i32 %991 to i64
  %993 = getelementptr inbounds [4 x %"struct.GIPS::Node::PassData"], ptr %990, i64 0, i64 %992
  %994 = getelementptr inbounds %"struct.GIPS::Node::PassData", ptr %993, i32 0, i32 0
  %995 = zext i1 %989 to i8
  store i8 %995, ptr %994, align 8, !tbaa !53
  %996 = load i32, ptr %29, align 4, !tbaa !15
  %997 = getelementptr inbounds %"class.GIPS::Node", ptr %95, i32 0, i32 5
  %998 = load i32, ptr %23, align 4, !tbaa !11
  %999 = sext i32 %998 to i64
  %1000 = getelementptr inbounds [4 x %"struct.GIPS::Node::PassData"], ptr %997, i64 0, i64 %999
  %1001 = getelementptr inbounds %"struct.GIPS::Node::PassData", ptr %1000, i32 0, i32 1
  store i32 %996, ptr %1001, align 4, !tbaa !56
  store i32 3, ptr %31, align 4
  br label %1003, !llvm.loop !46

1002:                                             ; preds = %938, %926, %922, %902
  store i32 0, ptr %31, align 4
  br label %1003

1003:                                             ; preds = %1002, %987, %958, %885, %846, %833, %741
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #11
  br label %1004

1004:                                             ; preds = %1003, %731
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #11
  %1005 = load i32, ptr %31, align 4
  switch i32 %1005, label %1472 [
    i32 0, label %1006
    i32 3, label %191
    i32 2, label %1457
  ]

1006:                                             ; preds = %1004
  br label %191, !llvm.loop !46

1007:                                             ; preds = %877, %809, %742
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #11
  br label %1008

1008:                                             ; preds = %1007, %733, %216
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #11
  br label %1009

1009:                                             ; preds = %1008, %212
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #11
  br label %1474

1010:                                             ; preds = %193
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #11
  store ptr %11, ptr %59, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #11
  %1011 = load ptr, ptr %59, align 8, !tbaa !5
  %1012 = call ptr @_ZNSt6vectorIN4GIPS9ParameterESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1011) #11
  %1013 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %60, i32 0, i32 0
  store ptr %1012, ptr %1013, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #11
  %1014 = load ptr, ptr %59, align 8, !tbaa !5
  %1015 = call ptr @_ZNSt6vectorIN4GIPS9ParameterESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1014) #11
  %1016 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %61, i32 0, i32 0
  store ptr %1015, ptr %1016, align 8
  br label %1017

1017:                                             ; preds = %1170, %1010
  %1018 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN4GIPS9ParameterESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %60, ptr noundef nonnull align 8 dereferenceable(8) %61) #11
  br i1 %1018, label %1020, label %1019

1019:                                             ; preds = %1017
  store i32 20, ptr %31, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #11
  br label %1175

1020:                                             ; preds = %1017
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #11
  %1021 = call noundef nonnull align 8 dereferenceable(176) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN4GIPS9ParameterESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %60) #11
  store ptr %1021, ptr %62, align 8, !tbaa !5
  %1022 = load ptr, ptr %62, align 8, !tbaa !5
  %1023 = getelementptr inbounds %"class.GIPS::Parameter", ptr %1022, i32 0, i32 4
  %1024 = load i32, ptr %1023, align 4, !tbaa !45
  %1025 = icmp slt i32 %1024, 0
  br i1 %1025, label %1026, label %1068

1026:                                             ; preds = %1020
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #11
  %1027 = load ptr, ptr %62, align 8, !tbaa !5
  %1028 = getelementptr inbounds %"class.GIPS::Parameter", ptr %1027, i32 0, i32 5
  %1029 = load float, ptr %1028, align 8, !tbaa !41
  %1030 = invoke noundef float @_ZSt3absf(float noundef %1029)
          to label %1031 unwind label %1054

1031:                                             ; preds = %1026
  store float %1030, ptr %64, align 4, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #11
  %1032 = load ptr, ptr %62, align 8, !tbaa !5
  %1033 = getelementptr inbounds %"class.GIPS::Parameter", ptr %1032, i32 0, i32 6
  %1034 = load float, ptr %1033, align 4, !tbaa !44
  %1035 = invoke noundef float @_ZSt3absf(float noundef %1034)
          to label %1036 unwind label %1058

1036:                                             ; preds = %1031
  store float %1035, ptr %65, align 4, !tbaa !39
  %1037 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIfERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %64, ptr noundef nonnull align 4 dereferenceable(4) %65)
          to label %1038 unwind label %1058

1038:                                             ; preds = %1036
  %1039 = load float, ptr %1037, align 4, !tbaa !39
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #11
  store float %1039, ptr %63, align 4, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #11
  store i32 0, ptr %66, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #11
  store float 0x3EB0C6F7A0000000, ptr %68, align 4, !tbaa !39
  %1040 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIfERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %63, ptr noundef nonnull align 4 dereferenceable(4) %68)
          to label %1041 unwind label %1063

1041:                                             ; preds = %1038
  %1042 = load float, ptr %1040, align 4, !tbaa !39
  %1043 = invoke noundef float @_ZSt5log10f(float noundef %1042)
          to label %1044 unwind label %1063

1044:                                             ; preds = %1041
  %1045 = invoke noundef float @_ZSt5floorf(float noundef %1043)
          to label %1046 unwind label %1063

1046:                                             ; preds = %1044
  %1047 = fptosi float %1045 to i32
  %1048 = sub nsw i32 2, %1047
  store i32 %1048, ptr %67, align 4, !tbaa !11
  %1049 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %66, ptr noundef nonnull align 4 dereferenceable(4) %67)
          to label %1050 unwind label %1063

1050:                                             ; preds = %1046
  %1051 = load i32, ptr %1049, align 4, !tbaa !11
  %1052 = load ptr, ptr %62, align 8, !tbaa !5
  %1053 = getelementptr inbounds %"class.GIPS::Parameter", ptr %1052, i32 0, i32 4
  store i32 %1051, ptr %1053, align 4, !tbaa !45
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #11
  br label %1068

1054:                                             ; preds = %1026
  %1055 = landingpad { ptr, i32 }
          cleanup
  %1056 = extractvalue { ptr, i32 } %1055, 0
  store ptr %1056, ptr %13, align 8
  %1057 = extractvalue { ptr, i32 } %1055, 1
  store i32 %1057, ptr %14, align 4
  br label %1062

1058:                                             ; preds = %1036, %1031
  %1059 = landingpad { ptr, i32 }
          cleanup
  %1060 = extractvalue { ptr, i32 } %1059, 0
  store ptr %1060, ptr %13, align 8
  %1061 = extractvalue { ptr, i32 } %1059, 1
  store i32 %1061, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #11
  br label %1062

1062:                                             ; preds = %1058, %1054
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #11
  br label %1067

1063:                                             ; preds = %1046, %1044, %1041, %1038
  %1064 = landingpad { ptr, i32 }
          cleanup
  %1065 = extractvalue { ptr, i32 } %1064, 0
  store ptr %1065, ptr %13, align 8
  %1066 = extractvalue { ptr, i32 } %1064, 1
  store i32 %1066, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #11
  br label %1067

1067:                                             ; preds = %1063, %1062
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #11
  br label %1174

1068:                                             ; preds = %1050, %1020
  call void @llvm.lifetime.start.p0(i64 32, ptr %69) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %70) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %71) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %72) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef @.str.63, ptr noundef nonnull align 1 dereferenceable(1) %72)
          to label %1069 unwind label %1084

1069:                                             ; preds = %1068
  call void @llvm.lifetime.start.p0(i64 32, ptr %73) #11
  %1070 = load ptr, ptr %62, align 8, !tbaa !5
  %1071 = getelementptr inbounds %"class.GIPS::Parameter", ptr %1070, i32 0, i32 4
  %1072 = load i32, ptr %1071, align 4, !tbaa !45
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %73, i32 noundef %1072) #11
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %70, ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef nonnull align 8 dereferenceable(32) %73)
          to label %1073 unwind label %1088

1073:                                             ; preds = %1069
  call void @llvm.lifetime.start.p0(i64 32, ptr %74) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %75) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef @.str.64, ptr noundef nonnull align 1 dereferenceable(1) %75)
          to label %1074 unwind label %1092

1074:                                             ; preds = %1073
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %69, ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 8 dereferenceable(32) %74)
          to label %1075 unwind label %1096

1075:                                             ; preds = %1074
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %72) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #11
  %1076 = load ptr, ptr %62, align 8, !tbaa !5
  %1077 = getelementptr inbounds %"class.GIPS::Parameter", ptr %1076, i32 0, i32 2
  %1078 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %1077) #11
  br i1 %1078, label %1079, label %1107

1079:                                             ; preds = %1075
  %1080 = load ptr, ptr %62, align 8, !tbaa !5
  %1081 = getelementptr inbounds %"class.GIPS::Parameter", ptr %1080, i32 0, i32 2
  %1082 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %1081, ptr noundef nonnull align 8 dereferenceable(32) %69)
          to label %1083 unwind label %1103

1083:                                             ; preds = %1079
  br label %1130

1084:                                             ; preds = %1068
  %1085 = landingpad { ptr, i32 }
          cleanup
  %1086 = extractvalue { ptr, i32 } %1085, 0
  store ptr %1086, ptr %13, align 8
  %1087 = extractvalue { ptr, i32 } %1085, 1
  store i32 %1087, ptr %14, align 4
  br label %1102

1088:                                             ; preds = %1069
  %1089 = landingpad { ptr, i32 }
          cleanup
  %1090 = extractvalue { ptr, i32 } %1089, 0
  store ptr %1090, ptr %13, align 8
  %1091 = extractvalue { ptr, i32 } %1089, 1
  store i32 %1091, ptr %14, align 4
  br label %1101

1092:                                             ; preds = %1073
  %1093 = landingpad { ptr, i32 }
          cleanup
  %1094 = extractvalue { ptr, i32 } %1093, 0
  store ptr %1094, ptr %13, align 8
  %1095 = extractvalue { ptr, i32 } %1093, 1
  store i32 %1095, ptr %14, align 4
  br label %1100

1096:                                             ; preds = %1074
  %1097 = landingpad { ptr, i32 }
          cleanup
  %1098 = extractvalue { ptr, i32 } %1097, 0
  store ptr %1098, ptr %13, align 8
  %1099 = extractvalue { ptr, i32 } %1097, 1
  store i32 %1099, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #11
  br label %1100

1100:                                             ; preds = %1096, %1092
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #11
  br label %1101

1101:                                             ; preds = %1100, %1088
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #11
  br label %1102

1102:                                             ; preds = %1101, %1084
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %72) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #11
  br label %1173

1103:                                             ; preds = %1079
  %1104 = landingpad { ptr, i32 }
          cleanup
  %1105 = extractvalue { ptr, i32 } %1104, 0
  store ptr %1105, ptr %13, align 8
  %1106 = extractvalue { ptr, i32 } %1104, 1
  store i32 %1106, ptr %14, align 4
  br label %1172

1107:                                             ; preds = %1075
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %77) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %79) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef @.str.65, ptr noundef nonnull align 1 dereferenceable(1) %79)
          to label %1108 unwind label %1116

1108:                                             ; preds = %1107
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %77, ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 8 dereferenceable(32) %78)
          to label %1109 unwind label %1120

1109:                                             ; preds = %1108
  %1110 = load ptr, ptr %62, align 8, !tbaa !5
  %1111 = getelementptr inbounds %"class.GIPS::Parameter", ptr %1110, i32 0, i32 2
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %76, ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull align 8 dereferenceable(32) %1111)
          to label %1112 unwind label %1124

1112:                                             ; preds = %1109
  %1113 = load ptr, ptr %62, align 8, !tbaa !5
  %1114 = getelementptr inbounds %"class.GIPS::Parameter", ptr %1113, i32 0, i32 2
  %1115 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %1114, ptr noundef nonnull align 8 dereferenceable(32) %76) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #11
  br label %1130

1116:                                             ; preds = %1107
  %1117 = landingpad { ptr, i32 }
          cleanup
  %1118 = extractvalue { ptr, i32 } %1117, 0
  store ptr %1118, ptr %13, align 8
  %1119 = extractvalue { ptr, i32 } %1117, 1
  store i32 %1119, ptr %14, align 4
  br label %1129

1120:                                             ; preds = %1108
  %1121 = landingpad { ptr, i32 }
          cleanup
  %1122 = extractvalue { ptr, i32 } %1121, 0
  store ptr %1122, ptr %13, align 8
  %1123 = extractvalue { ptr, i32 } %1121, 1
  store i32 %1123, ptr %14, align 4
  br label %1128

1124:                                             ; preds = %1109
  %1125 = landingpad { ptr, i32 }
          cleanup
  %1126 = extractvalue { ptr, i32 } %1125, 0
  store ptr %1126, ptr %13, align 8
  %1127 = extractvalue { ptr, i32 } %1125, 1
  store i32 %1127, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #11
  br label %1128

1128:                                             ; preds = %1124, %1120
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #11
  br label %1129

1129:                                             ; preds = %1128, %1116
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #11
  br label %1172

1130:                                             ; preds = %1112, %1083
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #11
  %1131 = load ptr, ptr %62, align 8, !tbaa !5
  %1132 = invoke noundef ptr @_ZNK4GIPS9Parameter4nameEv(ptr noundef nonnull align 8 dereferenceable(176) %1131)
          to label %1133 unwind label %1151

1133:                                             ; preds = %1130
  %1134 = invoke noundef ptr @_ZN4GIPS4Node9findParamEPKc(ptr noundef nonnull align 8 dereferenceable(348) %95, ptr noundef %1132)
          to label %1135 unwind label %1151

1135:                                             ; preds = %1133
  store ptr %1134, ptr %80, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #11
  %1136 = load ptr, ptr %80, align 8, !tbaa !5
  %1137 = icmp ne ptr %1136, null
  br i1 %1137, label %1138, label %1141

1138:                                             ; preds = %1135
  %1139 = load ptr, ptr %80, align 8, !tbaa !5
  %1140 = getelementptr inbounds %"class.GIPS::Parameter", ptr %1139, i32 0, i32 7
  br label %1144

1141:                                             ; preds = %1135
  %1142 = load ptr, ptr %62, align 8, !tbaa !5
  %1143 = getelementptr inbounds %"class.GIPS::Parameter", ptr %1142, i32 0, i32 9
  br label %1144

1144:                                             ; preds = %1141, %1138
  %1145 = phi ptr [ %1140, %1138 ], [ %1143, %1141 ]
  %1146 = getelementptr inbounds [4 x float], ptr %1145, i64 0, i64 0
  store ptr %1146, ptr %81, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #11
  store i32 0, ptr %82, align 4, !tbaa !11
  br label %1147

1147:                                             ; preds = %1166, %1144
  %1148 = load i32, ptr %82, align 4, !tbaa !11
  %1149 = icmp slt i32 %1148, 4
  br i1 %1149, label %1155, label %1150

1150:                                             ; preds = %1147
  store i32 22, ptr %31, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #11
  br label %1169

1151:                                             ; preds = %1133, %1130
  %1152 = landingpad { ptr, i32 }
          cleanup
  %1153 = extractvalue { ptr, i32 } %1152, 0
  store ptr %1153, ptr %13, align 8
  %1154 = extractvalue { ptr, i32 } %1152, 1
  store i32 %1154, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #11
  br label %1172

1155:                                             ; preds = %1147
  %1156 = load ptr, ptr %81, align 8, !tbaa !5
  %1157 = load i32, ptr %82, align 4, !tbaa !11
  %1158 = sext i32 %1157 to i64
  %1159 = getelementptr inbounds float, ptr %1156, i64 %1158
  %1160 = load float, ptr %1159, align 4, !tbaa !39
  %1161 = load ptr, ptr %62, align 8, !tbaa !5
  %1162 = getelementptr inbounds %"class.GIPS::Parameter", ptr %1161, i32 0, i32 7
  %1163 = load i32, ptr %82, align 4, !tbaa !11
  %1164 = sext i32 %1163 to i64
  %1165 = getelementptr inbounds [4 x float], ptr %1162, i64 0, i64 %1164
  store float %1160, ptr %1165, align 4, !tbaa !39
  br label %1166

1166:                                             ; preds = %1155
  %1167 = load i32, ptr %82, align 4, !tbaa !11
  %1168 = add nsw i32 %1167, 1
  store i32 %1168, ptr %82, align 4, !tbaa !11
  br label %1147, !llvm.loop !57

1169:                                             ; preds = %1150
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #11
  br label %1170

1170:                                             ; preds = %1169
  %1171 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN4GIPS9ParameterESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %60) #11
  br label %1017

1172:                                             ; preds = %1151, %1129, %1103
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #11
  br label %1173

1173:                                             ; preds = %1172, %1102
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #11
  br label %1174

1174:                                             ; preds = %1173, %1067
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #11
  br label %1474

1175:                                             ; preds = %1019
  %1176 = load i32, ptr %24, align 4, !tbaa !11
  %1177 = and i32 %1176, 1
  %1178 = icmp ne i32 %1177, 0
  br i1 %1178, label %1182, label %1179

1179:                                             ; preds = %1175
  %1180 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.66)
          to label %1181 unwind label %133

1181:                                             ; preds = %1179
  br label %1457

1182:                                             ; preds = %1175
  store i32 0, ptr %23, align 4, !tbaa !11
  br label %1183

1183:                                             ; preds = %1444, %1182
  %1184 = load i32, ptr %23, align 4, !tbaa !11
  %1185 = icmp slt i32 %1184, 4
  br i1 %1185, label %1186, label %1192

1186:                                             ; preds = %1183
  %1187 = load i32, ptr %24, align 4, !tbaa !11
  %1188 = load i32, ptr %23, align 4, !tbaa !11
  %1189 = ashr i32 %1187, %1188
  %1190 = and i32 %1189, 1
  %1191 = icmp ne i32 %1190, 0
  br label %1192

1192:                                             ; preds = %1186, %1183
  %1193 = phi i1 [ false, %1183 ], [ %1191, %1186 ]
  br i1 %1193, label %1194, label %1448

1194:                                             ; preds = %1192
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #11
  %1195 = getelementptr inbounds %"class.GIPS::Node", ptr %95, i32 0, i32 5
  %1196 = load i32, ptr %23, align 4, !tbaa !11
  %1197 = sext i32 %1196 to i64
  %1198 = getelementptr inbounds [4 x %"struct.GIPS::Node::PassData"], ptr %1195, i64 0, i64 %1197
  store ptr %1198, ptr %83, align 8, !tbaa !5
  %1199 = load i32, ptr %23, align 4, !tbaa !11
  %1200 = shl i32 1, %1199
  %1201 = xor i32 %1200, -1
  %1202 = load i32, ptr %24, align 4, !tbaa !11
  %1203 = and i32 %1202, %1201
  store i32 %1203, ptr %24, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #11
  %1204 = load i32, ptr %23, align 4, !tbaa !11
  %1205 = sext i32 %1204 to i64
  %1206 = getelementptr inbounds [4 x i32], ptr %26, i64 0, i64 %1205
  %1207 = load i32, ptr %1206, align 4, !tbaa !49
  store i32 %1207, ptr %84, align 4, !tbaa !49
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #11
  %1208 = load i32, ptr %23, align 4, !tbaa !11
  %1209 = sext i32 %1208 to i64
  %1210 = getelementptr inbounds [4 x i32], ptr %27, i64 0, i64 %1209
  %1211 = load i32, ptr %1210, align 4, !tbaa !51
  store i32 %1211, ptr %85, align 4, !tbaa !51
  %1212 = load i32, ptr %84, align 4, !tbaa !49
  %1213 = icmp ne i32 %1212, 0
  br i1 %1213, label %1214, label %1217

1214:                                             ; preds = %1194
  %1215 = load ptr, ptr %83, align 8, !tbaa !5
  %1216 = getelementptr inbounds %"struct.GIPS::Node::PassData", ptr %1215, i32 0, i32 1
  store i32 0, ptr %1216, align 4, !tbaa !56
  br label %1217

1217:                                             ; preds = %1214, %1194
  call void @llvm.lifetime.start.p0(i64 32, ptr %86) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %87) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef @.str.67, ptr noundef nonnull align 1 dereferenceable(1) %87)
          to label %1218 unwind label %1232

1218:                                             ; preds = %1217
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(112) %12, ptr noundef nonnull align 8 dereferenceable(32) %86)
          to label %1219 unwind label %1236

1219:                                             ; preds = %1218
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %87) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #11
  %1220 = load ptr, ptr %12, align 8, !tbaa !58
  %1221 = getelementptr i8, ptr %1220, i64 -24
  %1222 = load i64, ptr %1221, align 8
  %1223 = getelementptr inbounds i8, ptr %12, i64 %1222
  invoke void @_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate(ptr noundef nonnull align 8 dereferenceable(264) %1223, i32 noundef 0)
          to label %1224 unwind label %1241

1224:                                             ; preds = %1219
  %1225 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef @.str.68)
          to label %1226 unwind label %1241

1226:                                             ; preds = %1224
  %1227 = load i32, ptr %84, align 4, !tbaa !49
  %1228 = icmp eq i32 %1227, 0
  br i1 %1228, label %1229, label %1245

1229:                                             ; preds = %1226
  %1230 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef @.str.69)
          to label %1231 unwind label %1241

1231:                                             ; preds = %1229
  br label %1245

1232:                                             ; preds = %1217
  %1233 = landingpad { ptr, i32 }
          cleanup
  %1234 = extractvalue { ptr, i32 } %1233, 0
  store ptr %1234, ptr %13, align 8
  %1235 = extractvalue { ptr, i32 } %1233, 1
  store i32 %1235, ptr %14, align 4
  br label %1240

1236:                                             ; preds = %1218
  %1237 = landingpad { ptr, i32 }
          cleanup
  %1238 = extractvalue { ptr, i32 } %1237, 0
  store ptr %1238, ptr %13, align 8
  %1239 = extractvalue { ptr, i32 } %1237, 1
  store i32 %1239, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #11
  br label %1240

1240:                                             ; preds = %1236, %1232
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %87) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #11
  br label %1447

1241:                                             ; preds = %1438, %1436, %1399, %1389, %1386, %1385, %1381, %1379, %1376, %1371, %1370, %1367, %1365, %1362, %1358, %1356, %1354, %1348, %1336, %1324, %1322, %1320, %1317, %1311, %1307, %1304, %1295, %1292, %1289, %1282, %1280, %1272, %1269, %1264, %1261, %1256, %1253, %1251, %1247, %1245, %1229, %1224, %1219
  %1242 = landingpad { ptr, i32 }
          cleanup
  %1243 = extractvalue { ptr, i32 } %1242, 0
  store ptr %1243, ptr %13, align 8
  %1244 = extractvalue { ptr, i32 } %1242, 1
  store i32 %1244, ptr %14, align 4
  br label %1447

1245:                                             ; preds = %1231, %1226
  %1246 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef @.str.70)
          to label %1247 unwind label %1241

1247:                                             ; preds = %1245
  %1248 = load i32, ptr %23, align 4, !tbaa !11
  %1249 = add nsw i32 %1248, 1
  %1250 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1246, i32 noundef %1249)
          to label %1251 unwind label %1241

1251:                                             ; preds = %1247
  %1252 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1250, ptr noundef @.str.5)
          to label %1253 unwind label %1241

1253:                                             ; preds = %1251
  %1254 = load ptr, ptr %10, align 8, !tbaa !5
  %1255 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1252, ptr noundef %1254)
          to label %1256 unwind label %1241

1256:                                             ; preds = %1253
  %1257 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef @.str.71)
          to label %1258 unwind label %1241

1258:                                             ; preds = %1256
  %1259 = load i32, ptr %84, align 4, !tbaa !49
  %1260 = icmp ne i32 %1259, 0
  br i1 %1260, label %1261, label %1264

1261:                                             ; preds = %1258
  %1262 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef @.str.72)
          to label %1263 unwind label %1241

1263:                                             ; preds = %1261
  br label %1264

1264:                                             ; preds = %1263, %1258
  %1265 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef @.str.73)
          to label %1266 unwind label %1241

1266:                                             ; preds = %1264
  %1267 = load i32, ptr %85, align 4, !tbaa !51
  %1268 = icmp eq i32 %1267, 0
  br i1 %1268, label %1269, label %1272

1269:                                             ; preds = %1266
  %1270 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef @.str.74)
          to label %1271 unwind label %1241

1271:                                             ; preds = %1269
  br label %1272

1272:                                             ; preds = %1271, %1266
  %1273 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef @.str.75)
          to label %1274 unwind label %1241

1274:                                             ; preds = %1272
  %1275 = load i32, ptr %23, align 4, !tbaa !11
  %1276 = icmp ne i32 %1275, 0
  br i1 %1276, label %1280, label %1277

1277:                                             ; preds = %1274
  %1278 = load i8, ptr %25, align 1, !tbaa !13, !range !33, !noundef !34
  %1279 = trunc i8 %1278 to i1
  br i1 %1279, label %1287, label %1280

1280:                                             ; preds = %1277, %1274
  %1281 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef @.str.76)
          to label %1282 unwind label %1241

1282:                                             ; preds = %1280
  %1283 = load i32, ptr %23, align 4, !tbaa !11
  %1284 = add nsw i32 %1283, 1
  %1285 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1281, i32 noundef %1284)
          to label %1286 unwind label %1241

1286:                                             ; preds = %1282
  br label %1287

1287:                                             ; preds = %1286, %1277
  %1288 = load i32, ptr %84, align 4, !tbaa !49
  switch i32 %1288, label %1298 [
    i32 0, label %1289
    i32 1, label %1292
    i32 2, label %1295
  ]

1289:                                             ; preds = %1287
  %1290 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef @.str.77)
          to label %1291 unwind label %1241

1291:                                             ; preds = %1289
  br label %1298

1292:                                             ; preds = %1287
  %1293 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef @.str.78)
          to label %1294 unwind label %1241

1294:                                             ; preds = %1292
  br label %1298

1295:                                             ; preds = %1287
  %1296 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef @.str.79)
          to label %1297 unwind label %1241

1297:                                             ; preds = %1295
  br label %1298

1298:                                             ; preds = %1297, %1294, %1291, %1287
  %1299 = load i32, ptr %85, align 4, !tbaa !51
  %1300 = icmp eq i32 %1299, 0
  br i1 %1300, label %1301, label %1311

1301:                                             ; preds = %1298
  %1302 = load i32, ptr %84, align 4, !tbaa !49
  %1303 = icmp eq i32 %1302, 0
  br i1 %1303, label %1304, label %1307

1304:                                             ; preds = %1301
  %1305 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef @.str.80)
          to label %1306 unwind label %1241

1306:                                             ; preds = %1304
  br label %1310

1307:                                             ; preds = %1301
  %1308 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef @.str.81)
          to label %1309 unwind label %1241

1309:                                             ; preds = %1307
  br label %1310

1310:                                             ; preds = %1309, %1306
  br label %1311

1311:                                             ; preds = %1310, %1298
  %1312 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef @.str.82)
          to label %1313 unwind label %1241

1313:                                             ; preds = %1311
  call void @llvm.lifetime.start.p0(i64 32, ptr %88) #11
  invoke void @_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %88, ptr noundef nonnull align 8 dereferenceable(112) %12)
          to label %1314 unwind label %1327

1314:                                             ; preds = %1313
  %1315 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %88) #11
  %1316 = invoke noundef zeroext i1 @_ZN6GLutil6Shader7compileEjPKc(ptr noundef nonnull align 8 dereferenceable(25) %17, i32 noundef 35632, ptr noundef %1315)
          to label %1317 unwind label %1331

1317:                                             ; preds = %1314
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #11
  %1318 = invoke noundef zeroext i1 @_ZNK6GLutil6Shader7haveLogEv(ptr noundef nonnull align 8 dereferenceable(25) %17)
          to label %1319 unwind label %1241

1319:                                             ; preds = %1317
  br i1 %1318, label %1320, label %1336

1320:                                             ; preds = %1319
  %1321 = invoke noundef ptr @_ZNK6GLutil6Shader6getLogEv(ptr noundef nonnull align 8 dereferenceable(25) %17)
          to label %1322 unwind label %1241

1322:                                             ; preds = %1320
  %1323 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef %1321)
          to label %1324 unwind label %1241

1324:                                             ; preds = %1322
  %1325 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1323, ptr noundef @.str.5)
          to label %1326 unwind label %1241

1326:                                             ; preds = %1324
  br label %1336

1327:                                             ; preds = %1313
  %1328 = landingpad { ptr, i32 }
          cleanup
  %1329 = extractvalue { ptr, i32 } %1328, 0
  store ptr %1329, ptr %13, align 8
  %1330 = extractvalue { ptr, i32 } %1328, 1
  store i32 %1330, ptr %14, align 4
  br label %1335

1331:                                             ; preds = %1314
  %1332 = landingpad { ptr, i32 }
          cleanup
  %1333 = extractvalue { ptr, i32 } %1332, 0
  store ptr %1333, ptr %13, align 8
  %1334 = extractvalue { ptr, i32 } %1332, 1
  store i32 %1334, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #11
  br label %1335

1335:                                             ; preds = %1331, %1327
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #11
  br label %1447

1336:                                             ; preds = %1326, %1319
  %1337 = invoke noundef zeroext i1 @_ZNK6GLutil6Shader4goodEv(ptr noundef nonnull align 8 dereferenceable(25) %17)
          to label %1338 unwind label %1241

1338:                                             ; preds = %1336
  br i1 %1337, label %1348, label %1339

1339:                                             ; preds = %1338
  %1340 = load ptr, ptr @stderr, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %89) #11
  invoke void @_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %89, ptr noundef nonnull align 8 dereferenceable(112) %12)
          to label %1341 unwind label %1344

1341:                                             ; preds = %1339
  %1342 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %89) #11
  %1343 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1340, ptr noundef @.str.83, ptr noundef %1342) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #11
  store i32 2, ptr %31, align 4
  br label %1441

1344:                                             ; preds = %1339
  %1345 = landingpad { ptr, i32 }
          cleanup
  %1346 = extractvalue { ptr, i32 } %1345, 0
  store ptr %1346, ptr %13, align 8
  %1347 = extractvalue { ptr, i32 } %1345, 1
  store i32 %1347, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #11
  br label %1447

1348:                                             ; preds = %1338
  %1349 = load ptr, ptr %83, align 8, !tbaa !5
  %1350 = getelementptr inbounds %"struct.GIPS::Node::PassData", ptr %1349, i32 0, i32 2
  store ptr %1350, ptr %18, align 8, !tbaa !5
  %1351 = load ptr, ptr %18, align 8, !tbaa !5
  %1352 = load ptr, ptr %8, align 8, !tbaa !5
  %1353 = invoke noundef i32 @_ZNK6GLutil6ShadercvjEv(ptr noundef nonnull align 8 dereferenceable(25) %1352)
          to label %1354 unwind label %1241

1354:                                             ; preds = %1348
  %1355 = invoke noundef i32 @_ZNK6GLutil6ShadercvjEv(ptr noundef nonnull align 8 dereferenceable(25) %17)
          to label %1356 unwind label %1241

1356:                                             ; preds = %1354
  %1357 = invoke noundef zeroext i1 @_ZN6GLutil7Program4linkEjj(ptr noundef nonnull align 8 dereferenceable(17) %1351, i32 noundef %1353, i32 noundef %1355)
          to label %1358 unwind label %1241

1358:                                             ; preds = %1356
  %1359 = load ptr, ptr %18, align 8, !tbaa !5
  %1360 = invoke noundef zeroext i1 @_ZNK6GLutil7Program7haveLogEv(ptr noundef nonnull align 8 dereferenceable(17) %1359)
          to label %1361 unwind label %1241

1361:                                             ; preds = %1358
  br i1 %1360, label %1362, label %1370

1362:                                             ; preds = %1361
  %1363 = load ptr, ptr %18, align 8, !tbaa !5
  %1364 = invoke noundef ptr @_ZNK6GLutil7Program6getLogEv(ptr noundef nonnull align 8 dereferenceable(17) %1363)
          to label %1365 unwind label %1241

1365:                                             ; preds = %1362
  %1366 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef %1364)
          to label %1367 unwind label %1241

1367:                                             ; preds = %1365
  %1368 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1366, ptr noundef @.str.5)
          to label %1369 unwind label %1241

1369:                                             ; preds = %1367
  br label %1370

1370:                                             ; preds = %1369, %1361
  invoke void @_ZN6GLutil6Shader4freeEv(ptr noundef nonnull align 8 dereferenceable(25) %17)
          to label %1371 unwind label %1241

1371:                                             ; preds = %1370
  %1372 = load ptr, ptr %18, align 8, !tbaa !5
  %1373 = invoke noundef zeroext i1 @_ZNK6GLutil7Program4goodEv(ptr noundef nonnull align 8 dereferenceable(17) %1372)
          to label %1374 unwind label %1241

1374:                                             ; preds = %1371
  br i1 %1373, label %1376, label %1375

1375:                                             ; preds = %1374
  store i32 2, ptr %31, align 4
  br label %1441

1376:                                             ; preds = %1374
  %1377 = load ptr, ptr %18, align 8, !tbaa !5
  %1378 = invoke noundef zeroext i1 @_ZNK6GLutil7Program3useEv(ptr noundef nonnull align 8 dereferenceable(17) %1377)
          to label %1379 unwind label %1241

1379:                                             ; preds = %1376
  %1380 = invoke noundef i32 @_ZN6GLutil10checkErrorEPKc(ptr noundef @.str.84)
          to label %1381 unwind label %1241

1381:                                             ; preds = %1379
  %1382 = load ptr, ptr @glad_glUniform4f, align 8, !tbaa !5
  %1383 = load ptr, ptr %18, align 8, !tbaa !5
  %1384 = invoke noundef i32 @_ZNK6GLutil7Program18getUniformLocationEPKc(ptr noundef nonnull align 8 dereferenceable(17) %1383, ptr noundef @.str.85)
          to label %1385 unwind label %1241

1385:                                             ; preds = %1381
  invoke void %1382(i32 noundef %1384, float noundef -1.000000e+00, float noundef -1.000000e+00, float noundef 2.000000e+00, float noundef 2.000000e+00)
          to label %1386 unwind label %1241

1386:                                             ; preds = %1385
  %1387 = load ptr, ptr %18, align 8, !tbaa !5
  %1388 = invoke noundef i32 @_ZNK6GLutil7Program18getUniformLocationEPKc(ptr noundef nonnull align 8 dereferenceable(17) %1387, ptr noundef @.str.86)
          to label %1389 unwind label %1241

1389:                                             ; preds = %1386
  %1390 = load ptr, ptr %83, align 8, !tbaa !5
  %1391 = getelementptr inbounds %"struct.GIPS::Node::PassData", ptr %1390, i32 0, i32 3
  store i32 %1388, ptr %1391, align 8, !tbaa !60
  %1392 = load ptr, ptr %18, align 8, !tbaa !5
  %1393 = invoke noundef i32 @_ZNK6GLutil7Program18getUniformLocationEPKc(ptr noundef nonnull align 8 dereferenceable(17) %1392, ptr noundef @.str.87)
          to label %1394 unwind label %1241

1394:                                             ; preds = %1389
  %1395 = load ptr, ptr %83, align 8, !tbaa !5
  %1396 = getelementptr inbounds %"struct.GIPS::Node::PassData", ptr %1395, i32 0, i32 4
  store i32 %1393, ptr %1396, align 4, !tbaa !61
  %1397 = load i32, ptr %84, align 4, !tbaa !49
  %1398 = icmp eq i32 %1397, 0
  br i1 %1398, label %1399, label %1403

1399:                                             ; preds = %1394
  %1400 = load ptr, ptr %18, align 8, !tbaa !5
  %1401 = invoke noundef i32 @_ZNK6GLutil7Program18getUniformLocationEPKc(ptr noundef nonnull align 8 dereferenceable(17) %1400, ptr noundef @.str.88)
          to label %1402 unwind label %1241

1402:                                             ; preds = %1399
  br label %1404

1403:                                             ; preds = %1394
  br label %1404

1404:                                             ; preds = %1403, %1402
  %1405 = phi i32 [ %1401, %1402 ], [ -1, %1403 ]
  %1406 = load ptr, ptr %83, align 8, !tbaa !5
  %1407 = getelementptr inbounds %"struct.GIPS::Node::PassData", ptr %1406, i32 0, i32 5
  store i32 %1405, ptr %1407, align 8, !tbaa !62
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #11
  store ptr %11, ptr %90, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #11
  %1408 = load ptr, ptr %90, align 8, !tbaa !5
  %1409 = call ptr @_ZNSt6vectorIN4GIPS9ParameterESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1408) #11
  %1410 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %91, i32 0, i32 0
  store ptr %1409, ptr %1410, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #11
  %1411 = load ptr, ptr %90, align 8, !tbaa !5
  %1412 = call ptr @_ZNSt6vectorIN4GIPS9ParameterESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1411) #11
  %1413 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %92, i32 0, i32 0
  store ptr %1412, ptr %1413, align 8
  br label %1414

1414:                                             ; preds = %1430, %1404
  %1415 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN4GIPS9ParameterESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %91, ptr noundef nonnull align 8 dereferenceable(8) %92) #11
  br i1 %1415, label %1417, label %1416

1416:                                             ; preds = %1414
  store i32 29, ptr %31, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #11
  br label %1436

1417:                                             ; preds = %1414
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #11
  %1418 = call noundef nonnull align 8 dereferenceable(176) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN4GIPS9ParameterESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %91) #11
  store ptr %1418, ptr %93, align 8, !tbaa !5
  %1419 = load ptr, ptr %18, align 8, !tbaa !5
  %1420 = load ptr, ptr %93, align 8, !tbaa !5
  %1421 = getelementptr inbounds %"class.GIPS::Parameter", ptr %1420, i32 0, i32 0
  %1422 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %1421) #11
  %1423 = invoke noundef i32 @_ZNK6GLutil7Program18getUniformLocationEPKc(ptr noundef nonnull align 8 dereferenceable(17) %1419, ptr noundef %1422)
          to label %1424 unwind label %1432

1424:                                             ; preds = %1417
  %1425 = load ptr, ptr %93, align 8, !tbaa !5
  %1426 = getelementptr inbounds %"class.GIPS::Parameter", ptr %1425, i32 0, i32 10
  %1427 = load i32, ptr %23, align 4, !tbaa !11
  %1428 = sext i32 %1427 to i64
  %1429 = getelementptr inbounds [4 x i32], ptr %1426, i64 0, i64 %1428
  store i32 %1423, ptr %1429, align 4, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #11
  br label %1430

1430:                                             ; preds = %1424
  %1431 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN4GIPS9ParameterESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %91) #11
  br label %1414

1432:                                             ; preds = %1417
  %1433 = landingpad { ptr, i32 }
          cleanup
  %1434 = extractvalue { ptr, i32 } %1433, 0
  store ptr %1434, ptr %13, align 8
  %1435 = extractvalue { ptr, i32 } %1433, 1
  store i32 %1435, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #11
  br label %1447

1436:                                             ; preds = %1416
  %1437 = invoke noundef i32 @_ZN6GLutil10checkErrorEPKc(ptr noundef @.str.89)
          to label %1438 unwind label %1241

1438:                                             ; preds = %1436
  %1439 = load ptr, ptr @glad_glUseProgram, align 8, !tbaa !5
  invoke void %1439(i32 noundef 0)
          to label %1440 unwind label %1241

1440:                                             ; preds = %1438
  store i32 0, ptr %31, align 4
  br label %1441

1441:                                             ; preds = %1440, %1375, %1341
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #11
  %1442 = load i32, ptr %31, align 4
  switch i32 %1442, label %1472 [
    i32 0, label %1443
    i32 2, label %1457
  ]

1443:                                             ; preds = %1441
  br label %1444

1444:                                             ; preds = %1443
  %1445 = load i32, ptr %23, align 4, !tbaa !11
  %1446 = add nsw i32 %1445, 1
  store i32 %1446, ptr %23, align 4, !tbaa !11
  br label %1183, !llvm.loop !63

1447:                                             ; preds = %1432, %1344, %1335, %1241, %1240
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #11
  br label %1474

1448:                                             ; preds = %1192
  %1449 = load i32, ptr %24, align 4, !tbaa !11
  %1450 = icmp ne i32 %1449, 0
  br i1 %1450, label %1451, label %1454

1451:                                             ; preds = %1448
  %1452 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.90)
          to label %1453 unwind label %133

1453:                                             ; preds = %1451
  br label %1454

1454:                                             ; preds = %1453, %1448
  %1455 = load i32, ptr %23, align 4, !tbaa !11
  %1456 = getelementptr inbounds %"class.GIPS::Node", ptr %95, i32 0, i32 3
  store i32 %1455, ptr %1456, align 8, !tbaa !31
  br label %1457

1457:                                             ; preds = %1454, %1441, %1181, %1004, %173
  %1458 = load ptr, ptr %10, align 8, !tbaa !5
  call void @free(ptr noundef %1458) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %94) #11
  invoke void @_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %94, ptr noundef nonnull align 8 dereferenceable(112) %15)
          to label %1459 unwind label %1468

1459:                                             ; preds = %1457
  %1460 = getelementptr inbounds %"class.GIPS::Node", ptr %95, i32 0, i32 2
  %1461 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %1460, ptr noundef nonnull align 8 dereferenceable(32) %94) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #11
  %1462 = getelementptr inbounds %"class.GIPS::Node", ptr %95, i32 0, i32 6
  %1463 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN4GIPS9ParameterESaIS1_EEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1462, ptr noundef nonnull align 8 dereferenceable(24) %11)
          to label %1464 unwind label %133

1464:                                             ; preds = %1459
  %1465 = getelementptr inbounds %"class.GIPS::Node", ptr %95, i32 0, i32 3
  %1466 = load i32, ptr %1465, align 8, !tbaa !31
  %1467 = icmp sgt i32 %1466, 0
  store i1 %1467, ptr %5, align 1
  store i32 1, ptr %31, align 4
  br label %1472

1468:                                             ; preds = %1457
  %1469 = landingpad { ptr, i32 }
          cleanup
  %1470 = extractvalue { ptr, i32 } %1469, 0
  store ptr %1470, ptr %13, align 8
  %1471 = extractvalue { ptr, i32 } %1469, 1
  store i32 %1471, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #11
  br label %1474

1472:                                             ; preds = %1464, %1441, %1004, %107
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #11
  call void @_ZN6GLutil6ShaderD2Ev(ptr noundef nonnull align 8 dereferenceable(25) %17) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #11
  call void @llvm.lifetime.end.p0(i64 56, ptr %16) #11
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %15) #11
  call void @llvm.lifetime.end.p0(i64 376, ptr %15) #11
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %12) #11
  call void @llvm.lifetime.end.p0(i64 376, ptr %12) #11
  call void @_ZNSt6vectorIN4GIPS9ParameterESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %11) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #11
  %1473 = load i1, ptr %5, align 1
  ret i1 %1473

1474:                                             ; preds = %1468, %1447, %1174, %1009, %187, %133
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #11
  call void @_ZN6GLutil6ShaderD2Ev(ptr noundef nonnull align 8 dereferenceable(25) %17) #11
  br label %1475

1475:                                             ; preds = %1474, %120
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #11
  br label %1476

1476:                                             ; preds = %1475, %116
  call void @llvm.lifetime.end.p0(i64 56, ptr %16) #11
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %15) #11
  br label %1477

1477:                                             ; preds = %1476, %112
  call void @llvm.lifetime.end.p0(i64 376, ptr %15) #11
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %12) #11
  br label %1478

1478:                                             ; preds = %1477, %108
  call void @llvm.lifetime.end.p0(i64 376, ptr %12) #11
  call void @_ZNSt6vectorIN4GIPS9ParameterESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %11) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #11
  br label %1479

1479:                                             ; preds = %1478
  %1480 = load ptr, ptr %13, align 8
  %1481 = load i32, ptr %14, align 4
  %1482 = insertvalue { ptr, i32 } poison, ptr %1480, 0
  %1483 = insertvalue { ptr, i32 } %1482, i32 %1481, 1
  resume { ptr, i32 } %1483
}

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

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

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

declare i32 @__gxx_personality_v0(...)

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN10StringUtil9TokenizerC2Ev(ptr noundef nonnull align 8 dereferenceable(52)) unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN6GLutil6ShaderC2Ev(ptr noundef nonnull align 8 dereferenceable(25)) unnamed_addr #3 align 2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #4

declare i32 @printf(ptr noundef, ...) #5

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

declare noundef zeroext i1 @_ZN8FileUtil15FileFingerprint6updateEPKc(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) #5

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZN10StringUtil12pathBaseNameEPKc(ptr noundef) #7

declare noundef i32 @_ZN10StringUtil17pathExtStartIndexEPKc(ptr noundef) #5

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EPKcmRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, i64 noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #0 align 2

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

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

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

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

declare noundef ptr @_ZN10StringUtil12loadTextFileEPKcPi(ptr noundef, ptr noundef) #5

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #7

declare void @_ZN10StringUtil9Tokenizer4initEPKci(ptr noundef nonnull align 8 dereferenceable(52), ptr noundef, i32 noundef) #5

declare noundef zeroext i1 @_ZN10StringUtil9Tokenizer4nextEv(ptr noundef nonnull align 8 dereferenceable(52)) #5

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

declare noundef zeroext i1 @_ZN10StringUtil9Tokenizer11extendUntilEPKcb(ptr noundef nonnull align 8 dereferenceable(52), ptr noundef, i1 noundef zeroext) #5

declare noundef ptr @_ZNK10StringUtil9Tokenizer12extractTokenEv(ptr noundef nonnull align 8 dereferenceable(52)) #5

; Function Attrs: nounwind willreturn memory(read)
declare i64 @strlen(ptr noundef) #8

; Function Attrs: nounwind willreturn memory(read)
declare noundef ptr @strchr(ptr noundef, i32 noundef) #8

; Function Attrs: nounwind willreturn memory(read)
declare i32 @isalnum(i32 noundef) #8

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN10StringUtil7isidentEc(i8 noundef signext) #3

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

; Function Attrs: nounwind
declare float @strtof(ptr noundef, ptr noundef) #9

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_2clEv"(ptr noundef nonnull align 8 dereferenceable(24)) #7 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_5clEv"(ptr noundef nonnull align 8 dereferenceable(24)) #7 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_4clEv"(ptr noundef nonnull align 8 dereferenceable(24)) #7 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_6clENS_9GLSLTokenENS_13ParameterTypeEb"(ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef, i1 noundef zeroext) #7 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_3clEv"(ptr noundef nonnull align 8 dereferenceable(24)) #7 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #3 align 2

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

; Function Attrs: nounwind
declare void @free(ptr noundef) #9

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN10StringUtil14skipWhitespaceEPc(ptr noundef) #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN10StringUtil22trimTrailingWhitespaceEPc(ptr noundef) #7

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN10StringUtil6lookupIN4GIPS9GLSLTokenEEET_PKNS_11LookupEntryIS3_EEPKc(ptr noundef, ptr noundef) #3

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK10StringUtil9Tokenizer6lengthEv(ptr noundef nonnull align 8 dereferenceable(52)) #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK10StringUtil9Tokenizer8containsEc(ptr noundef nonnull align 8 dereferenceable(52), i8 noundef signext) #3 align 2

; Function Attrs: nounwind willreturn memory(read)
declare i32 @isalpha(i32 noundef) #8

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt3absf(float noundef) #3

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt5floorf(float noundef) #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt5log10f(float noundef) #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #7

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, i32 noundef) #3

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #7

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #7

declare noundef ptr @_ZN4GIPS4Node9findParamEPKc(ptr noundef nonnull align 8 dereferenceable(348), ptr noundef) #5

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

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

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32)) #0 align 2

declare void @_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate(ptr noundef nonnull align 8 dereferenceable(264), i32 noundef) #5

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN6GLutil6Shader7compileEjPKc(ptr noundef nonnull align 8 dereferenceable(25), i32 noundef, ptr noundef) #7 align 2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK6GLutil6Shader7haveLogEv(ptr noundef nonnull align 8 dereferenceable(25)) #3 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK6GLutil6Shader4goodEv(ptr noundef nonnull align 8 dereferenceable(25)) #3 align 2

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #9

declare noundef zeroext i1 @_ZN6GLutil7Program4linkEjj(ptr noundef nonnull align 8 dereferenceable(17), i32 noundef, i32 noundef) #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK6GLutil6ShadercvjEv(ptr noundef nonnull align 8 dereferenceable(25)) #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK6GLutil7Program7haveLogEv(ptr noundef nonnull align 8 dereferenceable(17)) #3 align 2

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

declare void @_ZN6GLutil6Shader4freeEv(ptr noundef nonnull align 8 dereferenceable(25)) #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK6GLutil7Program4goodEv(ptr noundef nonnull align 8 dereferenceable(17)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK6GLutil7Program3useEv(ptr noundef nonnull align 8 dereferenceable(17)) #7 align 2

declare noundef i32 @_ZN6GLutil10checkErrorEPKc(ptr noundef) #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZNK6GLutil7Program18getUniformLocationEPKc(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef) #7 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN6GLutil6ShaderD2Ev(ptr noundef nonnull align 8 dereferenceable(25)) unnamed_addr #3 align 2

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

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

attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #5 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #7 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { 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 #10 = { 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 #11 = { nounwind }
attributes #12 = { nounwind willreturn memory(read) }
attributes #13 = { 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 = !{!"_ZTSN4GIPS9GLSLTokenE", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"bool", !7, i64 0}
!15 = !{!16, !16, i64 0}
!16 = !{!"_ZTSN4GIPS12CoordMapModeE", !7, i64 0}
!17 = !{!7, !7, i64 0}
!18 = !{i64 0, i64 8, !19, i64 8, i64 8, !19}
!19 = !{!20, !20, i64 0}
!20 = !{!"long", !7, i64 0}
!21 = !{!22, !14, i64 320}
!22 = !{!"_ZTSN4GIPS4NodeE", !23, i64 0, !23, i64 32, !23, i64 64, !12, i64 96, !7, i64 104, !25, i64 296, !14, i64 320, !14, i64 321, !14, i64 322, !29, i64 328, !30, i64 344}
!23 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !24, i64 0, !20, i64 8, !7, i64 16}
!24 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!25 = !{!"_ZTSSt6vectorIN4GIPS9ParameterESaIS1_EE", !26, i64 0}
!26 = !{!"_ZTSSt12_Vector_baseIN4GIPS9ParameterESaIS1_EE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseIN4GIPS9ParameterESaIS1_EE12_Vector_implE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseIN4GIPS9ParameterESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!29 = !{!"_ZTSN8FileUtil15FileFingerprintE", !20, i64 0, !20, i64 8}
!30 = !{!"_ZTSN4GIPS11PixelFormatE", !7, i64 0}
!31 = !{!22, !12, i64 96}
!32 = !{!22, !30, i64 344}
!33 = !{i8 0, i8 2}
!34 = !{}
!35 = distinct !{!35, !36}
!36 = !{!"llvm.loop.mustprogress"}
!37 = distinct !{!37, !36}
!38 = distinct !{!38, !36}
!39 = !{!40, !40, i64 0}
!40 = !{!"float", !7, i64 0}
!41 = !{!42, !40, i64 104}
!42 = !{!"_ZTSN4GIPS9ParameterE", !23, i64 0, !23, i64 32, !23, i64 64, !43, i64 96, !12, i64 100, !40, i64 104, !40, i64 108, !7, i64 112, !7, i64 128, !7, i64 144, !7, i64 160}
!43 = !{!"_ZTSN4GIPS13ParameterTypeE", !7, i64 0}
!44 = !{!42, !40, i64 108}
!45 = !{!42, !12, i64 100}
!46 = distinct !{!46, !36}
!47 = distinct !{!47, !36}
!48 = !{!42, !43, i64 96}
!49 = !{!50, !50, i64 0}
!50 = !{!"_ZTSN4GIPS9PassInputE", !7, i64 0}
!51 = !{!52, !52, i64 0}
!52 = !{!"_ZTSN4GIPS10PassOutputE", !7, i64 0}
!53 = !{!54, !14, i64 0}
!54 = !{!"_ZTSN4GIPS4Node8PassDataE", !14, i64 0, !16, i64 4, !55, i64 8, !12, i64 32, !12, i64 36, !12, i64 40}
!55 = !{!"_ZTSN6GLutil7ProgramE", !12, i64 0, !12, i64 4, !6, i64 8, !14, i64 16}
!56 = !{!54, !16, i64 4}
!57 = distinct !{!57, !36}
!58 = !{!59, !59, i64 0}
!59 = !{!"vtable pointer", !8, i64 0}
!60 = !{!54, !12, i64 32}
!61 = !{!54, !12, i64 36}
!62 = !{!54, !12, i64 40}
!63 = distinct !{!63, !36}


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

%"struct.StringUtil::LookupEntry" = type { ptr, i32 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<GIPS::Parameter, std::allocator<GIPS::Parameter>>::_Vector_impl" }
%"struct.std::_Vector_base<GIPS::Parameter, std::allocator<GIPS::Parameter>>::_Vector_impl" = type { %"struct.std::_Vector_base<GIPS::Parameter, std::allocator<GIPS::Parameter>>::_Vector_impl_data" }
%"struct.std::_Vector_base<GIPS::Parameter, std::allocator<GIPS::Parameter>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::__cxx11::basic_ostringstream" = type { %"class.std::basic_ostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.StringUtil::Tokenizer" = type <{ ptr, i32, i32, [32 x i8], i32, [4 x i8] }>
%"class.GLutil::Shader" = type <{ i32, i32, i32, [4 x i8], ptr, i8, [7 x i8] }>
%"class.std::allocator.0" = type { i8 }
%class.anon = type { ptr, ptr }
%class.anon.3 = type { ptr }
%class.anon.4 = type { ptr, ptr, ptr }
%class.anon.5 = type { ptr, ptr, ptr }
%class.anon.6 = type { ptr, ptr, ptr }
%class.anon.7 = type { ptr, ptr, ptr }
%class.anon.8 = type { ptr, ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"struct.GIPS::Node::PassData" = type { i8, i32, %"class.GLutil::Program", i32, i32, i32, [4 x i8] }
%"class.GLutil::Program" = type <{ i32, i32, ptr, i8, [7 x i8] }>

@.str = external hidden unnamed_addr constant [21 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [29 x i8], align 1
@_ZN4GIPSL8tokenMapE = external hidden constant [15 x %"struct.StringUtil::LookupEntry"], align 16
@.str.60 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [72 x i8], align 1
@__PRETTY_FUNCTION__._ZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintE = external hidden unnamed_addr constant [95 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [5 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.83 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [11 x i8], align 1
@glad_glUniform4f = external local_unnamed_addr global ptr, align 8
@.str.85 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [20 x i8], align 1
@glad_glUseProgram = external local_unnamed_addr global ptr, align 8
@.str.90 = external hidden unnamed_addr constant [61 x i8], align 1
@switch.table._ZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintE = private unnamed_addr constant [3 x ptr] [ptr @.str.77, ptr @.str.78, ptr @.str.79], align 8

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintE(ptr noundef nonnull align 8 dereferenceable(348) %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(25) %2, ptr noundef readonly %3) local_unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca %"class.std::vector", align 8
  %6 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %7 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %8 = alloca %"class.StringUtil::Tokenizer", align 8
  %9 = alloca %"class.GLutil::Shader", align 8
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca [4 x i32], align 16
  %13 = alloca [4 x i32], align 16
  %14 = alloca [4 x i32], align 16
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator.0", align 1
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca i8, align 1
  %20 = alloca ptr, align 8
  %21 = alloca i8, align 1
  %22 = alloca %class.anon, align 8
  %23 = alloca %class.anon.3, align 8
  %24 = alloca %class.anon.4, align 8
  %25 = alloca %class.anon.5, align 8
  %26 = alloca %class.anon.6, align 8
  %27 = alloca %class.anon.7, align 8
  %28 = alloca %class.anon.8, align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::allocator.0", align 1
  %31 = alloca ptr, align 8
  %32 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %33 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %34 = alloca float, align 4
  %35 = alloca float, align 4
  %36 = alloca float, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca float, align 4
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::allocator.0", align 1
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::allocator.0", align 1
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::allocator.0", align 1
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::allocator.0", align 1
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %56 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #14
  call void @_ZNSt6vectorIN4GIPS9ParameterESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #14
  call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %6) #14
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %6)
          to label %58 unwind label %62

58:                                               ; preds = %4
  call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %7) #14
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %7)
          to label %59 unwind label %64

59:                                               ; preds = %58
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %8) #14
  call void @_ZN10StringUtil9TokenizerC2Ev(ptr noundef nonnull align 8 dereferenceable(52) %8)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #14
  call void @_ZN6GLutil6ShaderC2Ev(ptr noundef nonnull align 8 dereferenceable(25) %9)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #14
  store ptr null, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #14
  store i32 0, ptr %11, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %12) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %13) #14
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %14, i8 0, i64 16, i1 false)
  %.not = icmp eq ptr %1, null
  br i1 %.not, label %749, label %60

60:                                               ; preds = %59
  %61 = load i8, ptr %1, align 1, !tbaa !11
  %.not268 = icmp eq i8 %61, 0
  br i1 %.not268, label %749, label %66

62:                                               ; preds = %4
  %63 = landingpad { ptr, i32 }
          cleanup
  br label %752

64:                                               ; preds = %58
  %65 = landingpad { ptr, i32 }
          cleanup
  br label %751

66:                                               ; preds = %60
  %67 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, ptr noundef nonnull %1)
  %.not269 = icmp eq ptr %3, null
  %68 = getelementptr inbounds i8, ptr %0, i64 328
  br i1 %.not269, label %70, label %69

69:                                               ; preds = %66
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %68, ptr noundef nonnull align 8 dereferenceable(16) %3, i64 16, i1 false), !tbaa.struct !12
  br label %72

.loopexit352:                                     ; preds = %116
  %lpad.loopexit354 = landingpad { ptr, i32 }
          cleanup
  br label %750

.loopexit.split-lp353:                            ; preds = %.invoke, %70, %72, %83, %88, %90, %102, %736, %739
  %lpad.loopexit.split-lp355 = landingpad { ptr, i32 }
          cleanup
  br label %750

70:                                               ; preds = %66
  %71 = invoke noundef zeroext i1 @_ZN8FileUtil15FileFingerprint6updateEPKc(ptr noundef nonnull align 8 dereferenceable(16) %68, ptr noundef nonnull %1)
          to label %72 unwind label %.loopexit.split-lp353

72:                                               ; preds = %70, %69
  %73 = getelementptr inbounds i8, ptr %0, i64 320
  store i8 1, ptr %73, align 8, !tbaa !15
  %74 = getelementptr inbounds i8, ptr %0, i64 96
  store i32 0, ptr %74, align 8, !tbaa !27
  %75 = getelementptr inbounds i8, ptr %0, i64 32
  %76 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull %1)
          to label %77 unwind label %.loopexit.split-lp353

77:                                               ; preds = %72
  %78 = invoke noundef ptr @_ZN10StringUtil12pathBaseNameEPKc(ptr noundef nonnull %1)
          to label %79 unwind label %95

79:                                               ; preds = %77
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #14
  %80 = invoke noundef i32 @_ZN10StringUtil17pathExtStartIndexEPKc(ptr noundef %78)
          to label %81 unwind label %97

81:                                               ; preds = %79
  %82 = sext i32 %80 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EPKcmRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef %78, i64 noundef %82, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %83 unwind label %99

83:                                               ; preds = %81
  %84 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %15) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #14
  %85 = getelementptr inbounds i8, ptr %0, i64 344
  store i32 0, ptr %85, align 8, !tbaa !28
  %86 = invoke noundef ptr @_ZN10StringUtil12loadTextFileEPKcPi(ptr noundef nonnull %1, ptr noundef null)
          to label %87 unwind label %.loopexit.split-lp353

87:                                               ; preds = %83
  %.not272 = icmp eq ptr %86, null
  br i1 %.not272, label %88, label %102

88:                                               ; preds = %87
  %89 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull @.str.1)
          to label %90 unwind label %.loopexit.split-lp353

90:                                               ; preds = %88
  %91 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %89, ptr noundef nonnull %1)
          to label %.invoke unwind label %.loopexit.split-lp353

.invoke:                                          ; preds = %._crit_edge425, %90
  %92 = phi ptr [ %91, %90 ], [ %7, %._crit_edge425 ]
  %93 = phi ptr [ @.str.2, %90 ], [ @.str.66, %._crit_edge425 ]
  %94 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %92, ptr noundef nonnull %93)
          to label %.thread341 unwind label %.loopexit.split-lp353

95:                                               ; preds = %77
  %96 = landingpad { ptr, i32 }
          cleanup
  br label %750

97:                                               ; preds = %79
  %98 = landingpad { ptr, i32 }
          cleanup
  br label %101

99:                                               ; preds = %81
  %100 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #14
  br label %101

101:                                              ; preds = %99, %97
  %.pn = phi { ptr, i32 } [ %100, %99 ], [ %98, %97 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #14
  br label %750

102:                                              ; preds = %87
  invoke void @_ZN10StringUtil9Tokenizer4initEPKci(ptr noundef nonnull align 8 dereferenceable(52) %8, ptr noundef nonnull %86, i32 noundef -1)
          to label %.preheader351 unwind label %.loopexit.split-lp353

.preheader351:                                    ; preds = %102
  %103 = getelementptr inbounds i8, ptr %0, i64 104
  %104 = getelementptr inbounds i8, ptr %22, i64 8
  %105 = getelementptr inbounds i8, ptr %24, i64 8
  %106 = getelementptr inbounds i8, ptr %24, i64 16
  %107 = getelementptr inbounds i8, ptr %25, i64 8
  %108 = getelementptr inbounds i8, ptr %25, i64 16
  %109 = getelementptr inbounds i8, ptr %26, i64 8
  %110 = getelementptr inbounds i8, ptr %26, i64 16
  %111 = getelementptr inbounds i8, ptr %27, i64 8
  %112 = getelementptr inbounds i8, ptr %27, i64 16
  %113 = getelementptr inbounds i8, ptr %28, i64 8
  %114 = getelementptr inbounds i8, ptr %28, i64 16
  %115 = getelementptr inbounds i8, ptr %28, i64 24
  %.4.sroa_idx631 = getelementptr inbounds i8, ptr %14, i64 4
  %.8.sroa_idx634 = getelementptr inbounds i8, ptr %14, i64 8
  %.12.sroa_idx635 = getelementptr inbounds i8, ptr %14, i64 12
  %.4.sroa_idx632 = getelementptr inbounds i8, ptr %14, i64 4
  %.4.sroa_idx633 = getelementptr inbounds i8, ptr %14, i64 4
  br label %116

116:                                              ; preds = %.backedge, %.preheader351
  %.0250 = phi i32 [ 0, %.preheader351 ], [ %.0250.be, %.backedge ]
  %.0236 = phi i8 [ 1, %.preheader351 ], [ %.0236.be, %.backedge ]
  %.0231 = phi i1 [ false, %.preheader351 ], [ %.0231.be, %.backedge ]
  %.0227 = phi i32 [ 0, %.preheader351 ], [ %.0227.be, %.backedge ]
  %.0221 = phi i1 [ false, %.preheader351 ], [ %.0221.be, %.backedge ]
  %.0215 = phi i32 [ -1, %.preheader351 ], [ %.0215.be, %.backedge ]
  %117 = invoke noundef zeroext i1 @_ZN10StringUtil9Tokenizer4nextEv(ptr noundef nonnull align 8 dereferenceable(52) %8)
          to label %118 unwind label %.loopexit352

118:                                              ; preds = %116
  br i1 %117, label %119, label %506

119:                                              ; preds = %118
  %120 = call noundef zeroext i1 @_ZNK10StringUtil9Tokenizer7isTokenEPKc(ptr noundef nonnull align 8 dereferenceable(52) %8, ptr noundef nonnull @.str.3)
  %121 = call noundef zeroext i1 @_ZNK10StringUtil9Tokenizer7isTokenEPKc(ptr noundef nonnull align 8 dereferenceable(52) %8, ptr noundef nonnull @.str.4)
  %brmerge = or i1 %120, %121
  br i1 %brmerge, label %122, label %421

122:                                              ; preds = %119
  br i1 %120, label %123, label %127

123:                                              ; preds = %122
  %124 = invoke noundef zeroext i1 @_ZN10StringUtil9Tokenizer11extendUntilEPKcb(ptr noundef nonnull align 8 dereferenceable(52) %8, ptr noundef nonnull @.str.5, i1 noundef zeroext true)
          to label %127 unwind label %125

125:                                              ; preds = %128, %123
  %126 = landingpad { ptr, i32 }
          cleanup
  br label %750

127:                                              ; preds = %123, %122
  br i1 %121, label %128, label %130

128:                                              ; preds = %127
  %129 = invoke noundef zeroext i1 @_ZN10StringUtil9Tokenizer11extendUntilEPKcb(ptr noundef nonnull align 8 dereferenceable(52) %8, ptr noundef nonnull @.str.6, i1 noundef zeroext true)
          to label %130 unwind label %125

130:                                              ; preds = %128, %127
  %131 = invoke noundef ptr @_ZNK10StringUtil9Tokenizer12extractTokenEv(ptr noundef nonnull align 8 dereferenceable(52) %8)
          to label %132 unwind label %137

132:                                              ; preds = %130
  br i1 %121, label %133, label %139

133:                                              ; preds = %132
  %134 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %131) #15
  %135 = getelementptr i8, ptr %131, i64 %134
  %136 = getelementptr i8, ptr %135, i64 -2
  store i8 0, ptr %136, align 1, !tbaa !11
  br label %139

137:                                              ; preds = %130
  %138 = landingpad { ptr, i32 }
          cleanup
  br label %750

139:                                              ; preds = %133, %132
  %140 = getelementptr inbounds i8, ptr %131, i64 2
  %141 = load i8, ptr %140, align 1, !tbaa !11
  %142 = icmp eq i8 %141, 33
  %143 = getelementptr inbounds i8, ptr %131, i64 3
  %spec.select = select i1 %142, ptr %143, ptr %140
  %144 = call noundef ptr @strchr(ptr noundef nonnull dereferenceable(1) %spec.select, i32 noundef 64) #15
  %.not303404417 = icmp eq ptr %144, null
  br i1 %.not303404417, label %.outer._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %139, %.outer
  %145 = phi ptr [ %408, %.outer ], [ %144, %139 ]
  %.1237.ph419 = phi i8 [ %.2238, %.outer ], [ %.0236, %139 ]
  %.1251.ph418 = phi i32 [ %.2252, %.outer ], [ %.0250, %139 ]
  br label %146

146:                                              ; preds = %.lr.ph, %152
  %147 = phi ptr [ %145, %.lr.ph ], [ %154, %152 ]
  %148 = getelementptr inbounds i8, ptr %147, i64 -1
  %149 = load i8, ptr %148, align 1, !tbaa !11
  %150 = sext i8 %149 to i32
  %151 = call i32 @isalnum(i32 noundef %150) #15
  %.not306 = icmp eq i32 %151, 0
  br i1 %.not306, label %155, label %152

152:                                              ; preds = %146
  %153 = getelementptr inbounds i8, ptr %147, i64 1
  %154 = call noundef ptr @strchr(ptr noundef nonnull dereferenceable(1) %153, i32 noundef 64) #15
  %.not303 = icmp eq ptr %154, null
  br i1 %.not303, label %.outer._crit_edge, label %146, !llvm.loop !29

155:                                              ; preds = %146
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #14
  %156 = getelementptr inbounds i8, ptr %147, i64 1
  store ptr %156, ptr %17, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #14
  store ptr null, ptr %18, align 8, !tbaa !5
  %157 = load i8, ptr %156, align 1, !tbaa !11
  %158 = call noundef zeroext i1 @_ZN10StringUtil7isidentEc(i8 noundef signext %157)
  br i1 %158, label %.lr.ph410, label %._crit_edge411

.lr.ph410:                                        ; preds = %155, %.lr.ph410
  %.1244408 = phi ptr [ %163, %.lr.ph410 ], [ %156, %155 ]
  %159 = load i8, ptr %.1244408, align 1, !tbaa !11
  %160 = sext i8 %159 to i32
  %161 = call i32 @tolower(i32 noundef %160) #15
  %162 = trunc i32 %161 to i8
  store i8 %162, ptr %.1244408, align 1, !tbaa !11
  %163 = getelementptr inbounds i8, ptr %.1244408, i64 1
  %164 = load i8, ptr %163, align 1, !tbaa !11
  %165 = call noundef zeroext i1 @_ZN10StringUtil7isidentEc(i8 noundef signext %164)
  br i1 %165, label %.lr.ph410, label %._crit_edge411, !llvm.loop !31

._crit_edge411:                                   ; preds = %.lr.ph410, %155
  %.1244.lcssa = phi ptr [ %156, %155 ], [ %163, %.lr.ph410 ]
  %166 = load i8, ptr %.1244.lcssa, align 1, !tbaa !11
  %167 = icmp eq i8 %166, 61
  br i1 %167, label %168, label %179

168:                                              ; preds = %._crit_edge411
  store i8 0, ptr %.1244.lcssa, align 1, !tbaa !11
  %169 = getelementptr inbounds i8, ptr %.1244.lcssa, i64 1
  store ptr %169, ptr %18, align 8, !tbaa !5
  %170 = load i8, ptr %169, align 1, !tbaa !11
  %171 = call noundef zeroext i1 @_ZN10StringUtil7isidentEc(i8 noundef signext %170)
  br i1 %171, label %.lr.ph415, label %thread-pre-split

.lr.ph415:                                        ; preds = %168, %.lr.ph415
  %.2245413 = phi ptr [ %176, %.lr.ph415 ], [ %169, %168 ]
  %172 = load i8, ptr %.2245413, align 1, !tbaa !11
  %173 = sext i8 %172 to i32
  %174 = call i32 @tolower(i32 noundef %173) #15
  %175 = trunc i32 %174 to i8
  store i8 %175, ptr %.2245413, align 1, !tbaa !11
  %176 = getelementptr inbounds i8, ptr %.2245413, i64 1
  %177 = load i8, ptr %176, align 1, !tbaa !11
  %178 = call noundef zeroext i1 @_ZN10StringUtil7isidentEc(i8 noundef signext %177)
  br i1 %178, label %.lr.ph415, label %thread-pre-split, !llvm.loop !32

thread-pre-split:                                 ; preds = %.lr.ph415, %168
  %.2245.lcssa = phi ptr [ %169, %168 ], [ %176, %.lr.ph415 ]
  %.pr = load i8, ptr %.2245.lcssa, align 1, !tbaa !11
  br label %179

179:                                              ; preds = %thread-pre-split, %._crit_edge411
  %180 = phi i8 [ %.pr, %thread-pre-split ], [ %166, %._crit_edge411 ]
  %.3246 = phi ptr [ %.2245.lcssa, %thread-pre-split ], [ %.1244.lcssa, %._crit_edge411 ]
  %.not307 = icmp eq i8 %180, 0
  br i1 %.not307, label %183, label %181

181:                                              ; preds = %179
  %182 = getelementptr inbounds i8, ptr %.3246, i64 1
  store i8 0, ptr %.3246, align 1, !tbaa !11
  br label %183

183:                                              ; preds = %181, %179
  %.4247 = phi ptr [ %182, %181 ], [ %.3246, %179 ]
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #14
  store i8 0, ptr %19, align 1, !tbaa !33
  %184 = load ptr, ptr %18, align 8, !tbaa !5
  %.not308 = icmp eq ptr %184, null
  br i1 %.not308, label %193, label %185

185:                                              ; preds = %183
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #14
  store ptr null, ptr %20, align 8, !tbaa !5
  %186 = call float @strtof(ptr noundef nonnull %184, ptr noundef nonnull %20) #14
  %187 = load ptr, ptr %20, align 8, !tbaa !5
  %.not309 = icmp eq ptr %187, null
  br i1 %.not309, label %190, label %188

188:                                              ; preds = %185
  %189 = load i8, ptr %187, align 1, !tbaa !11
  %.not310 = icmp eq i8 %189, 0
  br label %190

190:                                              ; preds = %188, %185
  %191 = phi i1 [ false, %185 ], [ %.not310, %188 ]
  %192 = zext i1 %191 to i8
  store i8 %192, ptr %19, align 1, !tbaa !33
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #14
  br label %193

193:                                              ; preds = %190, %183
  %.0242 = phi float [ %186, %190 ], [ 0.000000e+00, %183 ]
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %21) #14
  store i8 0, ptr %21, align 1, !tbaa !33
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %22) #14
  store ptr %17, ptr %22, align 8, !tbaa !5
  store ptr %21, ptr %104, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #14
  store ptr %18, ptr %23, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %24) #14
  store ptr %10, ptr %24, align 8, !tbaa !5
  store ptr %7, ptr %105, align 8, !tbaa !5
  store ptr %17, ptr %106, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %25) #14
  store ptr %10, ptr %25, align 8, !tbaa !5
  store ptr %7, ptr %107, align 8, !tbaa !5
  store ptr %17, ptr %108, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %26) #14
  store ptr %18, ptr %26, align 8, !tbaa !5
  store ptr %7, ptr %109, align 8, !tbaa !5
  store ptr %17, ptr %110, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %27) #14
  store ptr %19, ptr %27, align 8, !tbaa !5
  store ptr %7, ptr %111, align 8, !tbaa !5
  store ptr %17, ptr %112, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #14
  store ptr %11, ptr %28, align 8, !tbaa !5
  store ptr %7, ptr %113, align 8, !tbaa !5
  store ptr %17, ptr %114, align 8, !tbaa !5
  store ptr %10, ptr %115, align 8, !tbaa !5
  %194 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef nonnull @.str.7)
  br i1 %194, label %197, label %195

195:                                              ; preds = %193
  %196 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef nonnull @.str.8)
  br i1 %196, label %197, label %207

197:                                              ; preds = %195, %193
  %198 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_2clEv"(ptr noundef nonnull align 8 dereferenceable(24) %24)
          to label %199 unwind label %.loopexit

199:                                              ; preds = %197
  br i1 %198, label %200, label %207

200:                                              ; preds = %199
  %201 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_5clEv"(ptr noundef nonnull align 8 dereferenceable(24) %27)
          to label %202 unwind label %.loopexit

202:                                              ; preds = %200
  br i1 %201, label %203, label %207

203:                                              ; preds = %202
  %204 = load ptr, ptr %10, align 8, !tbaa !5
  %205 = getelementptr inbounds i8, ptr %204, i64 104
  store float %.0242, ptr %205, align 8, !tbaa !34
  br label %.outer

.loopexit:                                        ; preds = %.invoke587, %.invoke540, %.invoke534, %.invoke533, %197, %200, %211, %214, %222, %225, %235, %243, %246, %249, %258, %266, %271, %274, %283, %286, %307, %310, %353, %356, %379, %382, %400
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %206

.loopexit.split-lp:                               ; preds = %387, %389, %391, %393, %395
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %206

206:                                              ; preds = %.loopexit.split-lp, %.loopexit
  %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %27) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %26) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %25) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %24) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %22) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #14
  br label %750

207:                                              ; preds = %202, %199, %195
  %208 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef nonnull @.str.9)
  br i1 %208, label %211, label %209

209:                                              ; preds = %207
  %210 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef nonnull @.str.10)
  br i1 %210, label %211, label %220

211:                                              ; preds = %209, %207
  %212 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_2clEv"(ptr noundef nonnull align 8 dereferenceable(24) %24)
          to label %213 unwind label %.loopexit

213:                                              ; preds = %211
  br i1 %212, label %214, label %220

214:                                              ; preds = %213
  %215 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_5clEv"(ptr noundef nonnull align 8 dereferenceable(24) %27)
          to label %216 unwind label %.loopexit

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

217:                                              ; preds = %216
  %218 = load ptr, ptr %10, align 8, !tbaa !5
  %219 = getelementptr inbounds i8, ptr %218, i64 108
  store float %.0242, ptr %219, align 4, !tbaa !38
  br label %.outer

220:                                              ; preds = %216, %213, %209
  %221 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef nonnull @.str.11)
  br i1 %221, label %222, label %233

222:                                              ; preds = %220
  %223 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_2clEv"(ptr noundef nonnull align 8 dereferenceable(24) %24)
          to label %224 unwind label %.loopexit

224:                                              ; preds = %222
  br i1 %223, label %225, label %233

225:                                              ; preds = %224
  %226 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_5clEv"(ptr noundef nonnull align 8 dereferenceable(24) %27)
          to label %227 unwind label %.loopexit

227:                                              ; preds = %225
  br i1 %226, label %228, label %233

228:                                              ; preds = %227
  %229 = fadd float %.0242, 5.000000e-01
  %230 = fptosi float %229 to i32
  %231 = load ptr, ptr %10, align 8, !tbaa !5
  %232 = getelementptr inbounds i8, ptr %231, i64 100
  store i32 %230, ptr %232, align 4, !tbaa !39
  br label %.outer

233:                                              ; preds = %227, %224, %220
  %234 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef nonnull @.str.12)
  br i1 %234, label %235, label %241

235:                                              ; preds = %233
  %236 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_2clEv"(ptr noundef nonnull align 8 dereferenceable(24) %24)
          to label %237 unwind label %.loopexit

237:                                              ; preds = %235
  br i1 %236, label %238, label %241

238:                                              ; preds = %237
  %239 = load ptr, ptr %10, align 8, !tbaa !5
  %240 = getelementptr inbounds i8, ptr %239, i64 100
  store i32 0, ptr %240, align 4, !tbaa !39
  br label %.outer

241:                                              ; preds = %237, %233
  %242 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef nonnull @.str.13)
  br i1 %242, label %243, label %254

243:                                              ; preds = %241
  %244 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_2clEv"(ptr noundef nonnull align 8 dereferenceable(24) %24)
          to label %245 unwind label %.loopexit

245:                                              ; preds = %243
  br i1 %244, label %246, label %254

246:                                              ; preds = %245
  %247 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_4clEv"(ptr noundef nonnull align 8 dereferenceable(24) %26)
          to label %248 unwind label %.loopexit

248:                                              ; preds = %246
  br i1 %247, label %249, label %254

249:                                              ; preds = %248
  %250 = load ptr, ptr %18, align 8, !tbaa !5
  %251 = load ptr, ptr %10, align 8, !tbaa !5
  %252 = getelementptr inbounds i8, ptr %251, i64 64
  %253 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %252, ptr noundef %250)
          to label %.outer unwind label %.loopexit

254:                                              ; preds = %248, %245, %241
  %255 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef nonnull @.str.14)
  br i1 %255, label %258, label %256

256:                                              ; preds = %254
  %257 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef nonnull @.str.15)
  br i1 %257, label %258, label %264

258:                                              ; preds = %256, %254
  %259 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_2clEv"(ptr noundef nonnull align 8 dereferenceable(24) %24)
          to label %260 unwind label %.loopexit

260:                                              ; preds = %258
  br i1 %259, label %.invoke533, label %264

.invoke533:                                       ; preds = %276, %268, %260
  %261 = phi i32 [ 1, %260 ], [ 1, %268 ], [ 4, %276 ]
  %262 = phi i32 [ 4, %260 ], [ 5, %268 ], [ 7, %276 ]
  %263 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_6clENS_9GLSLTokenENS_13ParameterTypeEb"(ptr noundef nonnull align 8 dereferenceable(32) %28, i32 noundef %261, i32 noundef %262, i1 noundef zeroext true)
          to label %.outer unwind label %.loopexit

264:                                              ; preds = %260, %256
  %265 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef nonnull @.str.16)
  br i1 %265, label %266, label %269

266:                                              ; preds = %264
  %267 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_2clEv"(ptr noundef nonnull align 8 dereferenceable(24) %24)
          to label %268 unwind label %.loopexit

268:                                              ; preds = %266
  br i1 %267, label %.invoke533, label %269

269:                                              ; preds = %268, %264
  %270 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef nonnull @.str.17)
  br i1 %270, label %271, label %277

271:                                              ; preds = %269
  %272 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_2clEv"(ptr noundef nonnull align 8 dereferenceable(24) %24)
          to label %273 unwind label %.loopexit

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

274:                                              ; preds = %273
  %275 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_6clENS_9GLSLTokenENS_13ParameterTypeEb"(ptr noundef nonnull align 8 dereferenceable(32) %28, i32 noundef 3, i32 noundef 6, i1 noundef zeroext false)
          to label %276 unwind label %.loopexit

276:                                              ; preds = %274
  br i1 %275, label %.outer, label %.invoke533

277:                                              ; preds = %273, %269
  %278 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef nonnull @.str.18)
  br i1 %278, label %283, label %279

279:                                              ; preds = %277
  %280 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef nonnull @.str.19)
  br i1 %280, label %283, label %281

281:                                              ; preds = %279
  %282 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef nonnull @.str.20)
  br i1 %282, label %283, label %303

283:                                              ; preds = %281, %279, %277
  %284 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_3clEv"(ptr noundef nonnull align 8 dereferenceable(24) %25)
          to label %285 unwind label %.loopexit

285:                                              ; preds = %283
  br i1 %284, label %286, label %303

286:                                              ; preds = %285
  %287 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_4clEv"(ptr noundef nonnull align 8 dereferenceable(24) %26)
          to label %288 unwind label %.loopexit

288:                                              ; preds = %286
  br i1 %287, label %289, label %303

289:                                              ; preds = %288
  %290 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull @.str.21)
  br i1 %290, label %.outer, label %291

291:                                              ; preds = %289
  %292 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull @.str.22)
  br i1 %292, label %.outer, label %293

293:                                              ; preds = %291
  %294 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull @.str.23)
  br i1 %294, label %.outer, label %295

295:                                              ; preds = %293
  %296 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull @.str.24)
  br i1 %296, label %.outer, label %.invoke587

.invoke587:                                       ; preds = %373, %346, %295
  %297 = phi ptr [ @.str.25, %295 ], [ @.str.44, %346 ], [ @.str.53, %373 ]
  %298 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull %297)
          to label %.invoke540 unwind label %.loopexit

.invoke540:                                       ; preds = %.invoke587, %400
  %299 = phi ptr [ %401, %400 ], [ %298, %.invoke587 ]
  %.in = phi ptr [ %17, %400 ], [ %18, %.invoke587 ]
  %300 = load ptr, ptr %.in, align 8, !tbaa !5
  %301 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %299, ptr noundef %300)
          to label %.invoke534 unwind label %.loopexit

.invoke534:                                       ; preds = %.invoke540
  %302 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %301, ptr noundef nonnull @.str.2)
          to label %.outer unwind label %.loopexit

303:                                              ; preds = %288, %285, %281
  %304 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef nonnull @.str.26)
  br i1 %304, label %307, label %305

305:                                              ; preds = %303
  %306 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef nonnull @.str.27)
  br i1 %306, label %307, label %349

307:                                              ; preds = %305, %303
  %308 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_3clEv"(ptr noundef nonnull align 8 dereferenceable(24) %25)
          to label %309 unwind label %.loopexit

309:                                              ; preds = %307
  br i1 %308, label %310, label %349

310:                                              ; preds = %309
  %311 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_4clEv"(ptr noundef nonnull align 8 dereferenceable(24) %26)
          to label %312 unwind label %.loopexit

312:                                              ; preds = %310
  br i1 %311, label %313, label %349

313:                                              ; preds = %312
  %314 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull @.str.28)
  br i1 %314, label %321, label %315

315:                                              ; preds = %313
  %316 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull @.str.29)
  br i1 %316, label %321, label %317

317:                                              ; preds = %315
  %318 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull @.str.30)
  br i1 %318, label %321, label %319

319:                                              ; preds = %317
  %320 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull @.str.31)
  br i1 %320, label %321, label %322

321:                                              ; preds = %319, %317, %315, %313
  store i32 8, ptr %85, align 8, !tbaa !28
  br label %.outer

322:                                              ; preds = %319
  %323 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull @.str.32)
  br i1 %323, label %330, label %324

324:                                              ; preds = %322
  %325 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull @.str.33)
  br i1 %325, label %330, label %326

326:                                              ; preds = %324
  %327 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull @.str.34)
  br i1 %327, label %330, label %328

328:                                              ; preds = %326
  %329 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull @.str.35)
  br i1 %329, label %330, label %331

330:                                              ; preds = %328, %326, %324, %322
  store i32 16, ptr %85, align 8, !tbaa !28
  br label %.outer

331:                                              ; preds = %328
  %332 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull @.str.36)
  br i1 %332, label %339, label %333

333:                                              ; preds = %331
  %334 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull @.str.37)
  br i1 %334, label %339, label %335

335:                                              ; preds = %333
  %336 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull @.str.38)
  br i1 %336, label %339, label %337

337:                                              ; preds = %335
  %338 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull @.str.39)
  br i1 %338, label %339, label %340

339:                                              ; preds = %337, %335, %333, %331
  store i32 116, ptr %85, align 8, !tbaa !28
  br label %.outer

340:                                              ; preds = %337
  %341 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull @.str.40)
  br i1 %341, label %348, label %342

342:                                              ; preds = %340
  %343 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull @.str.41)
  br i1 %343, label %348, label %344

344:                                              ; preds = %342
  %345 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull @.str.42)
  br i1 %345, label %348, label %346

346:                                              ; preds = %344
  %347 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull @.str.43)
  br i1 %347, label %348, label %.invoke587

348:                                              ; preds = %346, %344, %342, %340
  store i32 132, ptr %85, align 8, !tbaa !28
  br label %.outer

349:                                              ; preds = %312, %309, %305
  %350 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef nonnull @.str.45)
  br i1 %350, label %353, label %351

351:                                              ; preds = %349
  %352 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef nonnull @.str.46)
  br i1 %352, label %353, label %375

353:                                              ; preds = %351, %349
  %354 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_3clEv"(ptr noundef nonnull align 8 dereferenceable(24) %25)
          to label %355 unwind label %.loopexit

355:                                              ; preds = %353
  br i1 %354, label %356, label %375

356:                                              ; preds = %355
  %357 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_4clEv"(ptr noundef nonnull align 8 dereferenceable(24) %26)
          to label %358 unwind label %.loopexit

358:                                              ; preds = %356
  br i1 %357, label %359, label %375

359:                                              ; preds = %358
  %360 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull @.str.47)
  br i1 %360, label %.outer, label %361

361:                                              ; preds = %359
  %362 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull @.str.10)
  br i1 %362, label %.outer, label %363

363:                                              ; preds = %361
  %364 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull @.str.48)
  br i1 %364, label %.outer, label %365

365:                                              ; preds = %363
  %366 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull @.str.49)
  br i1 %366, label %.outer, label %367

367:                                              ; preds = %365
  %368 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull @.str.50)
  br i1 %368, label %.outer, label %369

369:                                              ; preds = %367
  %370 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull @.str.8)
  br i1 %370, label %.outer, label %371

371:                                              ; preds = %369
  %372 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull @.str.51)
  br i1 %372, label %.outer, label %373

373:                                              ; preds = %371
  %374 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull @.str.52)
  br i1 %374, label %.outer, label %.invoke587

375:                                              ; preds = %358, %355, %351
  %376 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef nonnull @.str.54)
  br i1 %376, label %379, label %377

377:                                              ; preds = %375
  %378 = call noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef nonnull @.str.55)
  br i1 %378, label %379, label %397

379:                                              ; preds = %377, %375
  %380 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_3clEv"(ptr noundef nonnull align 8 dereferenceable(24) %25)
          to label %381 unwind label %.loopexit

381:                                              ; preds = %379
  br i1 %380, label %382, label %397

382:                                              ; preds = %381
  %383 = invoke noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_5clEv"(ptr noundef nonnull align 8 dereferenceable(24) %27)
          to label %384 unwind label %.loopexit

384:                                              ; preds = %382
  br i1 %383, label %385, label %397

385:                                              ; preds = %384
  %386 = fcmp ogt float %.0242, 1.000000e+00
  br i1 %386, label %387, label %.outer

387:                                              ; preds = %385
  %388 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull @.str.56)
          to label %389 unwind label %.loopexit.split-lp

389:                                              ; preds = %387
  %390 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %388, float noundef %.0242)
          to label %391 unwind label %.loopexit.split-lp

391:                                              ; preds = %389
  %392 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %390, ptr noundef nonnull @.str.57)
          to label %393 unwind label %.loopexit.split-lp

393:                                              ; preds = %391
  %394 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEf(ptr noundef nonnull align 8 dereferenceable(8) %392, float noundef 1.000000e+00)
          to label %395 unwind label %.loopexit.split-lp

395:                                              ; preds = %393
  %396 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %394, ptr noundef nonnull @.str.58)
          to label %.thread333 unwind label %.loopexit.split-lp

.thread333:                                       ; preds = %395
  call void @free(ptr noundef %131) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %27) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %26) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %25) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %24) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %22) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #14
  br label %.thread341

397:                                              ; preds = %384, %381, %377
  %398 = load i8, ptr %21, align 1, !tbaa !33, !range !40, !noundef !41
  %399 = trunc nuw i8 %398 to i1
  br i1 %399, label %.outer, label %400

400:                                              ; preds = %397
  %401 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull @.str.59)
          to label %.invoke540 unwind label %.loopexit

.outer:                                           ; preds = %.invoke534, %.invoke533, %203, %228, %249, %397, %385, %321, %339, %348, %330, %276, %238, %217, %289, %291, %295, %293, %365, %363, %361, %359, %373, %371, %369, %367
  %.2252 = phi i32 [ %.1251.ph418, %203 ], [ %.1251.ph418, %217 ], [ %.1251.ph418, %228 ], [ %.1251.ph418, %238 ], [ %.1251.ph418, %249 ], [ %.1251.ph418, %276 ], [ %.1251.ph418, %321 ], [ %.1251.ph418, %330 ], [ %.1251.ph418, %339 ], [ %.1251.ph418, %348 ], [ %.1251.ph418, %385 ], [ %.1251.ph418, %397 ], [ 1, %289 ], [ 0, %291 ], [ 2, %295 ], [ 2, %293 ], [ %.1251.ph418, %365 ], [ %.1251.ph418, %363 ], [ %.1251.ph418, %361 ], [ %.1251.ph418, %359 ], [ %.1251.ph418, %373 ], [ %.1251.ph418, %371 ], [ %.1251.ph418, %369 ], [ %.1251.ph418, %367 ], [ %.1251.ph418, %.invoke533 ], [ %.1251.ph418, %.invoke534 ]
  %.2238 = phi i8 [ %.1237.ph419, %203 ], [ %.1237.ph419, %217 ], [ %.1237.ph419, %228 ], [ %.1237.ph419, %238 ], [ %.1237.ph419, %249 ], [ %.1237.ph419, %276 ], [ %.1237.ph419, %321 ], [ %.1237.ph419, %330 ], [ %.1237.ph419, %339 ], [ %.1237.ph419, %348 ], [ %.1237.ph419, %385 ], [ %.1237.ph419, %397 ], [ %.1237.ph419, %289 ], [ %.1237.ph419, %291 ], [ %.1237.ph419, %295 ], [ %.1237.ph419, %293 ], [ 1, %365 ], [ 1, %363 ], [ 1, %361 ], [ 1, %359 ], [ 0, %373 ], [ 0, %371 ], [ 0, %369 ], [ 0, %367 ], [ %.1237.ph419, %.invoke533 ], [ %.1237.ph419, %.invoke534 ]
  %402 = load ptr, ptr %17, align 8, !tbaa !5
  %403 = getelementptr inbounds i8, ptr %402, i64 -1
  %404 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %.4247) #15
  %405 = add i64 %404, 1
  call void @llvm.memmove.p0.p0.i64(ptr nonnull align 1 %403, ptr nonnull align 1 %.4247, i64 %405, i1 false)
  %406 = load ptr, ptr %17, align 8, !tbaa !5
  %407 = getelementptr inbounds i8, ptr %406, i64 -1
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %27) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %26) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %25) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %24) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %22) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #14
  %408 = call noundef ptr @strchr(ptr noundef nonnull dereferenceable(1) %407, i32 noundef 64) #15
  %.not303404 = icmp eq ptr %408, null
  br i1 %.not303404, label %.outer._crit_edge, label %.lr.ph, !llvm.loop !29

.outer._crit_edge:                                ; preds = %.outer, %152, %139
  %.1251.ph.lcssa378 = phi i32 [ %.0250, %139 ], [ %.1251.ph418, %152 ], [ %.2252, %.outer ]
  %.1237.ph.lcssa376 = phi i8 [ %.0236, %139 ], [ %.1237.ph419, %152 ], [ %.2238, %.outer ]
  %409 = load ptr, ptr %10, align 8, !tbaa !5
  %.not304 = icmp eq ptr %409, null
  br i1 %.not304, label %420, label %410

410:                                              ; preds = %.outer._crit_edge
  %411 = call noundef ptr @_ZN10StringUtil14skipWhitespaceEPc(ptr noundef nonnull %spec.select)
  invoke void @_ZN10StringUtil22trimTrailingWhitespaceEPc(ptr noundef %411)
          to label %412 unwind label %418

412:                                              ; preds = %410
  %413 = load i8, ptr %411, align 1, !tbaa !11
  %.not305 = icmp eq i8 %413, 0
  br i1 %.not305, label %420, label %414

414:                                              ; preds = %412
  %415 = load ptr, ptr %10, align 8, !tbaa !5
  %416 = getelementptr inbounds i8, ptr %415, i64 32
  %417 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %416, ptr noundef nonnull %411)
          to label %420 unwind label %418

418:                                              ; preds = %414, %410
  %419 = landingpad { ptr, i32 }
          cleanup
  br label %750

420:                                              ; preds = %412, %414, %.outer._crit_edge
  call void @free(ptr noundef %131) #14
  store ptr null, ptr %10, align 8, !tbaa !5
  br label %.backedge

421:                                              ; preds = %119
  %422 = call noundef ptr @_ZNK10StringUtil9Tokenizer5tokenEv(ptr noundef nonnull align 8 dereferenceable(52) %8)
  %423 = call noundef i32 @_ZN10StringUtil6lookupIN4GIPS9GLSLTokenEEET_PKNS_11LookupEntryIS3_EEPKc(ptr noundef nonnull @_ZN4GIPSL8tokenMapE, ptr noundef %422)
  %424 = icmp eq i32 %423, -1
  br i1 %424, label %.backedge, label %.preheader350.preheader

.preheader350.preheader:                          ; preds = %421
  call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.4.sroa_idx631, ptr noundef nonnull align 16 dereferenceable(12) %14, i64 12, i1 false), !tbaa !9
  store i32 %423, ptr %14, align 16, !tbaa !9
  %.8..8. = load i32, ptr %.8.sroa_idx634, align 8
  %425 = icmp eq i32 %.8..8., 10
  br i1 %425, label %428, label %455

426:                                              ; preds = %453, %450, %448, %430
  %427 = landingpad { ptr, i32 }
          cleanup
  br label %750

428:                                              ; preds = %.preheader350.preheader
  %.4..4.487 = load i32, ptr %.4.sroa_idx633, align 4
  %429 = add i32 %.4..4.487, -1
  %or.cond8 = icmp ult i32 %429, 4
  br i1 %or.cond8, label %430, label %448

430:                                              ; preds = %428
  %431 = invoke noundef nonnull align 8 dereferenceable(176) ptr @_ZNSt6vectorIN4GIPS9ParameterESaIS1_EE12emplace_backIJEEERS1_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %5)
          to label %432 unwind label %426

432:                                              ; preds = %430
  %433 = call noundef nonnull align 8 dereferenceable(176) ptr @_ZNSt6vectorIN4GIPS9ParameterESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #14
  store ptr %433, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #14
  %434 = call noundef ptr @_ZNK10StringUtil9Tokenizer15stringFromStartEv(ptr noundef nonnull align 8 dereferenceable(52) %8)
  %435 = call noundef i32 @_ZNK10StringUtil9Tokenizer6lengthEv(ptr noundef nonnull align 8 dereferenceable(52) %8)
  %436 = sext i32 %435 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %30) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EPKcmRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef %434, i64 noundef %436, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %437 unwind label %442

437:                                              ; preds = %432
  %438 = load ptr, ptr %10, align 8, !tbaa !5
  %439 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %438, ptr noundef nonnull align 8 dereferenceable(32) %29) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #14
  store i32 %.4..4.487, ptr %11, align 4, !tbaa !9
  %440 = load ptr, ptr %10, align 8, !tbaa !5
  %441 = getelementptr inbounds i8, ptr %440, i64 96
  switch i32 %.4..4.487, label %default.unreachable [
    i32 1, label %444
    i32 2, label %445
    i32 3, label %446
    i32 4, label %447
  ], !llvm.loop !42

442:                                              ; preds = %432
  %443 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #14
  br label %750

444:                                              ; preds = %437
  store i32 0, ptr %441, align 8, !tbaa !43
  br label %.backedge

445:                                              ; preds = %437
  store i32 1, ptr %441, align 8, !tbaa !43
  br label %.backedge

446:                                              ; preds = %437
  store i32 2, ptr %441, align 8, !tbaa !43
  br label %.backedge

447:                                              ; preds = %437
  store i32 3, ptr %441, align 8, !tbaa !43
  br label %.backedge

448:                                              ; preds = %428
  %449 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull @.str.60)
          to label %450 unwind label %426

450:                                              ; preds = %448
  %451 = call noundef ptr @_ZNK10StringUtil9Tokenizer5tokenEv(ptr noundef nonnull align 8 dereferenceable(52) %8)
  %452 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %449, ptr noundef %451)
          to label %453 unwind label %426

453:                                              ; preds = %450
  %454 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %452, ptr noundef nonnull @.str.61)
          to label %.backedge unwind label %426

455:                                              ; preds = %.preheader350.preheader
  %456 = load ptr, ptr %10, align 8, !tbaa !5
  %.not296 = icmp ne ptr %456, null
  %457 = icmp slt i32 %.0215, 0
  %458 = select i1 %.not296, i1 %.0221, i1 false
  %or.cond = select i1 %458, i1 %457, i1 false
  br i1 %or.cond, label %459, label %461

459:                                              ; preds = %455
  %460 = call noundef zeroext i1 @_ZNK10StringUtil9Tokenizer8containsEc(ptr noundef nonnull align 8 dereferenceable(52) %8, i8 noundef signext 61)
  br i1 %460, label %.backedge, label %.thread329

461:                                              ; preds = %455
  %462 = icmp ult i32 %.0215, 4
  %or.cond321 = select i1 %458, i1 %462, i1 false
  br i1 %or.cond321, label %463, label %.thread329

463:                                              ; preds = %461
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #14
  store ptr null, ptr %31, align 8, !tbaa !5
  %464 = call noundef ptr @_ZNK10StringUtil9Tokenizer5tokenEv(ptr noundef nonnull align 8 dereferenceable(52) %8)
  %465 = call float @strtof(ptr noundef %464, ptr noundef nonnull %31) #14
  %466 = load ptr, ptr %31, align 8, !tbaa !5
  %.not298 = icmp eq ptr %466, null
  br i1 %.not298, label %475, label %467

467:                                              ; preds = %463
  %468 = load i8, ptr %466, align 1, !tbaa !11
  %.not299 = icmp eq i8 %468, 0
  br i1 %.not299, label %469, label %475

469:                                              ; preds = %467
  %470 = load ptr, ptr %10, align 8, !tbaa !5
  %471 = getelementptr inbounds i8, ptr %470, i64 144
  %472 = add nuw nsw i32 %.0215, 1
  %473 = zext nneg i32 %.0215 to i64
  %474 = getelementptr inbounds [4 x float], ptr %471, i64 0, i64 %473
  store float %465, ptr %474, align 4, !tbaa !44
  br label %475

475:                                              ; preds = %469, %467, %463
  %.2217 = phi i32 [ %.0215, %467 ], [ %472, %469 ], [ %.0215, %463 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #14
  br label %.thread329

.thread329:                                       ; preds = %459, %475, %461
  %.3218 = phi i32 [ %.2217, %475 ], [ %.0215, %461 ], [ %.0215, %459 ]
  %476 = call noundef zeroext i1 @_ZNK10StringUtil9Tokenizer8containsEc(ptr noundef nonnull align 8 dereferenceable(52) %8, i8 noundef signext 59)
  br i1 %476, label %.backedge, label %477

477:                                              ; preds = %.thread329
  %478 = call noundef ptr @_ZNK10StringUtil9Tokenizer5tokenEv(ptr noundef nonnull align 8 dereferenceable(52) %8)
  %479 = load i8, ptr %478, align 1, !tbaa !11
  %480 = sext i8 %479 to i32
  %481 = call i32 @isalpha(i32 noundef %480) #15
  %.not300 = icmp eq i32 %481, 0
  %brmerge346 = select i1 %.not300, i1 true, i1 %.0221
  br i1 %brmerge346, label %483, label %482

482:                                              ; preds = %477
  store ptr null, ptr %10, align 8, !tbaa !5
  br label %483

483:                                              ; preds = %477, %482
  %.12..12. = load i32, ptr %.12.sroa_idx635, align 4
  %484 = add i32 %.12..12., -3
  %or.cond17 = icmp ult i32 %484, 2
  br i1 %or.cond17, label %485, label %.backedge

485:                                              ; preds = %483
  %486 = add i32 %.8..8., -99
  %or.cond20 = icmp ult i32 %486, 2
  %487 = icmp eq i32 %.8..8., 200
  %or.cond23 = or i1 %487, %or.cond20
  %488 = icmp eq i32 %.8..8., 300
  %or.cond26 = or i1 %488, %or.cond23
  %489 = icmp eq i32 %.8..8., 400
  %or.cond29 = or i1 %489, %or.cond26
  %.4..4. = load i32, ptr %.4.sroa_idx632, align 4
  %490 = icmp eq i32 %.4..4., 90
  %or.cond32 = select i1 %or.cond29, i1 %490, i1 false
  %.off = add i32 %423, -2
  %switch323 = icmp ult i32 %.off, 3
  %or.cond347 = and i1 %switch323, %or.cond32
  br i1 %or.cond347, label %491, label %.backedge

491:                                              ; preds = %485
  switch i32 %.8..8., label %496 [
    i32 99, label %switch.lookup
    i32 100, label %492
    i32 200, label %493
    i32 300, label %494
    i32 400, label %495
  ]

492:                                              ; preds = %491
  br label %switch.lookup

493:                                              ; preds = %491
  br label %switch.lookup

494:                                              ; preds = %491
  br label %switch.lookup

495:                                              ; preds = %491
  br label %switch.lookup

496:                                              ; preds = %491
  call void @__assert_fail(ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.62, i32 noundef 335, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintE) #16
  unreachable

switch.lookup:                                    ; preds = %491, %495, %494, %493, %492
  %.1232 = phi i1 [ %.0231, %495 ], [ %.0231, %494 ], [ %.0231, %493 ], [ false, %492 ], [ true, %491 ]
  %.0225 = phi i32 [ 3, %495 ], [ 2, %494 ], [ 1, %493 ], [ 0, %492 ], [ 0, %491 ]
  %497 = shl nuw nsw i32 1, %.0225
  %498 = or i32 %497, %.0227
  %499 = zext nneg i32 %.0225 to i64
  %500 = getelementptr inbounds [4 x i32], ptr %12, i64 0, i64 %499
  %switch.tableidx = add nsw i32 %423, -2
  store i32 %switch.tableidx, ptr %500, align 4, !tbaa !45
  %switch = icmp ne i32 %.12..12., 3
  %. = zext i1 %switch to i32
  %501 = zext nneg i32 %.0225 to i64
  %502 = getelementptr inbounds [4 x i32], ptr %13, i64 0, i64 %501
  store i32 %., ptr %502, align 4, !tbaa !47
  %503 = getelementptr inbounds [4 x %"struct.GIPS::Node::PassData"], ptr %103, i64 0, i64 %501
  %504 = and i8 %.0236, 1
  store i8 %504, ptr %503, align 8, !tbaa !49
  %505 = getelementptr inbounds i8, ptr %503, i64 4
  store i32 %.0250, ptr %505, align 4, !tbaa !53
  br label %.backedge

.backedge:                                        ; preds = %switch.lookup, %421, %453, %444, %445, %446, %447, %459, %.thread329, %485, %483, %420
  %.0250.be = phi i32 [ %.1251.ph.lcssa378, %420 ], [ %.0250, %483 ], [ %.0250, %485 ], [ %.0250, %.thread329 ], [ %.0250, %459 ], [ %.0250, %447 ], [ %.0250, %446 ], [ %.0250, %445 ], [ %.0250, %444 ], [ %.0250, %453 ], [ %.0250, %421 ], [ %.0250, %switch.lookup ]
  %.0236.be = phi i8 [ %.1237.ph.lcssa376, %420 ], [ %.0236, %483 ], [ %.0236, %485 ], [ %.0236, %.thread329 ], [ %.0236, %459 ], [ %.0236, %447 ], [ %.0236, %446 ], [ %.0236, %445 ], [ %.0236, %444 ], [ %.0236, %453 ], [ %.0236, %421 ], [ %.0236, %switch.lookup ]
  %.0231.be = phi i1 [ %.0231, %420 ], [ %.0231, %483 ], [ %.0231, %485 ], [ %.0231, %.thread329 ], [ %.0231, %459 ], [ %.0231, %447 ], [ %.0231, %446 ], [ %.0231, %445 ], [ %.0231, %444 ], [ %.0231, %453 ], [ %.0231, %421 ], [ %.1232, %switch.lookup ]
  %.0227.be = phi i32 [ %.0227, %420 ], [ %.0227, %483 ], [ %.0227, %485 ], [ %.0227, %.thread329 ], [ %.0227, %459 ], [ %.0227, %447 ], [ %.0227, %446 ], [ %.0227, %445 ], [ %.0227, %444 ], [ %.0227, %453 ], [ %.0227, %421 ], [ %498, %switch.lookup ]
  %.0221.be = phi i1 [ %.0221, %420 ], [ %.0221, %483 ], [ %.0221, %485 ], [ false, %.thread329 ], [ true, %459 ], [ true, %447 ], [ true, %446 ], [ true, %445 ], [ true, %444 ], [ false, %453 ], [ %.0221, %421 ], [ %.0221, %switch.lookup ]
  %.0215.be = phi i32 [ %.0215, %420 ], [ %.3218, %483 ], [ %.3218, %485 ], [ %.3218, %.thread329 ], [ 0, %459 ], [ -1, %447 ], [ -1, %446 ], [ -1, %445 ], [ -1, %444 ], [ %.0215, %453 ], [ %.0215, %421 ], [ %.3218, %switch.lookup ]
  br label %116, !llvm.loop !42

default.unreachable:                              ; preds = %437
  unreachable

506:                                              ; preds = %118
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #14
  %507 = call ptr @_ZNSt6vectorIN4GIPS9ParameterESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #14
  store ptr %507, ptr %32, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #14
  %508 = call ptr @_ZNSt6vectorIN4GIPS9ParameterESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #14
  store ptr %508, ptr %33, align 8
  %509 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN4GIPS9ParameterESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %32, ptr noundef nonnull align 8 dereferenceable(8) %33) #14
  br i1 %509, label %.lr.ph424, label %._crit_edge425

._crit_edge425:                                   ; preds = %571, %506
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #14
  %510 = and i32 %.0227, 1
  %.not273 = icmp eq i32 %510, 0
  br i1 %.not273, label %.invoke, label %.preheader

.lr.ph424:                                        ; preds = %506, %571
  %511 = call noundef nonnull align 8 dereferenceable(176) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN4GIPS9ParameterESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %32) #14
  %512 = getelementptr inbounds i8, ptr %511, i64 100
  %513 = load i32, ptr %512, align 4, !tbaa !39
  %514 = icmp slt i32 %513, 0
  br i1 %514, label %515, label %532

515:                                              ; preds = %.lr.ph424
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #14
  %516 = getelementptr inbounds i8, ptr %511, i64 104
  %517 = load float, ptr %516, align 8, !tbaa !34
  %518 = call noundef float @_ZSt3absf(float noundef %517)
  store float %518, ptr %35, align 4, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #14
  %519 = getelementptr inbounds i8, ptr %511, i64 108
  %520 = load float, ptr %519, align 4, !tbaa !38
  %521 = call noundef float @_ZSt3absf(float noundef %520)
  store float %521, ptr %36, align 4, !tbaa !44
  %522 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIfERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %35, ptr noundef nonnull align 4 dereferenceable(4) %36)
  %523 = load float, ptr %522, align 4, !tbaa !44
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #14
  store float %523, ptr %34, align 4, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #14
  store i32 0, ptr %37, align 4, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #14
  store float 0x3EB0C6F7A0000000, ptr %39, align 4, !tbaa !44
  %524 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIfERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %34, ptr noundef nonnull align 4 dereferenceable(4) %39)
  %525 = load float, ptr %524, align 4, !tbaa !44
  %526 = call noundef float @_ZSt5log10f(float noundef %525)
  %527 = call noundef float @_ZSt5floorf(float noundef %526)
  %528 = fptosi float %527 to i32
  %529 = sub nsw i32 2, %528
  store i32 %529, ptr %38, align 4, !tbaa !54
  %530 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIiERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %37, ptr noundef nonnull align 4 dereferenceable(4) %38)
  %531 = load i32, ptr %530, align 4, !tbaa !54
  store i32 %531, ptr %512, align 4, !tbaa !39
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #14
  br label %532

532:                                              ; preds = %515, %.lr.ph424
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %40) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %42) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %43) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull @.str.63, ptr noundef nonnull align 1 dereferenceable(1) %43)
          to label %533 unwind label %542

533:                                              ; preds = %532
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #14
  %534 = load i32, ptr %512, align 4, !tbaa !39
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %44, i32 noundef %534) #14
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull align 8 dereferenceable(32) %44)
          to label %535 unwind label %544

535:                                              ; preds = %533
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %45) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %46) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull @.str.64, ptr noundef nonnull align 1 dereferenceable(1) %46)
          to label %536 unwind label %546

536:                                              ; preds = %535
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %40, ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull align 8 dereferenceable(32) %45)
          to label %537 unwind label %548

537:                                              ; preds = %536
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %46) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %43) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #14
  %538 = getelementptr inbounds i8, ptr %511, i64 64
  %539 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %538) #14
  br i1 %539, label %540, label %555

540:                                              ; preds = %537
  %541 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %538, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %568 unwind label %553

542:                                              ; preds = %532
  %543 = landingpad { ptr, i32 }
          cleanup
  br label %552

544:                                              ; preds = %533
  %545 = landingpad { ptr, i32 }
          cleanup
  br label %551

546:                                              ; preds = %535
  %547 = landingpad { ptr, i32 }
          cleanup
  br label %550

548:                                              ; preds = %536
  %549 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #14
  br label %550

550:                                              ; preds = %548, %546
  %.pn284 = phi { ptr, i32 } [ %549, %548 ], [ %547, %546 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %46) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #14
  br label %551

551:                                              ; preds = %550, %544
  %.pn284.pn = phi { ptr, i32 } [ %.pn284, %550 ], [ %545, %544 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #14
  br label %552

552:                                              ; preds = %551, %542
  %.pn284.pn.pn = phi { ptr, i32 } [ %.pn284.pn, %551 ], [ %543, %542 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %43) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #14
  br label %591

553:                                              ; preds = %540
  %554 = landingpad { ptr, i32 }
          cleanup
  br label %590

555:                                              ; preds = %537
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %48) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %49) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %50) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull @.str.65, ptr noundef nonnull align 1 dereferenceable(1) %50)
          to label %556 unwind label %560

556:                                              ; preds = %555
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %48, ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull align 8 dereferenceable(32) %49)
          to label %557 unwind label %562

557:                                              ; preds = %556
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %47, ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull align 8 dereferenceable(32) %538)
          to label %558 unwind label %564

558:                                              ; preds = %557
  %559 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %538, ptr noundef nonnull align 8 dereferenceable(32) %47) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #14
  br label %568

560:                                              ; preds = %555
  %561 = landingpad { ptr, i32 }
          cleanup
  br label %567

562:                                              ; preds = %556
  %563 = landingpad { ptr, i32 }
          cleanup
  br label %566

564:                                              ; preds = %557
  %565 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #14
  br label %566

566:                                              ; preds = %564, %562
  %.pn288 = phi { ptr, i32 } [ %565, %564 ], [ %563, %562 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #14
  br label %567

567:                                              ; preds = %566, %560
  %.pn288.pn = phi { ptr, i32 } [ %.pn288, %566 ], [ %561, %560 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #14
  br label %590

568:                                              ; preds = %540, %558
  %569 = call noundef ptr @_ZNK4GIPS9Parameter4nameEv(ptr noundef nonnull align 8 dereferenceable(176) %511)
  %570 = invoke noundef ptr @_ZN4GIPS4Node9findParamEPKc(ptr noundef nonnull align 8 dereferenceable(348) %0, ptr noundef %569)
          to label %571 unwind label %588

571:                                              ; preds = %568
  %.not294 = icmp eq ptr %570, null
  %572 = getelementptr inbounds i8, ptr %570, i64 112
  %573 = getelementptr inbounds i8, ptr %511, i64 144
  %574 = select i1 %.not294, ptr %573, ptr %572
  %575 = getelementptr inbounds i8, ptr %511, i64 112
  %576 = load float, ptr %574, align 4, !tbaa !44
  store float %576, ptr %575, align 8, !tbaa !44
  %577 = getelementptr inbounds i8, ptr %574, i64 4
  %578 = load float, ptr %577, align 4, !tbaa !44
  %579 = getelementptr inbounds i8, ptr %511, i64 116
  store float %578, ptr %579, align 4, !tbaa !44
  %580 = getelementptr inbounds i8, ptr %574, i64 8
  %581 = load float, ptr %580, align 4, !tbaa !44
  %582 = getelementptr inbounds i8, ptr %511, i64 120
  store float %581, ptr %582, align 8, !tbaa !44
  %583 = getelementptr inbounds i8, ptr %574, i64 12
  %584 = load float, ptr %583, align 4, !tbaa !44
  %585 = getelementptr inbounds i8, ptr %511, i64 124
  store float %584, ptr %585, align 4, !tbaa !44
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #14
  %586 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN4GIPS9ParameterESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %32) #14
  %587 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN4GIPS9ParameterESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %32, ptr noundef nonnull align 8 dereferenceable(8) %33) #14
  br i1 %587, label %.lr.ph424, label %._crit_edge425

588:                                              ; preds = %568
  %589 = landingpad { ptr, i32 }
          cleanup
  br label %590

590:                                              ; preds = %588, %567, %553
  %.pn291 = phi { ptr, i32 } [ %589, %588 ], [ %554, %553 ], [ %.pn288.pn, %567 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #14
  br label %591

591:                                              ; preds = %590, %552
  %.pn291.pn = phi { ptr, i32 } [ %.pn291, %590 ], [ %.pn284.pn.pn, %552 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #14
  br label %750

.preheader:                                       ; preds = %._crit_edge425, %734
  %indvars.iv = phi i64 [ %indvars.iv.next, %734 ], [ 0, %._crit_edge425 ]
  %.3230 = phi i32 [ %599, %734 ], [ %.0227, %._crit_edge425 ]
  %exitcond.not = icmp eq i64 %indvars.iv, 4
  br i1 %exitcond.not, label %.critedge, label %592

592:                                              ; preds = %.preheader
  %593 = trunc nuw nsw i64 %indvars.iv to i32
  %594 = shl nuw nsw i32 1, %593
  %595 = and i32 %594, %.3230
  %.not274 = icmp eq i32 %595, 0
  br i1 %.not274, label %.critedge, label %596

596:                                              ; preds = %592
  %597 = getelementptr inbounds [4 x %"struct.GIPS::Node::PassData"], ptr %103, i64 0, i64 %indvars.iv
  %598 = xor i32 %594, -1
  %599 = and i32 %.3230, %598
  %600 = getelementptr inbounds [4 x i32], ptr %12, i64 0, i64 %indvars.iv
  %601 = load i32, ptr %600, align 4, !tbaa !45
  %602 = getelementptr inbounds [4 x i32], ptr %13, i64 0, i64 %indvars.iv
  %603 = load i32, ptr %602, align 4, !tbaa !47
  %.not276 = icmp eq i32 %601, 0
  br i1 %.not276, label %606, label %604

604:                                              ; preds = %596
  %605 = getelementptr inbounds i8, ptr %597, i64 4
  store i32 0, ptr %605, align 4, !tbaa !53
  br label %606

606:                                              ; preds = %604, %596
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %51) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %52) #14
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #14
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull @.str.67, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %607 unwind label %618

607:                                              ; preds = %606
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(112) %6, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %608 unwind label %620

608:                                              ; preds = %607
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #14
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #14
  %609 = load ptr, ptr %6, align 8, !tbaa !55
  %610 = getelementptr i8, ptr %609, i64 -24
  %611 = load i64, ptr %610, align 8
  %612 = getelementptr inbounds i8, ptr %6, i64 %611
  invoke void @_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate(ptr noundef nonnull align 8 dereferenceable(264) %612, i32 noundef 0)
          to label %613 unwind label %623

613:                                              ; preds = %608
  %614 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull @.str.68)
          to label %615 unwind label %623

615:                                              ; preds = %613
  br i1 %.not276, label %616, label %625

616:                                              ; preds = %615
  %617 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull @.str.69)
          to label %625 unwind label %623

618:                                              ; preds = %606
  %619 = landingpad { ptr, i32 }
          cleanup
  br label %622

620:                                              ; preds = %607
  %621 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #14
  br label %622

622:                                              ; preds = %620, %618
  %.pn277 = phi { ptr, i32 } [ %621, %620 ], [ %619, %618 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #14
  br label %750

623:                                              ; preds = %switch.lookup586, %.invoke538, %734, %._crit_edge428, %715, %710, %708, %707, %704, %702, %700, %697, %695, %692, %685, %669, %666, %658, %650, %648, %645, %643, %639, %637, %634, %632, %630, %627, %625, %616, %613, %608
  %624 = landingpad { ptr, i32 }
          cleanup
  br label %750

625:                                              ; preds = %616, %615
  %626 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull @.str.70)
          to label %627 unwind label %623

627:                                              ; preds = %625
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %628 = trunc nuw nsw i64 %indvars.iv.next to i32
  %629 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %626, i32 noundef %628)
          to label %630 unwind label %623

630:                                              ; preds = %627
  %631 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %629, ptr noundef nonnull @.str.5)
          to label %632 unwind label %623

632:                                              ; preds = %630
  %633 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %631, ptr noundef nonnull %86)
          to label %634 unwind label %623

634:                                              ; preds = %632
  %635 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull @.str.71)
          to label %636 unwind label %623

636:                                              ; preds = %634
  br i1 %.not276, label %639, label %637

637:                                              ; preds = %636
  %638 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull @.str.72)
          to label %639 unwind label %623

639:                                              ; preds = %637, %636
  %640 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull @.str.73)
          to label %641 unwind label %623

641:                                              ; preds = %639
  %642 = icmp eq i32 %603, 0
  br i1 %642, label %643, label %645

643:                                              ; preds = %641
  %644 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull @.str.74)
          to label %645 unwind label %623

645:                                              ; preds = %643, %641
  %646 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull @.str.75)
          to label %647 unwind label %623

647:                                              ; preds = %645
  %.not279 = icmp eq i64 %indvars.iv, 0
  %brmerge349.not = select i1 %.not279, i1 %.0231, i1 false
  br i1 %brmerge349.not, label %652, label %648

648:                                              ; preds = %647
  %649 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull @.str.76)
          to label %650 unwind label %623

650:                                              ; preds = %648
  %651 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %649, i32 noundef %628)
          to label %652 unwind label %623

652:                                              ; preds = %647, %650
  %653 = icmp ult i32 %601, 3
  br i1 %653, label %switch.lookup586, label %656

switch.lookup586:                                 ; preds = %652
  %654 = zext nneg i32 %601 to i64
  %switch.gep = getelementptr inbounds [3 x ptr], ptr @switch.table._ZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintE, i64 0, i64 %654
  %switch.load = load ptr, ptr %switch.gep, align 8
  %655 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull %switch.load)
          to label %656 unwind label %623

656:                                              ; preds = %652, %switch.lookup586
  br i1 %642, label %.invoke538, label %658

.invoke538:                                       ; preds = %656
  %.str.80..str.81 = select i1 %.not276, ptr @.str.80, ptr @.str.81
  %657 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull %.str.80..str.81)
          to label %658 unwind label %623

658:                                              ; preds = %.invoke538, %656
  %659 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull @.str.82)
          to label %660 unwind label %623

660:                                              ; preds = %658
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #14
  invoke void @_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %53, ptr noundef nonnull align 8 dereferenceable(112) %6)
          to label %661 unwind label %671

661:                                              ; preds = %660
  %662 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %53) #14
  %663 = invoke noundef zeroext i1 @_ZN6GLutil6Shader7compileEjPKc(ptr noundef nonnull align 8 dereferenceable(25) %9, i32 noundef 35632, ptr noundef %662)
          to label %664 unwind label %673

664:                                              ; preds = %661
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #14
  %665 = call noundef zeroext i1 @_ZNK6GLutil6Shader7haveLogEv(ptr noundef nonnull align 8 dereferenceable(25) %9)
  br i1 %665, label %666, label %676

666:                                              ; preds = %664
  %667 = call noundef ptr @_ZNK6GLutil6Shader6getLogEv(ptr noundef nonnull align 8 dereferenceable(25) %9)
  %668 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef %667)
          to label %669 unwind label %623

669:                                              ; preds = %666
  %670 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %668, ptr noundef nonnull @.str.5)
          to label %676 unwind label %623

671:                                              ; preds = %660
  %672 = landingpad { ptr, i32 }
          cleanup
  br label %675

673:                                              ; preds = %661
  %674 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #14
  br label %675

675:                                              ; preds = %673, %671
  %.pn280 = phi { ptr, i32 } [ %674, %673 ], [ %672, %671 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #14
  br label %750

676:                                              ; preds = %669, %664
  %677 = call noundef zeroext i1 @_ZNK6GLutil6Shader4goodEv(ptr noundef nonnull align 8 dereferenceable(25) %9)
  br i1 %677, label %685, label %678

678:                                              ; preds = %676
  %679 = load ptr, ptr @stderr, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %54) #14
  invoke void @_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %54, ptr noundef nonnull align 8 dereferenceable(112) %6)
          to label %680 unwind label %683

680:                                              ; preds = %678
  %681 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %54) #14
  %682 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %679, ptr noundef nonnull @.str.83, ptr noundef %681) #17
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #14
  br label %.thread341

683:                                              ; preds = %678
  %684 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #14
  br label %750

685:                                              ; preds = %676
  %686 = getelementptr inbounds i8, ptr %597, i64 8
  %687 = call noundef i32 @_ZNK6GLutil6ShadercvjEv(ptr noundef nonnull align 8 dereferenceable(25) %2)
  %688 = call noundef i32 @_ZNK6GLutil6ShadercvjEv(ptr noundef nonnull align 8 dereferenceable(25) %9)
  %689 = invoke noundef zeroext i1 @_ZN6GLutil7Program4linkEjj(ptr noundef nonnull align 8 dereferenceable(17) %686, i32 noundef %687, i32 noundef %688)
          to label %690 unwind label %623

690:                                              ; preds = %685
  %691 = call noundef zeroext i1 @_ZNK6GLutil7Program7haveLogEv(ptr noundef nonnull align 8 dereferenceable(17) %686)
  br i1 %691, label %692, label %697

692:                                              ; preds = %690
  %693 = call noundef ptr @_ZNK6GLutil7Program6getLogEv(ptr noundef nonnull align 8 dereferenceable(17) %686)
  %694 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef %693)
          to label %695 unwind label %623

695:                                              ; preds = %692
  %696 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %694, ptr noundef nonnull @.str.5)
          to label %697 unwind label %623

697:                                              ; preds = %695, %690
  invoke void @_ZN6GLutil6Shader4freeEv(ptr noundef nonnull align 8 dereferenceable(25) %9)
          to label %698 unwind label %623

698:                                              ; preds = %697
  %699 = call noundef zeroext i1 @_ZNK6GLutil7Program4goodEv(ptr noundef nonnull align 8 dereferenceable(17) %686)
  br i1 %699, label %700, label %.thread341

700:                                              ; preds = %698
  %701 = invoke noundef zeroext i1 @_ZNK6GLutil7Program3useEv(ptr noundef nonnull align 8 dereferenceable(17) %686)
          to label %702 unwind label %623

702:                                              ; preds = %700
  %703 = invoke noundef i32 @_ZN6GLutil10checkErrorEPKc(ptr noundef nonnull @.str.84)
          to label %704 unwind label %623

704:                                              ; preds = %702
  %705 = load ptr, ptr @glad_glUniform4f, align 8, !tbaa !5
  %706 = invoke noundef i32 @_ZNK6GLutil7Program18getUniformLocationEPKc(ptr noundef nonnull align 8 dereferenceable(17) %686, ptr noundef nonnull @.str.85)
          to label %707 unwind label %623

707:                                              ; preds = %704
  invoke void %705(i32 noundef %706, float noundef -1.000000e+00, float noundef -1.000000e+00, float noundef 2.000000e+00, float noundef 2.000000e+00)
          to label %708 unwind label %623

708:                                              ; preds = %707
  %709 = invoke noundef i32 @_ZNK6GLutil7Program18getUniformLocationEPKc(ptr noundef nonnull align 8 dereferenceable(17) %686, ptr noundef nonnull @.str.86)
          to label %710 unwind label %623

710:                                              ; preds = %708
  %711 = getelementptr inbounds i8, ptr %597, i64 32
  store i32 %709, ptr %711, align 8, !tbaa !57
  %712 = invoke noundef i32 @_ZNK6GLutil7Program18getUniformLocationEPKc(ptr noundef nonnull align 8 dereferenceable(17) %686, ptr noundef nonnull @.str.87)
          to label %713 unwind label %623

713:                                              ; preds = %710
  %714 = getelementptr inbounds i8, ptr %597, i64 36
  store i32 %712, ptr %714, align 4, !tbaa !58
  br i1 %.not276, label %715, label %717

715:                                              ; preds = %713
  %716 = invoke noundef i32 @_ZNK6GLutil7Program18getUniformLocationEPKc(ptr noundef nonnull align 8 dereferenceable(17) %686, ptr noundef nonnull @.str.88)
          to label %717 unwind label %623

717:                                              ; preds = %713, %715
  %718 = phi i32 [ %716, %715 ], [ -1, %713 ]
  %719 = getelementptr inbounds i8, ptr %597, i64 40
  store i32 %718, ptr %719, align 8, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #14
  %720 = call ptr @_ZNSt6vectorIN4GIPS9ParameterESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #14
  store ptr %720, ptr %55, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %56) #14
  %721 = call ptr @_ZNSt6vectorIN4GIPS9ParameterESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #14
  store ptr %721, ptr %56, align 8
  %722 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN4GIPS9ParameterESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull align 8 dereferenceable(8) %56) #14
  br i1 %722, label %.lr.ph427, label %._crit_edge428

._crit_edge428:                                   ; preds = %727, %717
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #14
  %723 = invoke noundef i32 @_ZN6GLutil10checkErrorEPKc(ptr noundef nonnull @.str.89)
          to label %734 unwind label %623

.lr.ph427:                                        ; preds = %717, %727
  %724 = call noundef nonnull align 8 dereferenceable(176) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN4GIPS9ParameterESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %55) #14
  %725 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %724) #14
  %726 = invoke noundef i32 @_ZNK6GLutil7Program18getUniformLocationEPKc(ptr noundef nonnull align 8 dereferenceable(17) %686, ptr noundef %725)
          to label %727 unwind label %732

727:                                              ; preds = %.lr.ph427
  %728 = getelementptr inbounds i8, ptr %724, i64 160
  %729 = getelementptr inbounds [4 x i32], ptr %728, i64 0, i64 %indvars.iv
  store i32 %726, ptr %729, align 4, !tbaa !54
  %730 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN4GIPS9ParameterESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %55) #14
  %731 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN4GIPS9ParameterESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull align 8 dereferenceable(8) %56) #14
  br i1 %731, label %.lr.ph427, label %._crit_edge428

732:                                              ; preds = %.lr.ph427
  %733 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #14
  br label %750

734:                                              ; preds = %._crit_edge428
  %735 = load ptr, ptr @glad_glUseProgram, align 8, !tbaa !5
  invoke void %735(i32 noundef 0)
          to label %.preheader unwind label %623, !llvm.loop !60

.critedge:                                        ; preds = %.preheader, %592
  %.1226.lcssa = phi i32 [ 4, %.preheader ], [ %593, %592 ]
  %.not275 = icmp eq i32 %.3230, 0
  br i1 %.not275, label %738, label %736

736:                                              ; preds = %.critedge
  %737 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull @.str.90)
          to label %738 unwind label %.loopexit.split-lp353

738:                                              ; preds = %736, %.critedge
  store i32 %.1226.lcssa, ptr %74, align 8, !tbaa !27
  br label %.thread341

.thread341:                                       ; preds = %698, %.invoke, %680, %.thread333, %738
  call void @free(ptr noundef %86) #14
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %57) #14
  invoke void @_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef nonnull align 8 dereferenceable(112) %7)
          to label %739 unwind label %747

739:                                              ; preds = %.thread341
  %740 = getelementptr inbounds i8, ptr %0, i64 64
  %741 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %740, ptr noundef nonnull align 8 dereferenceable(32) %57) #14
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #14
  %742 = getelementptr inbounds i8, ptr %0, i64 296
  %743 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN4GIPS9ParameterESaIS1_EEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %742, ptr noundef nonnull align 8 dereferenceable(24) %5)
          to label %744 unwind label %.loopexit.split-lp353

744:                                              ; preds = %739
  %745 = load i32, ptr %74, align 8, !tbaa !27
  %746 = icmp sgt i32 %745, 0
  br label %749

747:                                              ; preds = %.thread341
  %748 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #14
  br label %750

749:                                              ; preds = %59, %60, %744
  %.0 = phi i1 [ %746, %744 ], [ false, %60 ], [ false, %59 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #14
  call void @_ZN6GLutil6ShaderD2Ev(ptr noundef nonnull align 8 dereferenceable(25) %9) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #14
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %8) #14
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %7) #14
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %7) #14
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %6) #14
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %6) #14
  call void @_ZNSt6vectorIN4GIPS9ParameterESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #14
  ret i1 %.0

750:                                              ; preds = %.loopexit352, %.loopexit.split-lp353, %622, %623, %675, %683, %732, %125, %206, %418, %137, %442, %426, %95, %101, %747, %591
  %.pn315 = phi { ptr, i32 } [ %748, %747 ], [ %.pn291.pn, %591 ], [ %.pn, %101 ], [ %96, %95 ], [ %126, %125 ], [ %138, %137 ], [ %lpad.phi, %206 ], [ %419, %418 ], [ %443, %442 ], [ %427, %426 ], [ %733, %732 ], [ %624, %623 ], [ %684, %683 ], [ %.pn280, %675 ], [ %.pn277, %622 ], [ %lpad.loopexit354, %.loopexit352 ], [ %lpad.loopexit.split-lp355, %.loopexit.split-lp353 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #14
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #14
  call void @_ZN6GLutil6ShaderD2Ev(ptr noundef nonnull align 8 dereferenceable(25) %9) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #14
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %8) #14
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %7) #14
  br label %751

751:                                              ; preds = %750, %64
  %.pn315.pn = phi { ptr, i32 } [ %.pn315, %750 ], [ %65, %64 ]
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %7) #14
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %6) #14
  br label %752

752:                                              ; preds = %751, %62
  %.pn315.pn.pn = phi { ptr, i32 } [ %.pn315.pn, %751 ], [ %63, %62 ]
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %6) #14
  call void @_ZNSt6vectorIN4GIPS9ParameterESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #14
  resume { ptr, i32 } %.pn315.pn.pn
}

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

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

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

declare i32 @__gxx_personality_v0(...)

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN10StringUtil9TokenizerC2Ev(ptr noundef nonnull align 8 dereferenceable(52)) unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN6GLutil6ShaderC2Ev(ptr noundef nonnull align 8 dereferenceable(25)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #4

; Function Attrs: nofree nounwind
declare noundef i32 @printf(ptr nocapture noundef readonly, ...) local_unnamed_addr #5

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

declare noundef zeroext i1 @_ZN8FileUtil15FileFingerprint6updateEPKc(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) local_unnamed_addr #7

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZN10StringUtil12pathBaseNameEPKc(ptr noundef) local_unnamed_addr #8

declare noundef i32 @_ZN10StringUtil17pathExtStartIndexEPKc(ptr noundef) local_unnamed_addr #7

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EPKcmRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, i64 noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #0 align 2

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

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

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

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

declare noundef ptr @_ZN10StringUtil12loadTextFileEPKcPi(ptr noundef, ptr noundef) local_unnamed_addr #7

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #8

declare void @_ZN10StringUtil9Tokenizer4initEPKci(ptr noundef nonnull align 8 dereferenceable(52), ptr noundef, i32 noundef) local_unnamed_addr #7

declare noundef zeroext i1 @_ZN10StringUtil9Tokenizer4nextEv(ptr noundef nonnull align 8 dereferenceable(52)) local_unnamed_addr #7

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

declare noundef zeroext i1 @_ZN10StringUtil9Tokenizer11extendUntilEPKcb(ptr noundef nonnull align 8 dereferenceable(52), ptr noundef, i1 noundef zeroext) local_unnamed_addr #7

declare noundef ptr @_ZNK10StringUtil9Tokenizer12extractTokenEv(ptr noundef nonnull align 8 dereferenceable(52)) local_unnamed_addr #7

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i64 @strlen(ptr nocapture noundef) local_unnamed_addr #9

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare noundef ptr @strchr(ptr noundef, i32 noundef) local_unnamed_addr #9

; Function Attrs: mustprogress nofree nounwind willreturn memory(read)
declare i32 @isalnum(i32 noundef) local_unnamed_addr #10

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN10StringUtil7isidentEc(i8 noundef signext) local_unnamed_addr #3

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

; Function Attrs: mustprogress nofree nounwind willreturn
declare float @strtof(ptr noundef readonly, ptr nocapture noundef) local_unnamed_addr #11

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_0clES2_"(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_2clEv"(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #8 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_5clEv"(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #8 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_4clEv"(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #8 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_6clENS_9GLSLTokenENS_13ParameterTypeEb"(ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef, i1 noundef zeroext) local_unnamed_addr #8 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_3clEv"(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #8 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @"_ZZN4GIPS4Node4loadEPKcRKN6GLutil6ShaderEPKN8FileUtil15FileFingerprintEENK3$_1clES2_"(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #3 align 2

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

; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite)
declare void @free(ptr allocptr nocapture noundef) local_unnamed_addr #12

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN10StringUtil14skipWhitespaceEPc(ptr noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN10StringUtil22trimTrailingWhitespaceEPc(ptr noundef) local_unnamed_addr #8

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN10StringUtil6lookupIN4GIPS9GLSLTokenEEET_PKNS_11LookupEntryIS3_EEPKc(ptr noundef, ptr noundef) local_unnamed_addr #3

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK10StringUtil9Tokenizer6lengthEv(ptr noundef nonnull align 8 dereferenceable(52)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK10StringUtil9Tokenizer8containsEc(ptr noundef nonnull align 8 dereferenceable(52), i8 noundef signext) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nofree nounwind willreturn memory(read)
declare i32 @isalpha(i32 noundef) local_unnamed_addr #10

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt3absf(float noundef) local_unnamed_addr #3

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt5floorf(float noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZSt5log10f(float noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #8

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, i32 noundef) local_unnamed_addr #3

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #8

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #8

declare noundef ptr @_ZN4GIPS4Node9findParamEPKc(ptr noundef nonnull align 8 dereferenceable(348), ptr noundef) local_unnamed_addr #7

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

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

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0 align 2

declare void @_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate(ptr noundef nonnull align 8 dereferenceable(264), i32 noundef) local_unnamed_addr #7

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #7

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

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

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

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

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

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

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #5

declare noundef zeroext i1 @_ZN6GLutil7Program4linkEjj(ptr noundef nonnull align 8 dereferenceable(17), i32 noundef, i32 noundef) local_unnamed_addr #7

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK6GLutil6ShadercvjEv(ptr noundef nonnull align 8 dereferenceable(25)) local_unnamed_addr #3 align 2

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

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

declare void @_ZN6GLutil6Shader4freeEv(ptr noundef nonnull align 8 dereferenceable(25)) local_unnamed_addr #7

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK6GLutil7Program3useEv(ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #8 align 2

declare noundef i32 @_ZN6GLutil10checkErrorEPKc(ptr noundef) local_unnamed_addr #7

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZNK6GLutil7Program18getUniformLocationEPKc(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef) local_unnamed_addr #8 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN6GLutil6ShaderD2Ev(ptr noundef nonnull align 8 dereferenceable(25)) unnamed_addr #3 align 2

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

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

attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #5 = { nofree 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 #6 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #7 = { "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 #8 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { mustprogress nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { mustprogress nofree nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { mustprogress nofree nounwind willreturn "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 #12 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "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 #13 = { 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 #14 = { nounwind }
attributes #15 = { nounwind willreturn memory(read) }
attributes #16 = { noreturn nounwind }
attributes #17 = { cold 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 = !{!"_ZTSN4GIPS9GLSLTokenE", !7, i64 0}
!11 = !{!7, !7, i64 0}
!12 = !{i64 0, i64 8, !13, i64 8, i64 8, !13}
!13 = !{!14, !14, i64 0}
!14 = !{!"long", !7, i64 0}
!15 = !{!16, !24, i64 320}
!16 = !{!"_ZTSN4GIPS4NodeE", !17, i64 0, !17, i64 32, !17, i64 64, !19, i64 96, !7, i64 104, !20, i64 296, !24, i64 320, !24, i64 321, !24, i64 322, !25, i64 328, !26, i64 344}
!17 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !18, i64 0, !14, i64 8, !7, i64 16}
!18 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!19 = !{!"int", !7, i64 0}
!20 = !{!"_ZTSSt6vectorIN4GIPS9ParameterESaIS1_EE", !21, i64 0}
!21 = !{!"_ZTSSt12_Vector_baseIN4GIPS9ParameterESaIS1_EE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIN4GIPS9ParameterESaIS1_EE12_Vector_implE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIN4GIPS9ParameterESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!24 = !{!"bool", !7, i64 0}
!25 = !{!"_ZTSN8FileUtil15FileFingerprintE", !14, i64 0, !14, i64 8}
!26 = !{!"_ZTSN4GIPS11PixelFormatE", !7, i64 0}
!27 = !{!16, !19, i64 96}
!28 = !{!16, !26, i64 344}
!29 = distinct !{!29, !30}
!30 = !{!"llvm.loop.mustprogress"}
!31 = distinct !{!31, !30}
!32 = distinct !{!32, !30}
!33 = !{!24, !24, i64 0}
!34 = !{!35, !37, i64 104}
!35 = !{!"_ZTSN4GIPS9ParameterE", !17, i64 0, !17, i64 32, !17, i64 64, !36, i64 96, !19, i64 100, !37, i64 104, !37, i64 108, !7, i64 112, !7, i64 128, !7, i64 144, !7, i64 160}
!36 = !{!"_ZTSN4GIPS13ParameterTypeE", !7, i64 0}
!37 = !{!"float", !7, i64 0}
!38 = !{!35, !37, i64 108}
!39 = !{!35, !19, i64 100}
!40 = !{i8 0, i8 2}
!41 = !{}
!42 = distinct !{!42, !30}
!43 = !{!35, !36, i64 96}
!44 = !{!37, !37, i64 0}
!45 = !{!46, !46, i64 0}
!46 = !{!"_ZTSN4GIPS9PassInputE", !7, i64 0}
!47 = !{!48, !48, i64 0}
!48 = !{!"_ZTSN4GIPS10PassOutputE", !7, i64 0}
!49 = !{!50, !24, i64 0}
!50 = !{!"_ZTSN4GIPS4Node8PassDataE", !24, i64 0, !51, i64 4, !52, i64 8, !19, i64 32, !19, i64 36, !19, i64 40}
!51 = !{!"_ZTSN4GIPS12CoordMapModeE", !7, i64 0}
!52 = !{!"_ZTSN6GLutil7ProgramE", !19, i64 0, !19, i64 4, !6, i64 8, !24, i64 16}
!53 = !{!50, !51, i64 4}
!54 = !{!19, !19, i64 0}
!55 = !{!56, !56, i64 0}
!56 = !{!"vtable pointer", !8, i64 0}
!57 = !{!50, !19, i64 32}
!58 = !{!50, !19, i64 36}
!59 = !{!50, !19, i64 40}
!60 = distinct !{!60, !30}


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