; LLVM IR from kajott/GIPS :: src/gips_io.ll (ZN4GIPS8Pipeline11unserializeEPc)

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

%"class.std::__cxx11::basic_string" = 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::allocator" = type { i8 }
%"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.3", 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.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = 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.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] }

@stderr = external global ptr, align 8
@.str.9 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [20 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN4GIPS8Pipeline11unserializeEPc(ptr noundef nonnull align 8 dereferenceable(100) %0, ptr noundef %1) #2 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca i32, align 4
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca i8, align 1
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca [4 x float], align 16
  %10 = alloca i8, align 1
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::allocator", align 1
  %21 = alloca ptr, align 8
  %22 = alloca i32, align 4
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator", align 1
  %27 = alloca i32, align 4
  %28 = alloca ptr, align 8
  %29 = alloca i32, align 4
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::allocator", align 1
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::allocator", align 1
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %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", align 1
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::allocator", align 1
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.std::allocator", align 1
  %50 = alloca ptr, align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::allocator", align 1
  %55 = alloca i32, align 4
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  %56 = load ptr, ptr %4, align 8
  %57 = load ptr, ptr %5, align 8, !tbaa !5
  %58 = icmp ne ptr %57, null
  br i1 %58, label %59, label %64

59:                                               ; preds = %2
  %60 = load ptr, ptr %5, align 8, !tbaa !5
  %61 = getelementptr inbounds i8, ptr %60, i64 0
  %62 = load i8, ptr %61, align 1, !tbaa !9
  %63 = icmp ne i8 %62, 0
  br i1 %63, label %65, label %64

64:                                               ; preds = %59, %2
  store i32 -1, ptr %3, align 4
  br label %699

65:                                               ; preds = %59
  %66 = load ptr, ptr @stderr, align 8, !tbaa !5
  %67 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %66, ptr noundef @.str.9) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %6) #8
  store i8 1, ptr %6, align 1, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #8
  store ptr null, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #8
  store i32 -1, ptr %8, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 16, ptr %9) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #8
  store i8 0, ptr %10, align 1, !tbaa !10
  br label %68

68:                                               ; preds = %686, %684, %65
  %69 = load ptr, ptr %5, align 8, !tbaa !5
  %70 = load i8, ptr %69, align 1, !tbaa !9
  %71 = icmp ne i8 %70, 0
  br i1 %71, label %72, label %689

72:                                               ; preds = %68
  br label %73

73:                                               ; preds = %85, %72
  %74 = load ptr, ptr %5, align 8, !tbaa !5
  %75 = load i8, ptr %74, align 1, !tbaa !9
  %76 = sext i8 %75 to i32
  %77 = icmp eq i32 %76, 32
  br i1 %77, label %83, label %78

78:                                               ; preds = %73
  %79 = load ptr, ptr %5, align 8, !tbaa !5
  %80 = load i8, ptr %79, align 1, !tbaa !9
  %81 = sext i8 %80 to i32
  %82 = icmp eq i32 %81, 9
  br label %83

83:                                               ; preds = %78, %73
  %84 = phi i1 [ true, %73 ], [ %82, %78 ]
  br i1 %84, label %85, label %88

85:                                               ; preds = %83
  %86 = load ptr, ptr %5, align 8, !tbaa !5
  %87 = getelementptr inbounds i8, ptr %86, i32 1
  store ptr %87, ptr %5, align 8, !tbaa !5
  br label %73, !llvm.loop !14

88:                                               ; preds = %83
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #8
  %89 = load ptr, ptr %5, align 8, !tbaa !5
  store ptr %89, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #8
  %90 = load ptr, ptr %5, align 8, !tbaa !5
  store ptr %90, ptr %12, align 8, !tbaa !5
  br label %91

91:                                               ; preds = %112, %88
  %92 = load ptr, ptr %5, align 8, !tbaa !5
  %93 = load i8, ptr %92, align 1, !tbaa !9
  %94 = icmp ne i8 %93, 0
  br i1 %94, label %95, label %100

95:                                               ; preds = %91
  %96 = load ptr, ptr %5, align 8, !tbaa !5
  %97 = load i8, ptr %96, align 1, !tbaa !9
  %98 = sext i8 %97 to i32
  %99 = icmp ne i32 %98, 10
  br label %100

100:                                              ; preds = %95, %91
  %101 = phi i1 [ false, %91 ], [ %99, %95 ]
  br i1 %101, label %102, label %115

102:                                              ; preds = %100
  %103 = load ptr, ptr %5, align 8, !tbaa !5
  %104 = load i8, ptr %103, align 1, !tbaa !9
  %105 = sext i8 %104 to i32
  %106 = call i32 @isspace(i32 noundef %105) #9
  %107 = icmp ne i32 %106, 0
  br i1 %107, label %111, label %108

108:                                              ; preds = %102
  %109 = load ptr, ptr %5, align 8, !tbaa !5
  %110 = getelementptr inbounds i8, ptr %109, i64 1
  store ptr %110, ptr %12, align 8, !tbaa !5
  br label %111

111:                                              ; preds = %108, %102
  br label %112

112:                                              ; preds = %111
  %113 = load ptr, ptr %5, align 8, !tbaa !5
  %114 = getelementptr inbounds i8, ptr %113, i32 1
  store ptr %114, ptr %5, align 8, !tbaa !5
  br label %91, !llvm.loop !16

115:                                              ; preds = %100
  %116 = load ptr, ptr %12, align 8, !tbaa !5
  store i8 0, ptr %116, align 1, !tbaa !9
  %117 = load ptr, ptr %5, align 8, !tbaa !5
  %118 = load i8, ptr %117, align 1, !tbaa !9
  %119 = icmp ne i8 %118, 0
  br i1 %119, label %120, label %123

120:                                              ; preds = %115
  %121 = load ptr, ptr %5, align 8, !tbaa !5
  %122 = getelementptr inbounds i8, ptr %121, i32 1
  store ptr %122, ptr %5, align 8, !tbaa !5
  br label %123

123:                                              ; preds = %120, %115
  %124 = load ptr, ptr %11, align 8, !tbaa !5
  %125 = getelementptr inbounds i8, ptr %124, i64 0
  %126 = load i8, ptr %125, align 1, !tbaa !9
  %127 = icmp ne i8 %126, 0
  br i1 %127, label %128, label %140

128:                                              ; preds = %123
  %129 = load ptr, ptr %11, align 8, !tbaa !5
  %130 = getelementptr inbounds i8, ptr %129, i64 0
  %131 = load i8, ptr %130, align 1, !tbaa !9
  %132 = sext i8 %131 to i32
  %133 = icmp eq i32 %132, 59
  br i1 %133, label %140, label %134

134:                                              ; preds = %128
  %135 = load ptr, ptr %11, align 8, !tbaa !5
  %136 = getelementptr inbounds i8, ptr %135, i64 0
  %137 = load i8, ptr %136, align 1, !tbaa !9
  %138 = sext i8 %137 to i32
  %139 = icmp eq i32 %138, 35
  br i1 %139, label %140, label %141

140:                                              ; preds = %134, %128, %123
  store i32 2, ptr %13, align 4
  br label %684, !llvm.loop !17

141:                                              ; preds = %134
  %142 = load ptr, ptr %11, align 8, !tbaa !5
  %143 = getelementptr inbounds i8, ptr %142, i64 0
  %144 = load i8, ptr %143, align 1, !tbaa !9
  %145 = sext i8 %144 to i32
  %146 = icmp eq i32 %145, 91
  br i1 %146, label %147, label %190

147:                                              ; preds = %141
  %148 = load ptr, ptr %12, align 8, !tbaa !5
  %149 = getelementptr inbounds i8, ptr %148, i64 -1
  %150 = load i8, ptr %149, align 1, !tbaa !9
  %151 = sext i8 %150 to i32
  %152 = icmp eq i32 %151, 93
  br i1 %152, label %153, label %190

153:                                              ; preds = %147
  %154 = load ptr, ptr %12, align 8, !tbaa !5
  %155 = getelementptr inbounds i8, ptr %154, i64 -1
  store i8 0, ptr %155, align 1, !tbaa !9
  %156 = load ptr, ptr %11, align 8, !tbaa !5
  %157 = getelementptr inbounds i8, ptr %156, i32 1
  store ptr %157, ptr %11, align 8, !tbaa !5
  %158 = load i8, ptr %6, align 1, !tbaa !10, !range !18, !noundef !19
  %159 = trunc i8 %158 to i1
  br i1 %159, label %160, label %166

160:                                              ; preds = %153
  %161 = load ptr, ptr %11, align 8, !tbaa !5
  %162 = call i32 @strcmp(ptr noundef %161, ptr noundef @.str.10) #9
  %163 = icmp ne i32 %162, 0
  br i1 %163, label %165, label %164

164:                                              ; preds = %160
  store i8 0, ptr %6, align 1, !tbaa !10
  store i32 2, ptr %13, align 4
  br label %684, !llvm.loop !17

165:                                              ; preds = %160
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %13, align 4
  br label %684

166:                                              ; preds = %153
  %167 = load ptr, ptr %7, align 8, !tbaa !5
  %168 = icmp ne ptr %167, null
  br i1 %168, label %174, label %169

169:                                              ; preds = %166
  %170 = load i8, ptr %10, align 1, !tbaa !10, !range !18, !noundef !19
  %171 = trunc i8 %170 to i1
  br i1 %171, label %173, label %172

172:                                              ; preds = %169
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %13, align 4
  br label %684

173:                                              ; preds = %169
  call void @_ZN4GIPS8Pipeline5clearEv(ptr noundef nonnull align 8 dereferenceable(100) %56)
  br label %174

174:                                              ; preds = %173, %166
  %175 = load ptr, ptr @stderr, align 8, !tbaa !5
  %176 = load ptr, ptr %11, align 8, !tbaa !5
  %177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %175, ptr noundef @.str.11, ptr noundef %176) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #8
  %178 = load ptr, ptr %11, align 8, !tbaa !5
  %179 = call noundef ptr @_ZN3VFS11getFullPathEPKc(ptr noundef %178)
  store ptr %179, ptr %14, align 8, !tbaa !5
  %180 = load ptr, ptr %14, align 8, !tbaa !5
  %181 = icmp ne ptr %180, null
  br i1 %181, label %182, label %184

182:                                              ; preds = %174
  %183 = load ptr, ptr %14, align 8, !tbaa !5
  br label %186

184:                                              ; preds = %174
  %185 = load ptr, ptr %11, align 8, !tbaa !5
  br label %186

186:                                              ; preds = %184, %182
  %187 = phi ptr [ %183, %182 ], [ %185, %184 ]
  %188 = call noundef ptr @_ZN4GIPS8Pipeline7addNodeEPKci(ptr noundef nonnull align 8 dereferenceable(100) %56, ptr noundef %187, i32 noundef -1)
  store ptr %188, ptr %7, align 8, !tbaa !5
  %189 = load ptr, ptr %14, align 8, !tbaa !5
  call void @free(ptr noundef %189) #8
  store i32 2, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #8
  br label %684

190:                                              ; preds = %147, %141
  %191 = load i8, ptr %6, align 1, !tbaa !10, !range !18, !noundef !19
  %192 = trunc i8 %191 to i1
  br i1 %192, label %193, label %194

193:                                              ; preds = %190
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %13, align 4
  br label %684

194:                                              ; preds = %190
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #8
  %195 = load ptr, ptr %11, align 8, !tbaa !5
  store ptr %195, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #8
  %196 = load ptr, ptr %11, align 8, !tbaa !5
  store ptr %196, ptr %16, align 8, !tbaa !5
  %197 = load ptr, ptr %11, align 8, !tbaa !5
  store ptr %197, ptr %12, align 8, !tbaa !5
  br label %198

198:                                              ; preds = %219, %194
  %199 = load ptr, ptr %16, align 8, !tbaa !5
  %200 = load i8, ptr %199, align 1, !tbaa !9
  %201 = icmp ne i8 %200, 0
  br i1 %201, label %202, label %207

202:                                              ; preds = %198
  %203 = load ptr, ptr %16, align 8, !tbaa !5
  %204 = load i8, ptr %203, align 1, !tbaa !9
  %205 = sext i8 %204 to i32
  %206 = icmp ne i32 %205, 61
  br label %207

207:                                              ; preds = %202, %198
  %208 = phi i1 [ false, %198 ], [ %206, %202 ]
  br i1 %208, label %209, label %222

209:                                              ; preds = %207
  %210 = load ptr, ptr %16, align 8, !tbaa !5
  %211 = load i8, ptr %210, align 1, !tbaa !9
  %212 = sext i8 %211 to i32
  %213 = call i32 @isspace(i32 noundef %212) #9
  %214 = icmp ne i32 %213, 0
  br i1 %214, label %218, label %215

215:                                              ; preds = %209
  %216 = load ptr, ptr %16, align 8, !tbaa !5
  %217 = getelementptr inbounds i8, ptr %216, i64 1
  store ptr %217, ptr %12, align 8, !tbaa !5
  br label %218

218:                                              ; preds = %215, %209
  br label %219

219:                                              ; preds = %218
  %220 = load ptr, ptr %16, align 8, !tbaa !5
  %221 = getelementptr inbounds i8, ptr %220, i32 1
  store ptr %221, ptr %16, align 8, !tbaa !5
  br label %198, !llvm.loop !20

222:                                              ; preds = %207
  %223 = load ptr, ptr %12, align 8, !tbaa !5
  store i8 0, ptr %223, align 1, !tbaa !9
  %224 = load ptr, ptr %16, align 8, !tbaa !5
  %225 = load i8, ptr %224, align 1, !tbaa !9
  %226 = icmp ne i8 %225, 0
  br i1 %226, label %227, label %232

227:                                              ; preds = %222
  %228 = load ptr, ptr %15, align 8, !tbaa !5
  %229 = getelementptr inbounds i8, ptr %228, i64 0
  %230 = load i8, ptr %229, align 1, !tbaa !9
  %231 = icmp ne i8 %230, 0
  br i1 %231, label %264, label %232

232:                                              ; preds = %227, %222
  %233 = load ptr, ptr %7, align 8, !tbaa !5
  %234 = icmp ne ptr %233, null
  br i1 %234, label %236, label %235

235:                                              ; preds = %232
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %13, align 4
  br label %683

236:                                              ; preds = %232
  call void @llvm.lifetime.start.p0(i64 32, ptr %17) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %19) #8
  %237 = load ptr, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %20) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef %237, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %238 unwind label %245

238:                                              ; preds = %236
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef @.str.12, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %239 unwind label %249

239:                                              ; preds = %238
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef @.str.13)
          to label %240 unwind label %253

240:                                              ; preds = %239
  %241 = load ptr, ptr %7, align 8, !tbaa !5
  %242 = getelementptr inbounds %"class.GIPS::Node", ptr %241, i32 0, i32 2
  %243 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %242, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %244 unwind label %257

244:                                              ; preds = %240
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #8
  store i32 2, ptr %13, align 4
  br label %683, !llvm.loop !17

245:                                              ; preds = %236
  %246 = landingpad { ptr, i32 }
          cleanup
  %247 = extractvalue { ptr, i32 } %246, 0
  store ptr %247, ptr %21, align 8
  %248 = extractvalue { ptr, i32 } %246, 1
  store i32 %248, ptr %22, align 4
  br label %263

249:                                              ; preds = %238
  %250 = landingpad { ptr, i32 }
          cleanup
  %251 = extractvalue { ptr, i32 } %250, 0
  store ptr %251, ptr %21, align 8
  %252 = extractvalue { ptr, i32 } %250, 1
  store i32 %252, ptr %22, align 4
  br label %262

253:                                              ; preds = %239
  %254 = landingpad { ptr, i32 }
          cleanup
  %255 = extractvalue { ptr, i32 } %254, 0
  store ptr %255, ptr %21, align 8
  %256 = extractvalue { ptr, i32 } %254, 1
  store i32 %256, ptr %22, align 4
  br label %261

257:                                              ; preds = %240
  %258 = landingpad { ptr, i32 }
          cleanup
  %259 = extractvalue { ptr, i32 } %258, 0
  store ptr %259, ptr %21, align 8
  %260 = extractvalue { ptr, i32 } %258, 1
  store i32 %260, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  br label %261

261:                                              ; preds = %257, %253
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  br label %262

262:                                              ; preds = %261, %249
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  br label %263

263:                                              ; preds = %262, %245
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #8
  br label %688

264:                                              ; preds = %227
  %265 = load ptr, ptr %16, align 8, !tbaa !5
  %266 = getelementptr inbounds i8, ptr %265, i32 1
  store ptr %266, ptr %16, align 8, !tbaa !5
  br label %267

267:                                              ; preds = %279, %264
  %268 = load ptr, ptr %16, align 8, !tbaa !5
  %269 = load i8, ptr %268, align 1, !tbaa !9
  %270 = icmp ne i8 %269, 0
  br i1 %270, label %271, label %277

271:                                              ; preds = %267
  %272 = load ptr, ptr %16, align 8, !tbaa !5
  %273 = load i8, ptr %272, align 1, !tbaa !9
  %274 = sext i8 %273 to i32
  %275 = call i32 @isspace(i32 noundef %274) #9
  %276 = icmp ne i32 %275, 0
  br label %277

277:                                              ; preds = %271, %267
  %278 = phi i1 [ false, %267 ], [ %276, %271 ]
  br i1 %278, label %279, label %282

279:                                              ; preds = %277
  %280 = load ptr, ptr %16, align 8, !tbaa !5
  %281 = getelementptr inbounds i8, ptr %280, i32 1
  store ptr %281, ptr %16, align 8, !tbaa !5
  br label %267, !llvm.loop !21

282:                                              ; preds = %277
  %283 = load ptr, ptr %16, align 8, !tbaa !5
  %284 = load i8, ptr %283, align 1, !tbaa !9
  %285 = icmp ne i8 %284, 0
  br i1 %285, label %318, label %286

286:                                              ; preds = %282
  %287 = load ptr, ptr %7, align 8, !tbaa !5
  %288 = icmp ne ptr %287, null
  br i1 %288, label %290, label %289

289:                                              ; preds = %286
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %13, align 4
  br label %683

290:                                              ; preds = %286
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #8
  %291 = load ptr, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef %291, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %292 unwind label %299

292:                                              ; preds = %290
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef @.str.14, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %293 unwind label %303

293:                                              ; preds = %292
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef @.str.13)
          to label %294 unwind label %307

294:                                              ; preds = %293
  %295 = load ptr, ptr %7, align 8, !tbaa !5
  %296 = getelementptr inbounds %"class.GIPS::Node", ptr %295, i32 0, i32 2
  %297 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %296, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %298 unwind label %311

298:                                              ; preds = %294
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #8
  store i32 2, ptr %13, align 4
  br label %683, !llvm.loop !17

299:                                              ; preds = %290
  %300 = landingpad { ptr, i32 }
          cleanup
  %301 = extractvalue { ptr, i32 } %300, 0
  store ptr %301, ptr %21, align 8
  %302 = extractvalue { ptr, i32 } %300, 1
  store i32 %302, ptr %22, align 4
  br label %317

303:                                              ; preds = %292
  %304 = landingpad { ptr, i32 }
          cleanup
  %305 = extractvalue { ptr, i32 } %304, 0
  store ptr %305, ptr %21, align 8
  %306 = extractvalue { ptr, i32 } %304, 1
  store i32 %306, ptr %22, align 4
  br label %316

307:                                              ; preds = %293
  %308 = landingpad { ptr, i32 }
          cleanup
  %309 = extractvalue { ptr, i32 } %308, 0
  store ptr %309, ptr %21, align 8
  %310 = extractvalue { ptr, i32 } %308, 1
  store i32 %310, ptr %22, align 4
  br label %315

311:                                              ; preds = %294
  %312 = landingpad { ptr, i32 }
          cleanup
  %313 = extractvalue { ptr, i32 } %312, 0
  store ptr %313, ptr %21, align 8
  %314 = extractvalue { ptr, i32 } %312, 1
  store i32 %314, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #8
  br label %315

315:                                              ; preds = %311, %307
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  br label %316

316:                                              ; preds = %315, %303
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  br label %317

317:                                              ; preds = %316, %299
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #8
  br label %688

318:                                              ; preds = %282
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #8
  store i32 0, ptr %27, align 4, !tbaa !12
  %319 = load ptr, ptr %16, align 8, !tbaa !5
  %320 = load i8, ptr %319, align 1, !tbaa !9
  %321 = sext i8 %320 to i32
  %322 = icmp eq i32 %321, 35
  br i1 %322, label %323, label %423

323:                                              ; preds = %318
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #8
  %324 = load ptr, ptr %16, align 8, !tbaa !5
  %325 = getelementptr inbounds i8, ptr %324, i64 1
  store ptr %325, ptr %28, align 8, !tbaa !5
  br label %326

326:                                              ; preds = %364, %323
  %327 = load i32, ptr %27, align 4, !tbaa !12
  %328 = icmp slt i32 %327, 4
  br i1 %328, label %329, label %365

329:                                              ; preds = %326
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #8
  %330 = load ptr, ptr %28, align 8, !tbaa !5
  %331 = getelementptr inbounds i8, ptr %330, i32 1
  store ptr %331, ptr %28, align 8, !tbaa !5
  %332 = load i8, ptr %330, align 1, !tbaa !9
  %333 = call noundef i32 @_ZN4GIPSL7hex2intEc(i8 noundef signext %332)
  store i32 %333, ptr %29, align 4, !tbaa !12
  %334 = load ptr, ptr %28, align 8, !tbaa !5
  %335 = load i8, ptr %334, align 1, !tbaa !9
  %336 = icmp ne i8 %335, 0
  br i1 %336, label %338, label %337

337:                                              ; preds = %329
  store i32 -1, ptr %27, align 4, !tbaa !12
  store i32 15, ptr %13, align 4
  br label %362

338:                                              ; preds = %329
  %339 = load i32, ptr %29, align 4, !tbaa !12
  %340 = shl i32 %339, 4
  %341 = load ptr, ptr %28, align 8, !tbaa !5
  %342 = getelementptr inbounds i8, ptr %341, i32 1
  store ptr %342, ptr %28, align 8, !tbaa !5
  %343 = load i8, ptr %341, align 1, !tbaa !9
  %344 = call noundef i32 @_ZN4GIPSL7hex2intEc(i8 noundef signext %343)
  %345 = or i32 %340, %344
  store i32 %345, ptr %29, align 4, !tbaa !12
  %346 = load i32, ptr %29, align 4, !tbaa !12
  %347 = icmp slt i32 %346, 0
  br i1 %347, label %348, label %349

348:                                              ; preds = %338
  store i32 -1, ptr %27, align 4, !tbaa !12
  store i32 15, ptr %13, align 4
  br label %362

349:                                              ; preds = %338
  %350 = load i32, ptr %29, align 4, !tbaa !12
  %351 = sitofp i32 %350 to float
  %352 = fdiv float %351, 2.550000e+02
  %353 = load i32, ptr %27, align 4, !tbaa !12
  %354 = add nsw i32 %353, 1
  store i32 %354, ptr %27, align 4, !tbaa !12
  %355 = sext i32 %353 to i64
  %356 = getelementptr inbounds [4 x float], ptr %9, i64 0, i64 %355
  store float %352, ptr %356, align 4, !tbaa !22
  %357 = load ptr, ptr %28, align 8, !tbaa !5
  %358 = load i8, ptr %357, align 1, !tbaa !9
  %359 = icmp ne i8 %358, 0
  br i1 %359, label %361, label %360

360:                                              ; preds = %349
  store i32 15, ptr %13, align 4
  br label %362

361:                                              ; preds = %349
  store i32 0, ptr %13, align 4
  br label %362

362:                                              ; preds = %361, %360, %348, %337
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #8
  %363 = load i32, ptr %13, align 4
  switch i32 %363, label %706 [
    i32 0, label %364
    i32 15, label %365
  ]

364:                                              ; preds = %362
  br label %326, !llvm.loop !24

365:                                              ; preds = %362, %326
  %366 = load i32, ptr %27, align 4, !tbaa !12
  %367 = icmp slt i32 %366, 3
  br i1 %367, label %372, label %368

368:                                              ; preds = %365
  %369 = load ptr, ptr %28, align 8, !tbaa !5
  %370 = load i8, ptr %369, align 1, !tbaa !9
  %371 = icmp ne i8 %370, 0
  br i1 %371, label %372, label %419

372:                                              ; preds = %368, %365
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %32) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #8
  %373 = load ptr, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef %373, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %374 unwind label %385

374:                                              ; preds = %372
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %33, ptr noundef @.str.15, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %375 unwind label %389

375:                                              ; preds = %374
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef @.str.16)
          to label %376 unwind label %393

376:                                              ; preds = %375
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #8
  %377 = load ptr, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %37) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef %377, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %378 unwind label %397

378:                                              ; preds = %376
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %31, ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %379 unwind label %401

379:                                              ; preds = %378
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef @.str.13)
          to label %380 unwind label %405

380:                                              ; preds = %379
  %381 = load ptr, ptr %7, align 8, !tbaa !5
  %382 = getelementptr inbounds %"class.GIPS::Node", ptr %381, i32 0, i32 2
  %383 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %382, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %384 unwind label %409

384:                                              ; preds = %380
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #8
  store i32 2, ptr %13, align 4
  br label %420, !llvm.loop !17

385:                                              ; preds = %372
  %386 = landingpad { ptr, i32 }
          cleanup
  %387 = extractvalue { ptr, i32 } %386, 0
  store ptr %387, ptr %21, align 8
  %388 = extractvalue { ptr, i32 } %386, 1
  store i32 %388, ptr %22, align 4
  br label %418

389:                                              ; preds = %374
  %390 = landingpad { ptr, i32 }
          cleanup
  %391 = extractvalue { ptr, i32 } %390, 0
  store ptr %391, ptr %21, align 8
  %392 = extractvalue { ptr, i32 } %390, 1
  store i32 %392, ptr %22, align 4
  br label %417

393:                                              ; preds = %375
  %394 = landingpad { ptr, i32 }
          cleanup
  %395 = extractvalue { ptr, i32 } %394, 0
  store ptr %395, ptr %21, align 8
  %396 = extractvalue { ptr, i32 } %394, 1
  store i32 %396, ptr %22, align 4
  br label %416

397:                                              ; preds = %376
  %398 = landingpad { ptr, i32 }
          cleanup
  %399 = extractvalue { ptr, i32 } %398, 0
  store ptr %399, ptr %21, align 8
  %400 = extractvalue { ptr, i32 } %398, 1
  store i32 %400, ptr %22, align 4
  br label %415

401:                                              ; preds = %378
  %402 = landingpad { ptr, i32 }
          cleanup
  %403 = extractvalue { ptr, i32 } %402, 0
  store ptr %403, ptr %21, align 8
  %404 = extractvalue { ptr, i32 } %402, 1
  store i32 %404, ptr %22, align 4
  br label %414

405:                                              ; preds = %379
  %406 = landingpad { ptr, i32 }
          cleanup
  %407 = extractvalue { ptr, i32 } %406, 0
  store ptr %407, ptr %21, align 8
  %408 = extractvalue { ptr, i32 } %406, 1
  store i32 %408, ptr %22, align 4
  br label %413

409:                                              ; preds = %380
  %410 = landingpad { ptr, i32 }
          cleanup
  %411 = extractvalue { ptr, i32 } %410, 0
  store ptr %411, ptr %21, align 8
  %412 = extractvalue { ptr, i32 } %410, 1
  store i32 %412, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  br label %413

413:                                              ; preds = %409, %405
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  br label %414

414:                                              ; preds = %413, %401
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #8
  br label %415

415:                                              ; preds = %414, %397
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #8
  br label %416

416:                                              ; preds = %415, %393
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #8
  br label %417

417:                                              ; preds = %416, %389
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #8
  br label %418

418:                                              ; preds = %417, %385
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  br label %687

419:                                              ; preds = %368
  store i32 0, ptr %13, align 4
  br label %420

420:                                              ; preds = %419, %384
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  %421 = load i32, ptr %13, align 4
  switch i32 %421, label %682 [
    i32 0, label %422
  ]

422:                                              ; preds = %420
  br label %550

423:                                              ; preds = %318
  br label %424

424:                                              ; preds = %466, %423
  %425 = load i32, ptr %27, align 4, !tbaa !12
  %426 = icmp slt i32 %425, 4
  br i1 %426, label %427, label %467

427:                                              ; preds = %424
  store ptr null, ptr %12, align 8, !tbaa !5
  %428 = load ptr, ptr %16, align 8, !tbaa !5
  %429 = call float @strtof(ptr noundef %428, ptr noundef %12) #8
  %430 = load i32, ptr %27, align 4, !tbaa !12
  %431 = sext i32 %430 to i64
  %432 = getelementptr inbounds [4 x float], ptr %9, i64 0, i64 %431
  store float %429, ptr %432, align 4, !tbaa !22
  %433 = load ptr, ptr %12, align 8, !tbaa !5
  %434 = icmp ne ptr %433, null
  br i1 %434, label %435, label %443

435:                                              ; preds = %427
  %436 = load ptr, ptr %12, align 8, !tbaa !5
  %437 = load i8, ptr %436, align 1, !tbaa !9
  %438 = icmp ne i8 %437, 0
  br i1 %438, label %439, label %444

439:                                              ; preds = %435
  %440 = load ptr, ptr %12, align 8, !tbaa !5
  %441 = load i8, ptr %440, align 1, !tbaa !9
  %442 = call noundef zeroext i1 @_ZN4GIPSL8isnumsepEc(i8 noundef signext %441)
  br i1 %442, label %444, label %443

443:                                              ; preds = %439, %427
  store i32 -1, ptr %27, align 4, !tbaa !12
  br label %467

444:                                              ; preds = %439, %435
  br label %445

445:                                              ; preds = %455, %444
  %446 = load ptr, ptr %12, align 8, !tbaa !5
  %447 = load i8, ptr %446, align 1, !tbaa !9
  %448 = icmp ne i8 %447, 0
  br i1 %448, label %449, label %453

449:                                              ; preds = %445
  %450 = load ptr, ptr %12, align 8, !tbaa !5
  %451 = load i8, ptr %450, align 1, !tbaa !9
  %452 = call noundef zeroext i1 @_ZN4GIPSL8isnumsepEc(i8 noundef signext %451)
  br label %453

453:                                              ; preds = %449, %445
  %454 = phi i1 [ false, %445 ], [ %452, %449 ]
  br i1 %454, label %455, label %458

455:                                              ; preds = %453
  %456 = load ptr, ptr %12, align 8, !tbaa !5
  %457 = getelementptr inbounds i8, ptr %456, i32 1
  store ptr %457, ptr %12, align 8, !tbaa !5
  br label %445, !llvm.loop !25

458:                                              ; preds = %453
  %459 = load ptr, ptr %12, align 8, !tbaa !5
  store ptr %459, ptr %16, align 8, !tbaa !5
  %460 = load i32, ptr %27, align 4, !tbaa !12
  %461 = add nsw i32 %460, 1
  store i32 %461, ptr %27, align 4, !tbaa !12
  %462 = load ptr, ptr %16, align 8, !tbaa !5
  %463 = load i8, ptr %462, align 1, !tbaa !9
  %464 = icmp ne i8 %463, 0
  br i1 %464, label %466, label %465

465:                                              ; preds = %458
  br label %467

466:                                              ; preds = %458
  br label %424, !llvm.loop !26

467:                                              ; preds = %465, %443, %424
  %468 = load i32, ptr %27, align 4, !tbaa !12
  %469 = icmp slt i32 %468, 0
  br i1 %469, label %470, label %517

470:                                              ; preds = %467
  call void @llvm.lifetime.start.p0(i64 32, ptr %38) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %39) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %42) #8
  %471 = load ptr, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef %471, ptr noundef nonnull align 1 dereferenceable(1) %43)
          to label %472 unwind label %483

472:                                              ; preds = %470
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef @.str.17, ptr noundef nonnull align 8 dereferenceable(32) %42)
          to label %473 unwind label %487

473:                                              ; preds = %472
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %40, ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef @.str.16)
          to label %474 unwind label %491

474:                                              ; preds = %473
  call void @llvm.lifetime.start.p0(i64 32, ptr %44) #8
  %475 = load ptr, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef %475, ptr noundef nonnull align 1 dereferenceable(1) %45)
          to label %476 unwind label %495

476:                                              ; preds = %474
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %39, ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull align 8 dereferenceable(32) %44)
          to label %477 unwind label %499

477:                                              ; preds = %476
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef @.str.13)
          to label %478 unwind label %503

478:                                              ; preds = %477
  %479 = load ptr, ptr %7, align 8, !tbaa !5
  %480 = getelementptr inbounds %"class.GIPS::Node", ptr %479, i32 0, i32 2
  %481 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %480, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %482 unwind label %507

482:                                              ; preds = %478
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #8
  store i32 2, ptr %13, align 4
  br label %682, !llvm.loop !17

483:                                              ; preds = %470
  %484 = landingpad { ptr, i32 }
          cleanup
  %485 = extractvalue { ptr, i32 } %484, 0
  store ptr %485, ptr %21, align 8
  %486 = extractvalue { ptr, i32 } %484, 1
  store i32 %486, ptr %22, align 4
  br label %516

487:                                              ; preds = %472
  %488 = landingpad { ptr, i32 }
          cleanup
  %489 = extractvalue { ptr, i32 } %488, 0
  store ptr %489, ptr %21, align 8
  %490 = extractvalue { ptr, i32 } %488, 1
  store i32 %490, ptr %22, align 4
  br label %515

491:                                              ; preds = %473
  %492 = landingpad { ptr, i32 }
          cleanup
  %493 = extractvalue { ptr, i32 } %492, 0
  store ptr %493, ptr %21, align 8
  %494 = extractvalue { ptr, i32 } %492, 1
  store i32 %494, ptr %22, align 4
  br label %514

495:                                              ; preds = %474
  %496 = landingpad { ptr, i32 }
          cleanup
  %497 = extractvalue { ptr, i32 } %496, 0
  store ptr %497, ptr %21, align 8
  %498 = extractvalue { ptr, i32 } %496, 1
  store i32 %498, ptr %22, align 4
  br label %513

499:                                              ; preds = %476
  %500 = landingpad { ptr, i32 }
          cleanup
  %501 = extractvalue { ptr, i32 } %500, 0
  store ptr %501, ptr %21, align 8
  %502 = extractvalue { ptr, i32 } %500, 1
  store i32 %502, ptr %22, align 4
  br label %512

503:                                              ; preds = %477
  %504 = landingpad { ptr, i32 }
          cleanup
  %505 = extractvalue { ptr, i32 } %504, 0
  store ptr %505, ptr %21, align 8
  %506 = extractvalue { ptr, i32 } %504, 1
  store i32 %506, ptr %22, align 4
  br label %511

507:                                              ; preds = %478
  %508 = landingpad { ptr, i32 }
          cleanup
  %509 = extractvalue { ptr, i32 } %508, 0
  store ptr %509, ptr %21, align 8
  %510 = extractvalue { ptr, i32 } %508, 1
  store i32 %510, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  br label %511

511:                                              ; preds = %507, %503
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  br label %512

512:                                              ; preds = %511, %499
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #8
  br label %513

513:                                              ; preds = %512, %495
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #8
  br label %514

514:                                              ; preds = %513, %491
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  br label %515

515:                                              ; preds = %514, %487
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #8
  br label %516

516:                                              ; preds = %515, %483
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #8
  br label %687

517:                                              ; preds = %467
  %518 = load ptr, ptr %16, align 8, !tbaa !5
  %519 = load i8, ptr %518, align 1, !tbaa !9
  %520 = icmp ne i8 %519, 0
  br i1 %520, label %521, label %549

521:                                              ; preds = %517
  call void @llvm.lifetime.start.p0(i64 32, ptr %46) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %48) #8
  %522 = load ptr, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef %522, ptr noundef nonnull align 1 dereferenceable(1) %49)
          to label %523 unwind label %530

523:                                              ; preds = %521
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %47, ptr noundef @.str.18, ptr noundef nonnull align 8 dereferenceable(32) %48)
          to label %524 unwind label %534

524:                                              ; preds = %523
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.13)
          to label %525 unwind label %538

525:                                              ; preds = %524
  %526 = load ptr, ptr %7, align 8, !tbaa !5
  %527 = getelementptr inbounds %"class.GIPS::Node", ptr %526, i32 0, i32 2
  %528 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %527, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %529 unwind label %542

529:                                              ; preds = %525
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #8
  br label %549

530:                                              ; preds = %521
  %531 = landingpad { ptr, i32 }
          cleanup
  %532 = extractvalue { ptr, i32 } %531, 0
  store ptr %532, ptr %21, align 8
  %533 = extractvalue { ptr, i32 } %531, 1
  store i32 %533, ptr %22, align 4
  br label %548

534:                                              ; preds = %523
  %535 = landingpad { ptr, i32 }
          cleanup
  %536 = extractvalue { ptr, i32 } %535, 0
  store ptr %536, ptr %21, align 8
  %537 = extractvalue { ptr, i32 } %535, 1
  store i32 %537, ptr %22, align 4
  br label %547

538:                                              ; preds = %524
  %539 = landingpad { ptr, i32 }
          cleanup
  %540 = extractvalue { ptr, i32 } %539, 0
  store ptr %540, ptr %21, align 8
  %541 = extractvalue { ptr, i32 } %539, 1
  store i32 %541, ptr %22, align 4
  br label %546

542:                                              ; preds = %525
  %543 = landingpad { ptr, i32 }
          cleanup
  %544 = extractvalue { ptr, i32 } %543, 0
  store ptr %544, ptr %21, align 8
  %545 = extractvalue { ptr, i32 } %543, 1
  store i32 %545, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  br label %546

546:                                              ; preds = %542, %538
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  br label %547

547:                                              ; preds = %546, %534
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  br label %548

548:                                              ; preds = %547, %530
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #8
  br label %687

549:                                              ; preds = %529, %517
  br label %550

550:                                              ; preds = %549, %422
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #8
  %551 = load ptr, ptr %7, align 8, !tbaa !5
  %552 = icmp ne ptr %551, null
  br i1 %552, label %553, label %557

553:                                              ; preds = %550
  %554 = load ptr, ptr %7, align 8, !tbaa !5
  %555 = load ptr, ptr %15, align 8, !tbaa !5
  %556 = call noundef ptr @_ZN4GIPS4Node9findParamEPKc(ptr noundef nonnull align 8 dereferenceable(348) %554, ptr noundef %555)
  br label %558

557:                                              ; preds = %550
  br label %558

558:                                              ; preds = %557, %553
  %559 = phi ptr [ %556, %553 ], [ null, %557 ]
  store ptr %559, ptr %50, align 8, !tbaa !5
  br label %560

560:                                              ; preds = %579, %558
  %561 = load i32, ptr %27, align 4, !tbaa !12
  %562 = icmp slt i32 %561, 4
  br i1 %562, label %563, label %582

563:                                              ; preds = %560
  %564 = load ptr, ptr %50, align 8, !tbaa !5
  %565 = icmp ne ptr %564, null
  br i1 %565, label %566, label %573

566:                                              ; preds = %563
  %567 = load ptr, ptr %50, align 8, !tbaa !5
  %568 = getelementptr inbounds %"class.GIPS::Parameter", ptr %567, i32 0, i32 9
  %569 = load i32, ptr %27, align 4, !tbaa !12
  %570 = sext i32 %569 to i64
  %571 = getelementptr inbounds [4 x float], ptr %568, i64 0, i64 %570
  %572 = load float, ptr %571, align 4, !tbaa !22
  br label %574

573:                                              ; preds = %563
  br label %574

574:                                              ; preds = %573, %566
  %575 = phi float [ %572, %566 ], [ 0.000000e+00, %573 ]
  %576 = load i32, ptr %27, align 4, !tbaa !12
  %577 = sext i32 %576 to i64
  %578 = getelementptr inbounds [4 x float], ptr %9, i64 0, i64 %577
  store float %575, ptr %578, align 4, !tbaa !22
  br label %579

579:                                              ; preds = %574
  %580 = load i32, ptr %27, align 4, !tbaa !12
  %581 = add nsw i32 %580, 1
  store i32 %581, ptr %27, align 4, !tbaa !12
  br label %560, !llvm.loop !27

582:                                              ; preds = %560
  %583 = load ptr, ptr %15, align 8, !tbaa !5
  %584 = call i32 @strcmp(ptr noundef %583, ptr noundef @.str.19) #9
  %585 = icmp ne i32 %584, 0
  br i1 %585, label %592, label %586

586:                                              ; preds = %582
  %587 = getelementptr inbounds [4 x float], ptr %9, i64 0, i64 0
  %588 = load float, ptr %587, align 16, !tbaa !22
  %589 = fcmp ogt float %588, 0.000000e+00
  br i1 %589, label %590, label %592

590:                                              ; preds = %586
  %591 = call noundef i32 @_ZNK4GIPS8Pipeline9nodeCountEv(ptr noundef nonnull align 8 dereferenceable(100) %56)
  store i32 %591, ptr %8, align 4, !tbaa !12
  store i32 2, ptr %13, align 4
  br label %681, !llvm.loop !17

592:                                              ; preds = %586, %582
  %593 = load ptr, ptr %7, align 8, !tbaa !5
  %594 = icmp ne ptr %593, null
  br i1 %594, label %611, label %595

595:                                              ; preds = %592
  %596 = load ptr, ptr %15, align 8, !tbaa !5
  %597 = call i32 @strcmp(ptr noundef %596, ptr noundef @.str.20) #9
  %598 = icmp ne i32 %597, 0
  br i1 %598, label %610, label %599

599:                                              ; preds = %595
  %600 = getelementptr inbounds [4 x float], ptr %9, i64 0, i64 0
  %601 = load float, ptr %600, align 16, !tbaa !22
  %602 = fsub float %601, 1.000000e+00
  %603 = call noundef float @_ZSt3absf(float noundef %602)
  %604 = fcmp olt float %603, 0x3EB0C6F7A0000000
  %605 = zext i1 %604 to i8
  store i8 %605, ptr %10, align 1, !tbaa !10
  %606 = load i8, ptr %10, align 1, !tbaa !10, !range !18, !noundef !19
  %607 = trunc i8 %606 to i1
  br i1 %607, label %609, label %608

608:                                              ; preds = %599
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %13, align 4
  br label %681

609:                                              ; preds = %599
  br label %610

610:                                              ; preds = %609, %595
  store i32 2, ptr %13, align 4
  br label %681, !llvm.loop !17

611:                                              ; preds = %592
  %612 = load ptr, ptr %15, align 8, !tbaa !5
  %613 = call i32 @strcmp(ptr noundef %612, ptr noundef @.str.21) #9
  %614 = icmp ne i32 %613, 0
  br i1 %614, label %615, label %623

615:                                              ; preds = %611
  %616 = load ptr, ptr %15, align 8, !tbaa !5
  %617 = call i32 @strcmp(ptr noundef %616, ptr noundef @.str.22) #9
  %618 = icmp ne i32 %617, 0
  br i1 %618, label %619, label %623

619:                                              ; preds = %615
  %620 = load ptr, ptr %15, align 8, !tbaa !5
  %621 = call i32 @strcmp(ptr noundef %620, ptr noundef @.str.23) #9
  %622 = icmp ne i32 %621, 0
  br i1 %622, label %630, label %623

623:                                              ; preds = %619, %615, %611
  %624 = getelementptr inbounds [4 x float], ptr %9, i64 0, i64 0
  %625 = load float, ptr %624, align 16, !tbaa !22
  %626 = fcmp ogt float %625, 5.000000e-01
  %627 = load ptr, ptr %7, align 8, !tbaa !5
  %628 = getelementptr inbounds %"class.GIPS::Node", ptr %627, i32 0, i32 8
  %629 = zext i1 %626 to i8
  store i8 %629, ptr %628, align 1, !tbaa !28
  store i32 2, ptr %13, align 4
  br label %681, !llvm.loop !17

630:                                              ; preds = %619
  %631 = load ptr, ptr %50, align 8, !tbaa !5
  %632 = icmp ne ptr %631, null
  br i1 %632, label %661, label %633

633:                                              ; preds = %630
  call void @llvm.lifetime.start.p0(i64 32, ptr %51) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %53) #8
  %634 = load ptr, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %54) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef %634, ptr noundef nonnull align 1 dereferenceable(1) %54)
          to label %635 unwind label %642

635:                                              ; preds = %633
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %52, ptr noundef @.str.24, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %636 unwind label %646

636:                                              ; preds = %635
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %51, ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef @.str.25)
          to label %637 unwind label %650

637:                                              ; preds = %636
  %638 = load ptr, ptr %7, align 8, !tbaa !5
  %639 = getelementptr inbounds %"class.GIPS::Node", ptr %638, i32 0, i32 2
  %640 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %639, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %641 unwind label %654

641:                                              ; preds = %637
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #8
  br label %680

642:                                              ; preds = %633
  %643 = landingpad { ptr, i32 }
          cleanup
  %644 = extractvalue { ptr, i32 } %643, 0
  store ptr %644, ptr %21, align 8
  %645 = extractvalue { ptr, i32 } %643, 1
  store i32 %645, ptr %22, align 4
  br label %660

646:                                              ; preds = %635
  %647 = landingpad { ptr, i32 }
          cleanup
  %648 = extractvalue { ptr, i32 } %647, 0
  store ptr %648, ptr %21, align 8
  %649 = extractvalue { ptr, i32 } %647, 1
  store i32 %649, ptr %22, align 4
  br label %659

650:                                              ; preds = %636
  %651 = landingpad { ptr, i32 }
          cleanup
  %652 = extractvalue { ptr, i32 } %651, 0
  store ptr %652, ptr %21, align 8
  %653 = extractvalue { ptr, i32 } %651, 1
  store i32 %653, ptr %22, align 4
  br label %658

654:                                              ; preds = %637
  %655 = landingpad { ptr, i32 }
          cleanup
  %656 = extractvalue { ptr, i32 } %655, 0
  store ptr %656, ptr %21, align 8
  %657 = extractvalue { ptr, i32 } %655, 1
  store i32 %657, ptr %22, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  br label %658

658:                                              ; preds = %654, %650
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  br label %659

659:                                              ; preds = %658, %646
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  br label %660

660:                                              ; preds = %659, %642
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #8
  br label %687

661:                                              ; preds = %630
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #8
  store i32 0, ptr %55, align 4, !tbaa !12
  br label %662

662:                                              ; preds = %676, %661
  %663 = load i32, ptr %55, align 4, !tbaa !12
  %664 = icmp slt i32 %663, 4
  br i1 %664, label %666, label %665

665:                                              ; preds = %662
  store i32 23, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #8
  br label %679

666:                                              ; preds = %662
  %667 = load i32, ptr %55, align 4, !tbaa !12
  %668 = sext i32 %667 to i64
  %669 = getelementptr inbounds [4 x float], ptr %9, i64 0, i64 %668
  %670 = load float, ptr %669, align 4, !tbaa !22
  %671 = load ptr, ptr %50, align 8, !tbaa !5
  %672 = getelementptr inbounds %"class.GIPS::Parameter", ptr %671, i32 0, i32 7
  %673 = load i32, ptr %55, align 4, !tbaa !12
  %674 = sext i32 %673 to i64
  %675 = getelementptr inbounds [4 x float], ptr %672, i64 0, i64 %674
  store float %670, ptr %675, align 4, !tbaa !22
  br label %676

676:                                              ; preds = %666
  %677 = load i32, ptr %55, align 4, !tbaa !12
  %678 = add nsw i32 %677, 1
  store i32 %678, ptr %55, align 4, !tbaa !12
  br label %662, !llvm.loop !39

679:                                              ; preds = %665
  br label %680

680:                                              ; preds = %679, %641
  store i32 0, ptr %13, align 4
  br label %681

681:                                              ; preds = %680, %623, %610, %608, %590
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #8
  br label %682

682:                                              ; preds = %681, %482, %420
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #8
  br label %683

683:                                              ; preds = %682, %298, %289, %244, %235
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #8
  br label %684

684:                                              ; preds = %683, %193, %186, %172, %165, %164, %140
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  %685 = load i32, ptr %13, align 4
  switch i32 %685, label %698 [
    i32 0, label %686
    i32 2, label %68
  ]

686:                                              ; preds = %684
  br label %68, !llvm.loop !17

687:                                              ; preds = %660, %548, %516, %418
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #8
  br label %688

688:                                              ; preds = %687, %317, %263
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %6) #8
  br label %701

689:                                              ; preds = %68
  %690 = load i32, ptr %8, align 4, !tbaa !12
  %691 = icmp sge i32 %690, 0
  br i1 %691, label %692, label %694

692:                                              ; preds = %689
  %693 = load i32, ptr %8, align 4, !tbaa !12
  br label %696

694:                                              ; preds = %689
  %695 = call noundef i32 @_ZNK4GIPS8Pipeline9nodeCountEv(ptr noundef nonnull align 8 dereferenceable(100) %56)
  br label %696

696:                                              ; preds = %694, %692
  %697 = phi i32 [ %693, %692 ], [ %695, %694 ]
  store i32 %697, ptr %3, align 4
  store i32 1, ptr %13, align 4
  br label %698

698:                                              ; preds = %696, %684
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %6) #8
  br label %699

699:                                              ; preds = %698, %64
  %700 = load i32, ptr %3, align 4
  ret i32 %700

701:                                              ; preds = %688
  %702 = load ptr, ptr %21, align 8
  %703 = load i32, ptr %22, align 4
  %704 = insertvalue { ptr, i32 } poison, ptr %702, 0
  %705 = insertvalue { ptr, i32 } %704, i32 %703, 1
  resume { ptr, i32 } %705

706:                                              ; preds = %362
  unreachable
}

; Function Attrs: nounwind willreturn memory(read)
declare i32 @isspace(i32 noundef) #3

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

declare void @_ZN4GIPS8Pipeline5clearEv(ptr noundef nonnull align 8 dereferenceable(100)) #4

declare noundef ptr @_ZN3VFS11getFullPathEPKc(ptr noundef) #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZN4GIPS8Pipeline7addNodeEPKci(ptr noundef nonnull align 8 dereferenceable(100), ptr noundef, i32 noundef) #5 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(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 #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef i32 @_ZN4GIPSL7hex2intEc(i8 noundef signext) #6

; 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)) #5

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZN4GIPSL8isnumsepEc(i8 noundef signext) #7

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4GIPS8Pipeline9nodeCountEv(ptr noundef nonnull align 8 dereferenceable(100)) #7 align 2

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

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

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

!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 = !{!7, !7, i64 0}
!10 = !{!11, !11, i64 0}
!11 = !{!"bool", !7, i64 0}
!12 = !{!13, !13, i64 0}
!13 = !{!"int", !7, i64 0}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}
!16 = distinct !{!16, !15}
!17 = distinct !{!17, !15}
!18 = !{i8 0, i8 2}
!19 = !{}
!20 = distinct !{!20, !15}
!21 = distinct !{!21, !15}
!22 = !{!23, !23, i64 0}
!23 = !{!"float", !7, i64 0}
!24 = distinct !{!24, !15}
!25 = distinct !{!25, !15}
!26 = distinct !{!26, !15}
!27 = distinct !{!27, !15}
!28 = !{!29, !11, i64 321}
!29 = !{!"_ZTSN4GIPS4NodeE", !30, i64 0, !30, i64 32, !30, i64 64, !13, i64 96, !7, i64 104, !33, i64 296, !11, i64 320, !11, i64 321, !11, i64 322, !37, i64 328, !38, i64 344}
!30 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !31, i64 0, !32, i64 8, !7, i64 16}
!31 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!32 = !{!"long", !7, i64 0}
!33 = !{!"_ZTSSt6vectorIN4GIPS9ParameterESaIS1_EE", !34, i64 0}
!34 = !{!"_ZTSSt12_Vector_baseIN4GIPS9ParameterESaIS1_EE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseIN4GIPS9ParameterESaIS1_EE12_Vector_implE", !36, i64 0}
!36 = !{!"_ZTSNSt12_Vector_baseIN4GIPS9ParameterESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!37 = !{!"_ZTSN8FileUtil15FileFingerprintE", !32, i64 0, !32, i64 8}
!38 = !{!"_ZTSN4GIPS11PixelFormatE", !7, i64 0}
!39 = distinct !{!39, !15}


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

%"class.std::__cxx11::basic_string" = 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::allocator" = type { i8 }

@stderr = external local_unnamed_addr global ptr, align 8
@.str.9 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [20 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN4GIPS8Pipeline11unserializeEPc(ptr noundef nonnull align 8 dereferenceable(100) %0, ptr noundef %1) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca [4 x float], align 16
  %4 = alloca ptr, align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::allocator", align 1
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::allocator", align 1
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::allocator", align 1
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::allocator", align 1
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator", align 1
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::allocator", align 1
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator", align 1
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::allocator", align 1
  %.not = icmp eq ptr %1, null
  br i1 %.not, label %370, label %37

37:                                               ; preds = %2
  %38 = load i8, ptr %1, align 1, !tbaa !5
  %.not217 = icmp eq i8 %38, 0
  br i1 %.not217, label %370, label %39

39:                                               ; preds = %37
  %40 = load ptr, ptr @stderr, align 8, !tbaa !8
  %41 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %40, ptr noundef nonnull @.str.9) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) #13
  %42 = load i8, ptr %1, align 1, !tbaa !5
  %.not218374 = icmp eq i8 %42, 0
  br i1 %.not218374, label %._crit_edge384.thread, label %.preheader323.preheader

.preheader323.preheader:                          ; preds = %39
  %43 = getelementptr inbounds i8, ptr %3, i64 4
  %44 = getelementptr inbounds i8, ptr %3, i64 8
  %45 = getelementptr inbounds i8, ptr %3, i64 12
  br label %.preheader323

.preheader323:                                    ; preds = %.preheader323.preheader, %select.unfold313
  %46 = phi i8 [ %365, %select.unfold313 ], [ %42, %.preheader323.preheader ]
  %.0174383 = phi ptr [ %spec.select, %select.unfold313 ], [ %1, %.preheader323.preheader ]
  %.0178381 = phi i8 [ %.1179, %select.unfold313 ], [ 1, %.preheader323.preheader ]
  %.0186379 = phi i1 [ %.5191, %select.unfold313 ], [ false, %.preheader323.preheader ]
  %.0192377 = phi i32 [ %.4196, %select.unfold313 ], [ -1, %.preheader323.preheader ]
  %.0197375 = phi ptr [ %.1198, %select.unfold313 ], [ null, %.preheader323.preheader ]
  br label %47

47:                                               ; preds = %.preheader323, %.critedge
  %48 = phi i8 [ %.pr, %.critedge ], [ %46, %.preheader323 ]
  %.1175 = phi ptr [ %49, %.critedge ], [ %.0174383, %.preheader323 ]
  switch i8 %48, label %50 [
    i8 32, label %.critedge
    i8 9, label %.critedge
  ]

.critedge:                                        ; preds = %47, %47
  %49 = getelementptr inbounds i8, ptr %.1175, i64 1
  %.pr = load i8, ptr %49, align 1, !tbaa !5
  br label %47, !llvm.loop !10

50:                                               ; preds = %47
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #13
  store ptr %.1175, ptr %4, align 8, !tbaa !8
  br label %51

51:                                               ; preds = %59, %50
  %52 = phi ptr [ %.1175, %50 ], [ %60, %59 ]
  %.2176 = phi ptr [ %.1175, %50 ], [ %61, %59 ]
  %53 = load i8, ptr %.2176, align 1, !tbaa !5
  switch i8 %53, label %54 [
    i8 0, label %.critedge2
    i8 10, label %.critedge2
  ]

54:                                               ; preds = %51
  %55 = sext i8 %53 to i32
  %56 = call i32 @isspace(i32 noundef %55) #14
  %.not281 = icmp eq i32 %56, 0
  br i1 %.not281, label %57, label %59

57:                                               ; preds = %54
  %58 = getelementptr inbounds i8, ptr %.2176, i64 1
  store ptr %58, ptr %4, align 8, !tbaa !8
  br label %59

59:                                               ; preds = %54, %57
  %60 = phi ptr [ %52, %54 ], [ %58, %57 ]
  %61 = getelementptr inbounds i8, ptr %.2176, i64 1
  br label %51, !llvm.loop !12

.critedge2:                                       ; preds = %51, %51
  store i8 0, ptr %52, align 1, !tbaa !5
  %62 = load i8, ptr %.2176, align 1, !tbaa !5
  %.not221 = icmp ne i8 %62, 0
  %spec.select.idx = zext i1 %.not221 to i64
  %spec.select = getelementptr inbounds i8, ptr %.2176, i64 %spec.select.idx
  %63 = load i8, ptr %.1175, align 1, !tbaa !5
  switch i8 %63, label %82 [
    i8 0, label %select.unfold313
    i8 59, label %select.unfold313
    i8 35, label %select.unfold313
    i8 91, label %64
  ]

64:                                               ; preds = %.critedge2
  %65 = getelementptr inbounds i8, ptr %52, i64 -1
  %66 = load i8, ptr %65, align 1, !tbaa !5
  %67 = icmp eq i8 %66, 93
  br i1 %67, label %68, label %82

68:                                               ; preds = %64
  store i8 0, ptr %65, align 1, !tbaa !5
  %69 = getelementptr inbounds i8, ptr %.1175, i64 1
  %70 = trunc nuw i8 %.0178381 to i1
  br i1 %70, label %71, label %73

71:                                               ; preds = %68
  %72 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %69, ptr noundef nonnull dereferenceable(1) @.str.10) #14
  %.not280 = icmp eq i32 %72, 0
  br i1 %.not280, label %select.unfold313, label %.thread315, !llvm.loop !13

73:                                               ; preds = %68
  %.not278 = icmp eq ptr %.0197375, null
  br i1 %.not278, label %74, label %76

74:                                               ; preds = %73
  br i1 %.0186379, label %75, label %.thread315

75:                                               ; preds = %74
  call void @_ZN4GIPS8Pipeline5clearEv(ptr noundef nonnull align 8 dereferenceable(100) %0)
  br label %76

76:                                               ; preds = %75, %73
  %77 = load ptr, ptr @stderr, align 8, !tbaa !8
  %78 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %77, ptr noundef nonnull @.str.11, ptr noundef nonnull %69) #12
  %79 = call noundef ptr @_ZN3VFS11getFullPathEPKc(ptr noundef nonnull %69)
  %.not279 = icmp eq ptr %79, null
  %80 = select i1 %.not279, ptr %69, ptr %79
  %81 = call noundef ptr @_ZN4GIPS8Pipeline7addNodeEPKci(ptr noundef nonnull align 8 dereferenceable(100) %0, ptr noundef nonnull %80, i32 noundef -1)
  call void @free(ptr noundef %79) #13
  br label %select.unfold313

82:                                               ; preds = %.critedge2, %64
  %83 = trunc nuw i8 %.0178381 to i1
  br i1 %83, label %.thread315, label %84

84:                                               ; preds = %82
  store ptr %.1175, ptr %4, align 8, !tbaa !8
  br label %85

85:                                               ; preds = %93, %84
  %86 = phi ptr [ %.1175, %84 ], [ %94, %93 ]
  %.0170 = phi ptr [ %.1175, %84 ], [ %95, %93 ]
  %87 = load i8, ptr %.0170, align 1, !tbaa !5
  switch i8 %87, label %88 [
    i8 0, label %.critedge4
    i8 61, label %.critedge4
  ]

88:                                               ; preds = %85
  %89 = sext i8 %87 to i32
  %90 = call i32 @isspace(i32 noundef %89) #14
  %.not277 = icmp eq i32 %90, 0
  br i1 %.not277, label %91, label %93

91:                                               ; preds = %88
  %92 = getelementptr inbounds i8, ptr %.0170, i64 1
  store ptr %92, ptr %4, align 8, !tbaa !8
  br label %93

93:                                               ; preds = %88, %91
  %94 = phi ptr [ %86, %88 ], [ %92, %91 ]
  %95 = getelementptr inbounds i8, ptr %.0170, i64 1
  br label %85, !llvm.loop !14

.critedge4:                                       ; preds = %85, %85
  store i8 0, ptr %86, align 1, !tbaa !5
  %96 = load i8, ptr %.0170, align 1, !tbaa !5
  %.not225 = icmp eq i8 %96, 0
  br i1 %.not225, label %99, label %97

97:                                               ; preds = %.critedge4
  %98 = load i8, ptr %.1175, align 1, !tbaa !5
  %.not226 = icmp eq i8 %98, 0
  br i1 %.not226, label %99, label %.preheader322

99:                                               ; preds = %97, %.critedge4
  %.not227 = icmp eq ptr %.0197375, null
  br i1 %.not227, label %.thread315, label %100

100:                                              ; preds = %99
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #13
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #13
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull %.1175, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %101 unwind label %107

101:                                              ; preds = %100
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %6, ptr noundef nonnull @.str.12, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %102 unwind label %109

102:                                              ; preds = %101
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %5, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.13)
          to label %103 unwind label %111

103:                                              ; preds = %102
  %104 = getelementptr inbounds i8, ptr %.0197375, i64 64
  %105 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %104, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %106 unwind label %113

106:                                              ; preds = %103
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #13
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #13
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #13
  br label %select.unfold313, !llvm.loop !13

107:                                              ; preds = %100
  %108 = landingpad { ptr, i32 }
          cleanup
  br label %117

109:                                              ; preds = %101
  %110 = landingpad { ptr, i32 }
          cleanup
  br label %116

111:                                              ; preds = %102
  %112 = landingpad { ptr, i32 }
          cleanup
  br label %115

113:                                              ; preds = %103
  %114 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #13
  br label %115

115:                                              ; preds = %113, %111
  %.pn = phi { ptr, i32 } [ %114, %113 ], [ %112, %111 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #13
  br label %116

116:                                              ; preds = %115, %109
  %.pn.pn = phi { ptr, i32 } [ %.pn, %115 ], [ %110, %109 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #13
  br label %117

117:                                              ; preds = %116, %107
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %116 ], [ %108, %107 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #13
  br label %366

.preheader322:                                    ; preds = %97, %119
  %.0170.pn = phi ptr [ %.1171, %119 ], [ %.0170, %97 ]
  %.1171 = getelementptr inbounds i8, ptr %.0170.pn, i64 1
  %118 = load i8, ptr %.1171, align 1, !tbaa !5
  %.not231 = icmp eq i8 %118, 0
  br i1 %.not231, label %.critedge6.thread, label %119

119:                                              ; preds = %.preheader322
  %120 = sext i8 %118 to i32
  %121 = call i32 @isspace(i32 noundef %120) #14
  %.not232 = icmp eq i32 %121, 0
  br i1 %.not232, label %.critedge6, label %.preheader322, !llvm.loop !15

.critedge6:                                       ; preds = %119
  %cond = icmp eq i8 %118, 35
  br i1 %cond, label %140, label %.preheader321

.critedge6.thread:                                ; preds = %.preheader322
  %.not234 = icmp eq ptr %.0197375, null
  br i1 %.not234, label %.thread315, label %122

122:                                              ; preds = %.critedge6.thread
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #13
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #13
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull %.1171, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %123 unwind label %129

123:                                              ; preds = %122
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull @.str.14, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %124 unwind label %131

124:                                              ; preds = %123
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull @.str.13)
          to label %125 unwind label %133

125:                                              ; preds = %124
  %126 = getelementptr inbounds i8, ptr %.0197375, i64 64
  %127 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %126, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %128 unwind label %135

128:                                              ; preds = %125
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #13
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #13
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #13
  br label %select.unfold313, !llvm.loop !13

129:                                              ; preds = %122
  %130 = landingpad { ptr, i32 }
          cleanup
  br label %139

131:                                              ; preds = %123
  %132 = landingpad { ptr, i32 }
          cleanup
  br label %138

133:                                              ; preds = %124
  %134 = landingpad { ptr, i32 }
          cleanup
  br label %137

135:                                              ; preds = %125
  %136 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #13
  br label %137

137:                                              ; preds = %135, %133
  %.pn235 = phi { ptr, i32 } [ %136, %135 ], [ %134, %133 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #13
  br label %138

138:                                              ; preds = %137, %131
  %.pn235.pn = phi { ptr, i32 } [ %.pn235, %137 ], [ %132, %131 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #13
  br label %139

139:                                              ; preds = %138, %129
  %.pn235.pn.pn = phi { ptr, i32 } [ %.pn235.pn, %138 ], [ %130, %129 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #13
  br label %366

140:                                              ; preds = %.critedge6
  %141 = getelementptr inbounds i8, ptr %.0170.pn, i64 2
  %142 = getelementptr inbounds i8, ptr %.0170.pn, i64 3
  %143 = load i8, ptr %141, align 1, !tbaa !5
  %144 = call noundef i32 @_ZN4GIPSL7hex2intEc(i8 noundef signext %143)
  %145 = load i8, ptr %142, align 1, !tbaa !5
  %.not254 = icmp eq i8 %145, 0
  br i1 %.not254, label %.thread295, label %146

146:                                              ; preds = %140
  %147 = shl i32 %144, 4
  %148 = call noundef i32 @_ZN4GIPSL7hex2intEc(i8 noundef signext %145)
  %149 = or i32 %148, %147
  %150 = icmp slt i32 %149, 0
  br i1 %150, label %.thread295, label %151

151:                                              ; preds = %146
  %152 = getelementptr inbounds i8, ptr %.0170.pn, i64 4
  %153 = uitofp nneg i32 %149 to float
  %154 = fdiv float %153, 2.550000e+02
  store float %154, ptr %3, align 16, !tbaa !16
  %155 = load i8, ptr %152, align 1, !tbaa !5
  %.not255 = icmp eq i8 %155, 0
  br i1 %.not255, label %.thread295, label %156

156:                                              ; preds = %151
  %157 = getelementptr inbounds i8, ptr %.0170.pn, i64 5
  %158 = call noundef i32 @_ZN4GIPSL7hex2intEc(i8 noundef signext %155)
  %159 = load i8, ptr %157, align 1, !tbaa !5
  %.not254.1 = icmp eq i8 %159, 0
  br i1 %.not254.1, label %.thread295, label %160

160:                                              ; preds = %156
  %161 = shl i32 %158, 4
  %162 = call noundef i32 @_ZN4GIPSL7hex2intEc(i8 noundef signext %159)
  %163 = or i32 %162, %161
  %164 = icmp slt i32 %163, 0
  br i1 %164, label %.thread295, label %165

165:                                              ; preds = %160
  %166 = getelementptr inbounds i8, ptr %.0170.pn, i64 6
  %167 = uitofp nneg i32 %163 to float
  %168 = fdiv float %167, 2.550000e+02
  store float %168, ptr %43, align 4, !tbaa !16
  %169 = load i8, ptr %166, align 1, !tbaa !5
  %.not255.1 = icmp eq i8 %169, 0
  br i1 %.not255.1, label %.thread295, label %170

170:                                              ; preds = %165
  %171 = getelementptr inbounds i8, ptr %.0170.pn, i64 7
  %172 = call noundef i32 @_ZN4GIPSL7hex2intEc(i8 noundef signext %169)
  %173 = load i8, ptr %171, align 1, !tbaa !5
  %.not254.2 = icmp eq i8 %173, 0
  br i1 %.not254.2, label %.thread295, label %174

174:                                              ; preds = %170
  %175 = shl i32 %172, 4
  %176 = call noundef i32 @_ZN4GIPSL7hex2intEc(i8 noundef signext %173)
  %177 = or i32 %176, %175
  %178 = icmp slt i32 %177, 0
  br i1 %178, label %.thread295, label %179

179:                                              ; preds = %174
  %180 = getelementptr inbounds i8, ptr %.0170.pn, i64 8
  %181 = uitofp nneg i32 %177 to float
  %182 = fdiv float %181, 2.550000e+02
  store float %182, ptr %44, align 8, !tbaa !16
  %183 = load i8, ptr %180, align 1, !tbaa !5
  %.not255.2 = icmp eq i8 %183, 0
  br i1 %.not255.2, label %.thread304, label %184

184:                                              ; preds = %179
  %185 = getelementptr inbounds i8, ptr %.0170.pn, i64 9
  %186 = call noundef i32 @_ZN4GIPSL7hex2intEc(i8 noundef signext %183)
  %187 = load i8, ptr %185, align 1, !tbaa !5
  %.not254.3 = icmp eq i8 %187, 0
  br i1 %.not254.3, label %.thread295, label %188

188:                                              ; preds = %184
  %189 = shl i32 %186, 4
  %190 = call noundef i32 @_ZN4GIPSL7hex2intEc(i8 noundef signext %187)
  %191 = or i32 %190, %189
  %192 = icmp slt i32 %191, 0
  br i1 %192, label %.thread295, label %193

193:                                              ; preds = %188
  %194 = getelementptr inbounds i8, ptr %.0170.pn, i64 10
  %195 = uitofp nneg i32 %191 to float
  %196 = fdiv float %195, 2.550000e+02
  store float %196, ptr %45, align 4, !tbaa !16
  %197 = load i8, ptr %194, align 1, !tbaa !5
  %.not255.3 = icmp eq i8 %197, 0
  br i1 %.not255.3, label %.thread304, label %.thread295

.thread295:                                       ; preds = %165, %151, %140, %146, %156, %160, %170, %174, %184, %188, %193
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #13
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #13
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #13
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #13
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %18) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull %.1171, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %198 unwind label %206

198:                                              ; preds = %.thread295
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull @.str.15, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %199 unwind label %208

199:                                              ; preds = %198
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull @.str.16)
          to label %200 unwind label %210

200:                                              ; preds = %199
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull %.1175, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %201 unwind label %212

201:                                              ; preds = %200
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %202 unwind label %214

202:                                              ; preds = %201
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.13)
          to label %203 unwind label %216

203:                                              ; preds = %202
  %204 = getelementptr inbounds i8, ptr %.0197375, i64 64
  %205 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %204, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %226 unwind label %218

206:                                              ; preds = %.thread295
  %207 = landingpad { ptr, i32 }
          cleanup
  br label %225

208:                                              ; preds = %198
  %209 = landingpad { ptr, i32 }
          cleanup
  br label %224

210:                                              ; preds = %199
  %211 = landingpad { ptr, i32 }
          cleanup
  br label %223

212:                                              ; preds = %200
  %213 = landingpad { ptr, i32 }
          cleanup
  br label %222

214:                                              ; preds = %201
  %215 = landingpad { ptr, i32 }
          cleanup
  br label %221

216:                                              ; preds = %202
  %217 = landingpad { ptr, i32 }
          cleanup
  br label %220

218:                                              ; preds = %203
  %219 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #13
  br label %220

220:                                              ; preds = %218, %216
  %.pn257 = phi { ptr, i32 } [ %219, %218 ], [ %217, %216 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #13
  br label %221

221:                                              ; preds = %220, %214
  %.pn257.pn = phi { ptr, i32 } [ %.pn257, %220 ], [ %215, %214 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #13
  br label %222

222:                                              ; preds = %221, %212
  %.pn257.pn.pn = phi { ptr, i32 } [ %.pn257.pn, %221 ], [ %213, %212 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #13
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #13
  br label %223

223:                                              ; preds = %222, %210
  %.pn257.pn.pn.pn = phi { ptr, i32 } [ %.pn257.pn.pn, %222 ], [ %211, %210 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #13
  br label %224

224:                                              ; preds = %223, %208
  %.pn257.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn257.pn.pn.pn, %223 ], [ %209, %208 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #13
  br label %225

225:                                              ; preds = %224, %206
  %.pn257.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn257.pn.pn.pn.pn, %224 ], [ %207, %206 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #13
  br label %366

226:                                              ; preds = %203
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #13
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #13
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #13
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #13
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #13
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #13
  br label %select.unfold313

.preheader321:                                    ; preds = %.critedge6, %.critedge8
  %indvars.iv = phi i64 [ %indvars.iv.next, %.critedge8 ], [ 0, %.critedge6 ]
  %.2172 = phi ptr [ %.lcssa365, %.critedge8 ], [ %.1171, %.critedge6 ]
  store ptr null, ptr %4, align 8, !tbaa !8
  %227 = call float @strtof(ptr noundef nonnull %.2172, ptr noundef nonnull %4) #13
  %228 = getelementptr inbounds [4 x float], ptr %3, i64 0, i64 %indvars.iv
  store float %227, ptr %228, align 4, !tbaa !16
  %229 = load ptr, ptr %4, align 8, !tbaa !8
  %.not239 = icmp eq ptr %229, null
  br i1 %.not239, label %244, label %230

230:                                              ; preds = %.preheader321
  %231 = load i8, ptr %229, align 1, !tbaa !5
  %.not240 = icmp eq i8 %231, 0
  br i1 %.not240, label %.critedge8, label %232

232:                                              ; preds = %230
  %233 = call noundef zeroext i1 @_ZN4GIPSL8isnumsepEc(i8 noundef signext %231)
  br i1 %233, label %234, label %244

234:                                              ; preds = %232
  %.pre = load i8, ptr %229, align 1, !tbaa !5
  %.not241366 = icmp eq i8 %.pre, 0
  br i1 %.not241366, label %.critedge8, label %.lr.ph

.lr.ph:                                           ; preds = %234, %238
  %235 = phi i8 [ %240, %238 ], [ %.pre, %234 ]
  %236 = phi ptr [ %239, %238 ], [ %229, %234 ]
  %237 = call noundef zeroext i1 @_ZN4GIPSL8isnumsepEc(i8 noundef signext %235)
  br i1 %237, label %238, label %.critedge8

238:                                              ; preds = %.lr.ph
  %239 = getelementptr inbounds i8, ptr %236, i64 1
  %240 = load i8, ptr %239, align 1, !tbaa !5
  %.not241 = icmp eq i8 %240, 0
  br i1 %.not241, label %.critedge8, label %.lr.ph, !llvm.loop !18

.critedge8:                                       ; preds = %.lr.ph, %238, %230, %234
  %.lcssa365 = phi ptr [ %229, %234 ], [ %229, %230 ], [ %239, %238 ], [ %236, %.lr.ph ]
  store ptr %.lcssa365, ptr %4, align 8, !tbaa !8
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %241 = load i8, ptr %.lcssa365, align 1, !tbaa !5
  %242 = icmp ne i8 %241, 0
  %243 = icmp ult i64 %indvars.iv, 3
  %or.cond12 = and i1 %243, %242
  br i1 %or.cond12, label %.preheader321, label %274, !llvm.loop !19

244:                                              ; preds = %232, %.preheader321
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #13
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #13
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #13
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #13
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull %.2172, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %245 unwind label %254

245:                                              ; preds = %244
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef nonnull @.str.17, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %246 unwind label %256

246:                                              ; preds = %245
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull @.str.16)
          to label %247 unwind label %258

247:                                              ; preds = %246
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %28) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull %.1175, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %248 unwind label %260

248:                                              ; preds = %247
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %249 unwind label %262

249:                                              ; preds = %248
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull @.str.13)
          to label %250 unwind label %264

250:                                              ; preds = %249
  %251 = getelementptr inbounds i8, ptr %.0197375, i64 64
  %252 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %251, ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %253 unwind label %266

253:                                              ; preds = %250
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #13
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #13
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #13
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #13
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #13
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #13
  br label %select.unfold313, !llvm.loop !13

254:                                              ; preds = %244
  %255 = landingpad { ptr, i32 }
          cleanup
  br label %273

256:                                              ; preds = %245
  %257 = landingpad { ptr, i32 }
          cleanup
  br label %272

258:                                              ; preds = %246
  %259 = landingpad { ptr, i32 }
          cleanup
  br label %271

260:                                              ; preds = %247
  %261 = landingpad { ptr, i32 }
          cleanup
  br label %270

262:                                              ; preds = %248
  %263 = landingpad { ptr, i32 }
          cleanup
  br label %269

264:                                              ; preds = %249
  %265 = landingpad { ptr, i32 }
          cleanup
  br label %268

266:                                              ; preds = %250
  %267 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #13
  br label %268

268:                                              ; preds = %266, %264
  %.pn247 = phi { ptr, i32 } [ %267, %266 ], [ %265, %264 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #13
  br label %269

269:                                              ; preds = %268, %262
  %.pn247.pn = phi { ptr, i32 } [ %.pn247, %268 ], [ %263, %262 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #13
  br label %270

270:                                              ; preds = %269, %260
  %.pn247.pn.pn = phi { ptr, i32 } [ %.pn247.pn, %269 ], [ %261, %260 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #13
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #13
  br label %271

271:                                              ; preds = %270, %258
  %.pn247.pn.pn.pn = phi { ptr, i32 } [ %.pn247.pn.pn, %270 ], [ %259, %258 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #13
  br label %272

272:                                              ; preds = %271, %256
  %.pn247.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn247.pn.pn.pn, %271 ], [ %257, %256 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #13
  br label %273

273:                                              ; preds = %272, %254
  %.pn247.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn247.pn.pn.pn.pn, %272 ], [ %255, %254 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #13
  br label %366

274:                                              ; preds = %.critedge8
  %275 = trunc nuw nsw i64 %indvars.iv.next to i32
  %.not242 = icmp eq i8 %241, 0
  br i1 %.not242, label %.thread304, label %276

276:                                              ; preds = %274
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #13
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #13
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull %.1175, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %277 unwind label %283

277:                                              ; preds = %276
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull @.str.18, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %278 unwind label %285

278:                                              ; preds = %277
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull @.str.13)
          to label %279 unwind label %287

279:                                              ; preds = %278
  %280 = getelementptr inbounds i8, ptr %.0197375, i64 64
  %281 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %280, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %282 unwind label %289

282:                                              ; preds = %279
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #13
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #13
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #13
  br label %.thread304

283:                                              ; preds = %276
  %284 = landingpad { ptr, i32 }
          cleanup
  br label %293

285:                                              ; preds = %277
  %286 = landingpad { ptr, i32 }
          cleanup
  br label %292

287:                                              ; preds = %278
  %288 = landingpad { ptr, i32 }
          cleanup
  br label %291

289:                                              ; preds = %279
  %290 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #13
  br label %291

291:                                              ; preds = %289, %287
  %.pn243 = phi { ptr, i32 } [ %290, %289 ], [ %288, %287 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #13
  br label %292

292:                                              ; preds = %291, %285
  %.pn243.pn = phi { ptr, i32 } [ %.pn243, %291 ], [ %286, %285 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #13
  br label %293

293:                                              ; preds = %292, %283
  %.pn243.pn.pn = phi { ptr, i32 } [ %.pn243.pn, %292 ], [ %284, %283 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #13
  br label %366

.thread304:                                       ; preds = %179, %193, %274, %282
  %.5135 = phi i32 [ %275, %282 ], [ %275, %274 ], [ 3, %179 ], [ 4, %193 ]
  %.not264 = icmp eq ptr %.0197375, null
  br i1 %.not264, label %296, label %294

294:                                              ; preds = %.thread304
  %295 = call noundef ptr @_ZN4GIPS4Node9findParamEPKc(ptr noundef nonnull align 8 dereferenceable(348) %.0197375, ptr noundef nonnull %.1175)
  br label %296

296:                                              ; preds = %.thread304, %294
  %297 = phi ptr [ %295, %294 ], [ null, %.thread304 ]
  %298 = icmp slt i32 %.5135, 4
  br i1 %298, label %.lr.ph372, label %._crit_edge

.lr.ph372:                                        ; preds = %296
  %.not276 = icmp eq ptr %297, null
  %299 = getelementptr inbounds i8, ptr %297, i64 144
  %300 = zext nneg i32 %.5135 to i64
  br i1 %.not276, label %304, label %301

301:                                              ; preds = %.lr.ph372
  %302 = getelementptr inbounds [4 x float], ptr %299, i64 0, i64 %300
  %303 = load float, ptr %302, align 4, !tbaa !16
  br label %304

304:                                              ; preds = %.lr.ph372, %301
  %305 = phi float [ %303, %301 ], [ 0.000000e+00, %.lr.ph372 ]
  %306 = getelementptr inbounds [4 x float], ptr %3, i64 0, i64 %300
  store float %305, ptr %306, align 4, !tbaa !16
  %indvars.iv.next400 = add nuw nsw i64 %300, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next400, 4
  br i1 %exitcond.not, label %._crit_edge, label %307, !llvm.loop !20

307:                                              ; preds = %304
  br i1 %.not276, label %311, label %308

308:                                              ; preds = %307
  %309 = getelementptr inbounds [4 x float], ptr %299, i64 0, i64 %indvars.iv.next400
  %310 = load float, ptr %309, align 4, !tbaa !16
  br label %311

311:                                              ; preds = %308, %307
  %312 = phi float [ %310, %308 ], [ 0.000000e+00, %307 ]
  %313 = getelementptr inbounds [4 x float], ptr %3, i64 0, i64 %indvars.iv.next400
  store float %312, ptr %313, align 4, !tbaa !16
  %indvars.iv.next400.1 = add nuw nsw i64 %300, 2
  %exitcond.not.1 = icmp eq i64 %indvars.iv.next400.1, 4
  br i1 %exitcond.not.1, label %._crit_edge, label %314, !llvm.loop !20

314:                                              ; preds = %311
  br i1 %.not276, label %318, label %315

315:                                              ; preds = %314
  %316 = getelementptr inbounds [4 x float], ptr %299, i64 0, i64 %indvars.iv.next400.1
  %317 = load float, ptr %316, align 4, !tbaa !16
  br label %318

318:                                              ; preds = %315, %314
  %319 = phi float [ %317, %315 ], [ 0.000000e+00, %314 ]
  %320 = getelementptr inbounds [4 x float], ptr %3, i64 0, i64 %indvars.iv.next400.1
  store float %319, ptr %320, align 4, !tbaa !16
  br label %._crit_edge

._crit_edge:                                      ; preds = %304, %311, %318, %296
  %321 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1175, ptr noundef nonnull dereferenceable(1) @.str.19) #14
  %322 = icmp eq i32 %321, 0
  %323 = load float, ptr %3, align 16
  %324 = fcmp ogt float %323, 0.000000e+00
  %or.cond = select i1 %322, i1 %324, i1 false
  br i1 %or.cond, label %325, label %327

325:                                              ; preds = %._crit_edge
  %326 = call noundef i32 @_ZNK4GIPS8Pipeline9nodeCountEv(ptr noundef nonnull align 8 dereferenceable(100) %0)
  br label %select.unfold313, !llvm.loop !13

327:                                              ; preds = %._crit_edge
  br i1 %.not264, label %328, label %335

328:                                              ; preds = %327
  %329 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1175, ptr noundef nonnull dereferenceable(1) @.str.20) #14
  %.not265 = icmp eq i32 %329, 0
  br i1 %.not265, label %330, label %select.unfold313, !llvm.loop !13

330:                                              ; preds = %328
  %331 = fadd float %323, -1.000000e+00
  %332 = call noundef float @_ZSt3absf(float noundef %331)
  %333 = fcmp olt float %332, 0x3EB0C6F7A0000000
  br i1 %333, label %334, label %.thread315, !llvm.loop !13

334:                                              ; preds = %330
  br label %select.unfold313, !llvm.loop !13

335:                                              ; preds = %327
  %336 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1175, ptr noundef nonnull dereferenceable(1) @.str.21) #14
  %.not266 = icmp eq i32 %336, 0
  br i1 %.not266, label %341, label %337

337:                                              ; preds = %335
  %338 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1175, ptr noundef nonnull dereferenceable(1) @.str.22) #14
  %.not267 = icmp eq i32 %338, 0
  br i1 %.not267, label %341, label %339

339:                                              ; preds = %337
  %340 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %.1175, ptr noundef nonnull dereferenceable(1) @.str.23) #14
  %.not268 = icmp eq i32 %340, 0
  br i1 %.not268, label %341, label %345

341:                                              ; preds = %339, %337, %335
  %342 = fcmp ogt float %323, 5.000000e-01
  %343 = getelementptr inbounds i8, ptr %.0197375, i64 321
  %344 = zext i1 %342 to i8
  store i8 %344, ptr %343, align 1, !tbaa !21
  br label %select.unfold313, !llvm.loop !13

345:                                              ; preds = %339
  %.not269 = icmp eq ptr %297, null
  br i1 %.not269, label %347, label %.preheader

.preheader:                                       ; preds = %345
  %346 = getelementptr inbounds i8, ptr %297, i64 112
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %346, ptr noundef nonnull align 16 dereferenceable(16) %3, i64 16, i1 false), !tbaa !16
  br label %select.unfold313

347:                                              ; preds = %345
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #13
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #13
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %36) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull %.1175, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %348 unwind label %354

348:                                              ; preds = %347
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr noundef nonnull @.str.24, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %349 unwind label %356

349:                                              ; preds = %348
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %33, ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull @.str.25)
          to label %350 unwind label %358

350:                                              ; preds = %349
  %351 = getelementptr inbounds i8, ptr %.0197375, i64 64
  %352 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %351, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %353 unwind label %360

353:                                              ; preds = %350
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #13
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #13
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #13
  br label %select.unfold313

354:                                              ; preds = %347
  %355 = landingpad { ptr, i32 }
          cleanup
  br label %364

356:                                              ; preds = %348
  %357 = landingpad { ptr, i32 }
          cleanup
  br label %363

358:                                              ; preds = %349
  %359 = landingpad { ptr, i32 }
          cleanup
  br label %362

360:                                              ; preds = %350
  %361 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #13
  br label %362

362:                                              ; preds = %360, %358
  %.pn270 = phi { ptr, i32 } [ %361, %360 ], [ %359, %358 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #13
  br label %363

363:                                              ; preds = %362, %356
  %.pn270.pn = phi { ptr, i32 } [ %.pn270, %362 ], [ %357, %356 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #13
  br label %364

364:                                              ; preds = %363, %354
  %.pn270.pn.pn = phi { ptr, i32 } [ %.pn270.pn, %363 ], [ %355, %354 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #13
  br label %366

.thread315:                                       ; preds = %71, %74, %82, %99, %.critedge6.thread, %330
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #13
  br label %369

select.unfold313:                                 ; preds = %.preheader, %71, %226, %106, %128, %325, %334, %341, %328, %353, %253, %.critedge2, %.critedge2, %.critedge2, %76
  %.1198 = phi ptr [ %81, %76 ], [ %.0197375, %.critedge2 ], [ %.0197375, %.critedge2 ], [ %.0197375, %.critedge2 ], [ %.0197375, %253 ], [ %.0197375, %226 ], [ %.0197375, %353 ], [ null, %328 ], [ %.0197375, %341 ], [ null, %334 ], [ %.0197375, %325 ], [ %.0197375, %128 ], [ %.0197375, %106 ], [ %.0197375, %71 ], [ %.0197375, %.preheader ]
  %.4196 = phi i32 [ %.0192377, %76 ], [ %.0192377, %.critedge2 ], [ %.0192377, %.critedge2 ], [ %.0192377, %.critedge2 ], [ %.0192377, %253 ], [ %.0192377, %226 ], [ %.0192377, %353 ], [ %.0192377, %328 ], [ %.0192377, %341 ], [ %.0192377, %334 ], [ %326, %325 ], [ %.0192377, %128 ], [ %.0192377, %106 ], [ %.0192377, %71 ], [ %.0192377, %.preheader ]
  %.5191 = phi i1 [ %.0186379, %76 ], [ %.0186379, %.critedge2 ], [ %.0186379, %.critedge2 ], [ %.0186379, %.critedge2 ], [ %.0186379, %253 ], [ %.0186379, %226 ], [ %.0186379, %353 ], [ %.0186379, %328 ], [ %.0186379, %341 ], [ true, %334 ], [ %.0186379, %325 ], [ %.0186379, %128 ], [ %.0186379, %106 ], [ %.0186379, %71 ], [ %.0186379, %.preheader ]
  %.1179 = phi i8 [ %.0178381, %76 ], [ %.0178381, %.critedge2 ], [ %.0178381, %.critedge2 ], [ %.0178381, %.critedge2 ], [ %.0178381, %253 ], [ %.0178381, %226 ], [ %.0178381, %353 ], [ %.0178381, %328 ], [ %.0178381, %341 ], [ %.0178381, %334 ], [ %.0178381, %325 ], [ %.0178381, %128 ], [ %.0178381, %106 ], [ 0, %71 ], [ %.0178381, %.preheader ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #13
  %365 = load i8, ptr %spec.select, align 1, !tbaa !5
  %.not218 = icmp eq i8 %365, 0
  br i1 %.not218, label %._crit_edge384, label %.preheader323

366:                                              ; preds = %225, %273, %293, %364, %139, %117
  %.pn270.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn235.pn.pn, %139 ], [ %.pn.pn.pn, %117 ], [ %.pn270.pn.pn, %364 ], [ %.pn257.pn.pn.pn.pn.pn, %225 ], [ %.pn247.pn.pn.pn.pn.pn, %273 ], [ %.pn243.pn.pn, %293 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) #13
  resume { ptr, i32 } %.pn270.pn.pn.pn.pn

._crit_edge384:                                   ; preds = %select.unfold313
  %367 = icmp sgt i32 %.4196, -1
  br i1 %367, label %369, label %._crit_edge384.thread

._crit_edge384.thread:                            ; preds = %39, %._crit_edge384
  %368 = call noundef i32 @_ZNK4GIPS8Pipeline9nodeCountEv(ptr noundef nonnull align 8 dereferenceable(100) %0)
  br label %369

369:                                              ; preds = %.thread315, %._crit_edge384.thread, %._crit_edge384
  %.5 = phi i32 [ %368, %._crit_edge384.thread ], [ %.4196, %._crit_edge384 ], [ -1, %.thread315 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) #13
  br label %370

370:                                              ; preds = %2, %37, %369
  %.6 = phi i32 [ %.5, %369 ], [ -1, %37 ], [ -1, %2 ]
  ret i32 %.6
}

; Function Attrs: mustprogress nofree nounwind willreturn memory(read)
declare i32 @isspace(i32 noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i32 @strcmp(ptr nocapture noundef, ptr nocapture noundef) local_unnamed_addr #4

declare void @_ZN4GIPS8Pipeline5clearEv(ptr noundef nonnull align 8 dereferenceable(100)) local_unnamed_addr #5

declare noundef ptr @_ZN3VFS11getFullPathEPKc(ptr noundef) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZN4GIPS8Pipeline7addNodeEPKci(ptr noundef nonnull align 8 dereferenceable(100), ptr noundef, i32 noundef) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite)
declare void @free(ptr allocptr nocapture noundef) local_unnamed_addr #7

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

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

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

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

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(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 #8 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef i32 @_ZN4GIPSL7hex2intEc(i8 noundef signext) local_unnamed_addr #8

; 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 #6

; Function Attrs: mustprogress nofree nounwind willreturn
declare float @strtof(ptr noundef readonly, ptr nocapture noundef) local_unnamed_addr #9

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZN4GIPSL8isnumsepEc(i8 noundef signext) local_unnamed_addr #10

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK4GIPS8Pipeline9nodeCountEv(ptr noundef nonnull align 8 dereferenceable(100)) local_unnamed_addr #10 align 2

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

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

; 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) #11

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { 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 #3 = { 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 #4 = { 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 #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 = { 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 #7 = { 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 #8 = { 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 #9 = { 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 #10 = { 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 #11 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #12 = { cold nounwind }
attributes #13 = { nounwind }
attributes #14 = { nounwind willreturn memory(read) }

!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 = !{!"omnipotent char", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = !{!9, !9, i64 0}
!9 = !{!"any pointer", !6, i64 0}
!10 = distinct !{!10, !11}
!11 = !{!"llvm.loop.mustprogress"}
!12 = distinct !{!12, !11}
!13 = distinct !{!13, !11}
!14 = distinct !{!14, !11}
!15 = distinct !{!15, !11}
!16 = !{!17, !17, i64 0}
!17 = !{!"float", !6, i64 0}
!18 = distinct !{!18, !11}
!19 = distinct !{!19, !11}
!20 = distinct !{!20, !11}
!21 = !{!22, !31, i64 321}
!22 = !{!"_ZTSN4GIPS4NodeE", !23, i64 0, !23, i64 32, !23, i64 64, !26, i64 96, !6, i64 104, !27, i64 296, !31, i64 320, !31, i64 321, !31, i64 322, !32, i64 328, !33, i64 344}
!23 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !24, i64 0, !25, i64 8, !6, i64 16}
!24 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !9, i64 0}
!25 = !{!"long", !6, i64 0}
!26 = !{!"int", !6, i64 0}
!27 = !{!"_ZTSSt6vectorIN4GIPS9ParameterESaIS1_EE", !28, i64 0}
!28 = !{!"_ZTSSt12_Vector_baseIN4GIPS9ParameterESaIS1_EE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseIN4GIPS9ParameterESaIS1_EE12_Vector_implE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseIN4GIPS9ParameterESaIS1_EE17_Vector_impl_dataE", !9, i64 0, !9, i64 8, !9, i64 16}
!31 = !{!"bool", !6, i64 0}
!32 = !{!"_ZTSN8FileUtil15FileFingerprintE", !25, i64 0, !25, i64 8}
!33 = !{!"_ZTSN4GIPS11PixelFormatE", !6, i64 0}


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