; LLVM IR from gem5/gem5 :: ext/mcpat/memoryctrl.ll (ZN16MemoryController12set_mc_paramEv)

; 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::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%class.McPATComponent = type { ptr, %class.Component, ptr, %class.InputParameter, %"class.std::__cxx11::basic_string", double, %"class.std::vector", %class.McPATOutput, %class.statsDef, %class.statsDef, %class.powerDef, %class.powerDef }
%class.Component = type { %class.Area, %class.powerDef, %class.powerDef, double, double }
%class.Area = type { double, double, double }
%class.InputParameter = type { i32, i32, i32, i32, i32, i8, i32, i32, i32, i32, i32, i32, double, double, i32, i32, i32, i32, i32, i8, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i32, i32, i32, i32, i32, i32, i32, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i32, i32, i32, i8, i8, i32, i32, i8, double, double, i8, i32, i32, i8 }
%"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::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<McPATComponent *, std::allocator<McPATComponent *>>::_Vector_impl" }
%"struct.std::_Vector_base<McPATComponent *, std::allocator<McPATComponent *>>::_Vector_impl" = type { %"struct.std::_Vector_base<McPATComponent *, std::allocator<McPATComponent *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<McPATComponent *, std::allocator<McPATComponent *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.McPATOutput = type { double, double, double, double, double, double }
%class.statsDef = type { %class.statsComponents, %class.statsComponents, %class.statsComponents, %class.statsComponents, %class.statsComponents, %class.statsComponents, %class.statsComponents }
%class.statsComponents = type { double, double, double }
%class.powerDef = type { %class.powerComponents, %class.powerComponents, %class.powerComponents }
%class.powerComponents = type { double, double, double, double, double }
%class.MemoryController = type { %class.McPATComponent, %class.InputParameter, %class.MCParameters, %class.MCStatistics }
%class.MCParameters = type { double, i32, double, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
%class.MCStatistics = type { double, double, double, double }

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.9 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [14 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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #1

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) #3

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.ceil.f64(double) #4

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN16MemoryController12set_mc_paramEv(ptr noundef nonnull align 8 dereferenceable(1864) %0) #2 align 2 {
  %2 = alloca ptr, align 8
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %13 = load ptr, ptr %2, align 8
  call void @_ZN16MemoryController17initialize_paramsEv(ptr noundef nonnull align 8 dereferenceable(1864) %13)
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #9
  %14 = getelementptr inbounds %class.McPATComponent, ptr %13, i32 0, i32 2
  %15 = load ptr, ptr %14, align 8, !tbaa !9
  %16 = call noundef i32 @_ZNK7XMLNode10nChildNodeEPKc(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef @.str.9)
  store i32 %16, ptr %3, align 4, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #9
  store i32 0, ptr %6, align 4, !tbaa !30
  br label %17

17:                                               ; preds = %297, %1
  %18 = load i32, ptr %6, align 4, !tbaa !30
  %19 = load i32, ptr %3, align 4, !tbaa !30
  %20 = icmp slt i32 %18, %19
  br i1 %20, label %21, label %300

21:                                               ; preds = %17
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #9
  %22 = getelementptr inbounds %class.McPATComponent, ptr %13, i32 0, i32 2
  %23 = load ptr, ptr %22, align 8, !tbaa !9
  %24 = call noundef ptr @_ZNK7XMLNode15getChildNodePtrEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef @.str.9, ptr noundef %6)
  store ptr %24, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #9
  %25 = load ptr, ptr %7, align 8, !tbaa !5
  %26 = call noundef ptr @_ZNK7XMLNode12getAttributeEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef @.str.10, ptr noundef null)
  store ptr %26, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #9
  %27 = load ptr, ptr %7, align 8, !tbaa !5
  %28 = call noundef ptr @_ZNK7XMLNode12getAttributeEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef @.str.11, ptr noundef null)
  store ptr %28, ptr %9, align 8, !tbaa !5
  %29 = load ptr, ptr %8, align 8, !tbaa !5
  %30 = icmp ne ptr %29, null
  br i1 %30, label %34, label %31

31:                                               ; preds = %21
  %32 = load ptr, ptr %7, align 8, !tbaa !5
  %33 = call noundef ptr @_ZNK7XMLNode12getAttributeEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %32, ptr noundef @.str.12, ptr noundef null)
  call void @_ZN14McPATComponent20warnMissingParamNameEPKc(ptr noundef nonnull align 8 dereferenceable(1352) %13, ptr noundef %33)
  br label %296

34:                                               ; preds = %21
  %35 = load ptr, ptr %8, align 8, !tbaa !5
  %36 = call i32 @strcmp(ptr noundef %35, ptr noundef @.str.13) #10
  %37 = icmp eq i32 %36, 0
  br i1 %37, label %38, label %43

38:                                               ; preds = %34
  %39 = load ptr, ptr %9, align 8, !tbaa !5
  %40 = call double @atof(ptr noundef %39) #10
  %41 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 2
  %42 = getelementptr inbounds %class.MCParameters, ptr %41, i32 0, i32 0
  store double %40, ptr %42, align 8, !tbaa !31
  br label %295

43:                                               ; preds = %34
  %44 = load ptr, ptr %8, align 8, !tbaa !5
  %45 = call i32 @strcmp(ptr noundef %44, ptr noundef @.str.14) #10
  %46 = icmp eq i32 %45, 0
  br i1 %46, label %47, label %50

47:                                               ; preds = %43
  %48 = load ptr, ptr %9, align 8, !tbaa !5
  %49 = call i32 @atoi(ptr noundef %48) #10
  store i32 %49, ptr %4, align 4, !tbaa !30
  br label %294

50:                                               ; preds = %43
  %51 = load ptr, ptr %8, align 8, !tbaa !5
  %52 = call i32 @strcmp(ptr noundef %51, ptr noundef @.str.15) #10
  %53 = icmp eq i32 %52, 0
  br i1 %53, label %54, label %59

54:                                               ; preds = %50
  %55 = load ptr, ptr %9, align 8, !tbaa !5
  %56 = call i32 @atoi(ptr noundef %55) #10
  %57 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 2
  %58 = getelementptr inbounds %class.MCParameters, ptr %57, i32 0, i32 1
  store i32 %56, ptr %58, align 8, !tbaa !36
  br label %293

59:                                               ; preds = %50
  %60 = load ptr, ptr %8, align 8, !tbaa !5
  %61 = call i32 @strcmp(ptr noundef %60, ptr noundef @.str.16) #10
  %62 = icmp eq i32 %61, 0
  br i1 %62, label %63, label %68

63:                                               ; preds = %59
  %64 = load ptr, ptr %9, align 8, !tbaa !5
  %65 = call double @atof(ptr noundef %64) #10
  %66 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 2
  %67 = getelementptr inbounds %class.MCParameters, ptr %66, i32 0, i32 2
  store double %65, ptr %67, align 8, !tbaa !37
  br label %292

68:                                               ; preds = %59
  %69 = load ptr, ptr %8, align 8, !tbaa !5
  %70 = call i32 @strcmp(ptr noundef %69, ptr noundef @.str.17) #10
  %71 = icmp eq i32 %70, 0
  br i1 %71, label %72, label %77

72:                                               ; preds = %68
  %73 = load ptr, ptr %9, align 8, !tbaa !5
  %74 = call i32 @atoi(ptr noundef %73) #10
  %75 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 2
  %76 = getelementptr inbounds %class.MCParameters, ptr %75, i32 0, i32 7
  store i32 %74, ptr %76, align 8, !tbaa !38
  br label %291

77:                                               ; preds = %68
  %78 = load ptr, ptr %8, align 8, !tbaa !5
  %79 = call i32 @strcmp(ptr noundef %78, ptr noundef @.str.18) #10
  %80 = icmp eq i32 %79, 0
  br i1 %80, label %81, label %86

81:                                               ; preds = %77
  %82 = load ptr, ptr %9, align 8, !tbaa !5
  %83 = call i32 @atoi(ptr noundef %82) #10
  %84 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 2
  %85 = getelementptr inbounds %class.MCParameters, ptr %84, i32 0, i32 6
  store i32 %83, ptr %85, align 4, !tbaa !39
  br label %290

86:                                               ; preds = %77
  %87 = load ptr, ptr %8, align 8, !tbaa !5
  %88 = call i32 @strcmp(ptr noundef %87, ptr noundef @.str.19) #10
  %89 = icmp eq i32 %88, 0
  br i1 %89, label %90, label %95

90:                                               ; preds = %86
  %91 = load ptr, ptr %9, align 8, !tbaa !5
  %92 = call i32 @atoi(ptr noundef %91) #10
  %93 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 2
  %94 = getelementptr inbounds %class.MCParameters, ptr %93, i32 0, i32 3
  store i32 %92, ptr %94, align 8, !tbaa !40
  br label %289

95:                                               ; preds = %86
  %96 = load ptr, ptr %8, align 8, !tbaa !5
  %97 = call i32 @strcmp(ptr noundef %96, ptr noundef @.str.20) #10
  %98 = icmp eq i32 %97, 0
  br i1 %98, label %99, label %104

99:                                               ; preds = %95
  %100 = load ptr, ptr %9, align 8, !tbaa !5
  %101 = call i32 @atoi(ptr noundef %100) #10
  %102 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 2
  %103 = getelementptr inbounds %class.MCParameters, ptr %102, i32 0, i32 8
  store i32 %101, ptr %103, align 4, !tbaa !41
  br label %288

104:                                              ; preds = %95
  %105 = load ptr, ptr %8, align 8, !tbaa !5
  %106 = call i32 @strcmp(ptr noundef %105, ptr noundef @.str.21) #10
  %107 = icmp eq i32 %106, 0
  br i1 %107, label %108, label %113

108:                                              ; preds = %104
  %109 = load ptr, ptr %9, align 8, !tbaa !5
  %110 = call i32 @atoi(ptr noundef %109) #10
  %111 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 2
  %112 = getelementptr inbounds %class.MCParameters, ptr %111, i32 0, i32 9
  store i32 %110, ptr %112, align 8, !tbaa !42
  br label %287

113:                                              ; preds = %104
  %114 = load ptr, ptr %8, align 8, !tbaa !5
  %115 = call i32 @strcmp(ptr noundef %114, ptr noundef @.str.22) #10
  %116 = icmp eq i32 %115, 0
  br i1 %116, label %117, label %122

117:                                              ; preds = %113
  %118 = load ptr, ptr %9, align 8, !tbaa !5
  %119 = call i32 @atoi(ptr noundef %118) #10
  %120 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 2
  %121 = getelementptr inbounds %class.MCParameters, ptr %120, i32 0, i32 10
  store i32 %119, ptr %121, align 4, !tbaa !43
  br label %286

122:                                              ; preds = %113
  %123 = load ptr, ptr %8, align 8, !tbaa !5
  %124 = call i32 @strcmp(ptr noundef %123, ptr noundef @.str.23) #10
  %125 = icmp eq i32 %124, 0
  br i1 %125, label %126, label %131

126:                                              ; preds = %122
  %127 = load ptr, ptr %9, align 8, !tbaa !5
  %128 = call i32 @atoi(ptr noundef %127) #10
  %129 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 2
  %130 = getelementptr inbounds %class.MCParameters, ptr %129, i32 0, i32 11
  store i32 %128, ptr %130, align 8, !tbaa !44
  br label %285

131:                                              ; preds = %122
  %132 = load ptr, ptr %8, align 8, !tbaa !5
  %133 = call i32 @strcmp(ptr noundef %132, ptr noundef @.str.24) #10
  %134 = icmp eq i32 %133, 0
  br i1 %134, label %135, label %140

135:                                              ; preds = %131
  %136 = load ptr, ptr %9, align 8, !tbaa !5
  %137 = call i32 @atoi(ptr noundef %136) #10
  %138 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 2
  %139 = getelementptr inbounds %class.MCParameters, ptr %138, i32 0, i32 12
  store i32 %137, ptr %139, align 4, !tbaa !45
  br label %284

140:                                              ; preds = %131
  %141 = load ptr, ptr %8, align 8, !tbaa !5
  %142 = call i32 @strcmp(ptr noundef %141, ptr noundef @.str.25) #10
  %143 = icmp eq i32 %142, 0
  br i1 %143, label %144, label %151

144:                                              ; preds = %140
  %145 = load ptr, ptr %9, align 8, !tbaa !5
  %146 = call i32 @atoi(ptr noundef %145) #10
  %147 = icmp ne i32 %146, 0
  %148 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 2
  %149 = getelementptr inbounds %class.MCParameters, ptr %148, i32 0, i32 13
  %150 = zext i1 %147 to i8
  store i8 %150, ptr %149, align 8, !tbaa !46
  br label %283

151:                                              ; preds = %140
  %152 = load ptr, ptr %8, align 8, !tbaa !5
  %153 = call i32 @strcmp(ptr noundef %152, ptr noundef @.str.26) #10
  %154 = icmp eq i32 %153, 0
  br i1 %154, label %155, label %162

155:                                              ; preds = %151
  %156 = load ptr, ptr %9, align 8, !tbaa !5
  %157 = call i32 @atoi(ptr noundef %156) #10
  %158 = icmp ne i32 %157, 0
  %159 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 2
  %160 = getelementptr inbounds %class.MCParameters, ptr %159, i32 0, i32 14
  %161 = zext i1 %158 to i8
  store i8 %161, ptr %160, align 1, !tbaa !47
  br label %282

162:                                              ; preds = %151
  %163 = load ptr, ptr %8, align 8, !tbaa !5
  %164 = call i32 @strcmp(ptr noundef %163, ptr noundef @.str.27) #10
  %165 = icmp eq i32 %164, 0
  br i1 %165, label %166, label %171

166:                                              ; preds = %162
  %167 = load ptr, ptr %9, align 8, !tbaa !5
  %168 = call i32 @atoi(ptr noundef %167) #10
  %169 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 2
  %170 = getelementptr inbounds %class.MCParameters, ptr %169, i32 0, i32 15
  store i32 %168, ptr %170, align 4, !tbaa !48
  br label %281

171:                                              ; preds = %162
  %172 = load ptr, ptr %8, align 8, !tbaa !5
  %173 = call i32 @strcmp(ptr noundef %172, ptr noundef @.str.28) #10
  %174 = icmp eq i32 %173, 0
  br i1 %174, label %175, label %180

175:                                              ; preds = %171
  %176 = load ptr, ptr %9, align 8, !tbaa !5
  %177 = call i32 @atoi(ptr noundef %176) #10
  %178 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 2
  %179 = getelementptr inbounds %class.MCParameters, ptr %178, i32 0, i32 16
  store i32 %177, ptr %179, align 8, !tbaa !49
  br label %280

180:                                              ; preds = %171
  %181 = load ptr, ptr %8, align 8, !tbaa !5
  %182 = call i32 @strcmp(ptr noundef %181, ptr noundef @.str.29) #10
  %183 = icmp eq i32 %182, 0
  br i1 %183, label %184, label %189

184:                                              ; preds = %180
  %185 = load ptr, ptr %9, align 8, !tbaa !5
  %186 = call i32 @atoi(ptr noundef %185) #10
  %187 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 2
  %188 = getelementptr inbounds %class.MCParameters, ptr %187, i32 0, i32 17
  store i32 %186, ptr %188, align 4, !tbaa !50
  br label %279

189:                                              ; preds = %180
  %190 = load ptr, ptr %8, align 8, !tbaa !5
  %191 = call i32 @strcmp(ptr noundef %190, ptr noundef @.str.30) #10
  %192 = icmp eq i32 %191, 0
  br i1 %192, label %193, label %198

193:                                              ; preds = %189
  %194 = load ptr, ptr %9, align 8, !tbaa !5
  %195 = call i32 @atoi(ptr noundef %194) #10
  %196 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 2
  %197 = getelementptr inbounds %class.MCParameters, ptr %196, i32 0, i32 18
  store i32 %195, ptr %197, align 8, !tbaa !51
  br label %278

198:                                              ; preds = %189
  %199 = load ptr, ptr %8, align 8, !tbaa !5
  %200 = call i32 @strcmp(ptr noundef %199, ptr noundef @.str.31) #10
  %201 = icmp eq i32 %200, 0
  br i1 %201, label %202, label %207

202:                                              ; preds = %198
  %203 = load ptr, ptr %9, align 8, !tbaa !5
  %204 = call i32 @atoi(ptr noundef %203) #10
  %205 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 2
  %206 = getelementptr inbounds %class.MCParameters, ptr %205, i32 0, i32 19
  store i32 %204, ptr %206, align 4, !tbaa !52
  br label %277

207:                                              ; preds = %198
  %208 = load ptr, ptr %8, align 8, !tbaa !5
  %209 = call i32 @strcmp(ptr noundef %208, ptr noundef @.str.32) #10
  %210 = icmp eq i32 %209, 0
  br i1 %210, label %211, label %216

211:                                              ; preds = %207
  %212 = load ptr, ptr %9, align 8, !tbaa !5
  %213 = call i32 @atoi(ptr noundef %212) #10
  %214 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 2
  %215 = getelementptr inbounds %class.MCParameters, ptr %214, i32 0, i32 20
  store i32 %213, ptr %215, align 8, !tbaa !53
  br label %276

216:                                              ; preds = %207
  %217 = load ptr, ptr %8, align 8, !tbaa !5
  %218 = call i32 @strcmp(ptr noundef %217, ptr noundef @.str.33) #10
  %219 = icmp eq i32 %218, 0
  br i1 %219, label %220, label %225

220:                                              ; preds = %216
  %221 = load ptr, ptr %9, align 8, !tbaa !5
  %222 = call i32 @atoi(ptr noundef %221) #10
  %223 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 2
  %224 = getelementptr inbounds %class.MCParameters, ptr %223, i32 0, i32 21
  store i32 %222, ptr %224, align 4, !tbaa !54
  br label %275

225:                                              ; preds = %216
  %226 = load ptr, ptr %8, align 8, !tbaa !5
  %227 = call i32 @strcmp(ptr noundef %226, ptr noundef @.str.34) #10
  %228 = icmp eq i32 %227, 0
  br i1 %228, label %229, label %234

229:                                              ; preds = %225
  %230 = load ptr, ptr %9, align 8, !tbaa !5
  %231 = call i32 @atoi(ptr noundef %230) #10
  %232 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 2
  %233 = getelementptr inbounds %class.MCParameters, ptr %232, i32 0, i32 22
  store i32 %231, ptr %233, align 8, !tbaa !55
  br label %274

234:                                              ; preds = %225
  %235 = load ptr, ptr %8, align 8, !tbaa !5
  %236 = call i32 @strcmp(ptr noundef %235, ptr noundef @.str.35) #10
  %237 = icmp eq i32 %236, 0
  br i1 %237, label %238, label %243

238:                                              ; preds = %234
  %239 = load ptr, ptr %9, align 8, !tbaa !5
  %240 = call i32 @atoi(ptr noundef %239) #10
  %241 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 2
  %242 = getelementptr inbounds %class.MCParameters, ptr %241, i32 0, i32 23
  store i32 %240, ptr %242, align 4, !tbaa !56
  br label %273

243:                                              ; preds = %234
  %244 = load ptr, ptr %8, align 8, !tbaa !5
  %245 = call i32 @strcmp(ptr noundef %244, ptr noundef @.str.36) #10
  %246 = icmp eq i32 %245, 0
  br i1 %246, label %247, label %252

247:                                              ; preds = %243
  %248 = load ptr, ptr %9, align 8, !tbaa !5
  %249 = call i32 @atoi(ptr noundef %248) #10
  %250 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 2
  %251 = getelementptr inbounds %class.MCParameters, ptr %250, i32 0, i32 24
  store i32 %249, ptr %251, align 8, !tbaa !57
  br label %272

252:                                              ; preds = %243
  %253 = load ptr, ptr %8, align 8, !tbaa !5
  %254 = call i32 @strcmp(ptr noundef %253, ptr noundef @.str.37) #10
  %255 = icmp eq i32 %254, 0
  br i1 %255, label %256, label %259

256:                                              ; preds = %252
  %257 = load ptr, ptr %9, align 8, !tbaa !5
  %258 = call i32 @atoi(ptr noundef %257) #10
  store i32 %258, ptr %5, align 4, !tbaa !30
  br label %271

259:                                              ; preds = %252
  %260 = load ptr, ptr %8, align 8, !tbaa !5
  %261 = call i32 @strcmp(ptr noundef %260, ptr noundef @.str.38) #10
  %262 = icmp eq i32 %261, 0
  br i1 %262, label %263, label %268

263:                                              ; preds = %259
  %264 = load ptr, ptr %9, align 8, !tbaa !5
  %265 = call i32 @atoi(ptr noundef %264) #10
  %266 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 1
  %267 = getelementptr inbounds %class.InputParameter, ptr %266, i32 0, i32 39
  store i32 %265, ptr %267, align 8, !tbaa !58
  br label %270

268:                                              ; preds = %259
  %269 = load ptr, ptr %8, align 8, !tbaa !5
  call void @_ZN14McPATComponent21warnUnrecognizedParamEPKc(ptr noundef nonnull align 8 dereferenceable(1352) %13, ptr noundef %269)
  br label %270

270:                                              ; preds = %268, %263
  br label %271

271:                                              ; preds = %270, %256
  br label %272

272:                                              ; preds = %271, %247
  br label %273

273:                                              ; preds = %272, %238
  br label %274

274:                                              ; preds = %273, %229
  br label %275

275:                                              ; preds = %274, %220
  br label %276

276:                                              ; preds = %275, %211
  br label %277

277:                                              ; preds = %276, %202
  br label %278

278:                                              ; preds = %277, %193
  br label %279

279:                                              ; preds = %278, %184
  br label %280

280:                                              ; preds = %279, %175
  br label %281

281:                                              ; preds = %280, %166
  br label %282

282:                                              ; preds = %281, %155
  br label %283

283:                                              ; preds = %282, %144
  br label %284

284:                                              ; preds = %283, %135
  br label %285

285:                                              ; preds = %284, %126
  br label %286

286:                                              ; preds = %285, %117
  br label %287

287:                                              ; preds = %286, %108
  br label %288

288:                                              ; preds = %287, %99
  br label %289

289:                                              ; preds = %288, %90
  br label %290

290:                                              ; preds = %289, %81
  br label %291

291:                                              ; preds = %290, %72
  br label %292

292:                                              ; preds = %291, %63
  br label %293

293:                                              ; preds = %292, %54
  br label %294

294:                                              ; preds = %293, %47
  br label %295

295:                                              ; preds = %294, %38
  br label %296

296:                                              ; preds = %295, %31
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #9
  br label %297

297:                                              ; preds = %296
  %298 = load i32, ptr %6, align 4, !tbaa !30
  %299 = add nsw i32 %298, 1
  store i32 %299, ptr %6, align 4, !tbaa !30
  br label %17, !llvm.loop !59

300:                                              ; preds = %17
  %301 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 2
  %302 = getelementptr inbounds %class.MCParameters, ptr %301, i32 0, i32 1
  %303 = load i32, ptr %302, align 8, !tbaa !36
  %304 = icmp ne i32 %303, 0
  br i1 %304, label %305, label %309

305:                                              ; preds = %300
  %306 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.39)
  %307 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %306, ptr noundef @.str.40)
  %308 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %307, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @exit(i32 noundef 0) #11
  unreachable

309:                                              ; preds = %300
  %310 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 2
  %311 = getelementptr inbounds %class.MCParameters, ptr %310, i32 0, i32 0
  %312 = load double, ptr %311, align 8, !tbaa !31
  %313 = fmul double %312, 1.000000e+06
  store double %313, ptr %311, align 8, !tbaa !31
  %314 = load i32, ptr %4, align 4, !tbaa !30
  %315 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 1
  %316 = getelementptr inbounds %class.InputParameter, ptr %315, i32 0, i32 29
  store i32 %314, ptr %316, align 8, !tbaa !61
  %317 = load i32, ptr %4, align 4, !tbaa !30
  %318 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 1
  %319 = getelementptr inbounds %class.InputParameter, ptr %318, i32 0, i32 30
  store i32 %317, ptr %319, align 4, !tbaa !62
  %320 = load i32, ptr %4, align 4, !tbaa !30
  %321 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 1
  %322 = getelementptr inbounds %class.InputParameter, ptr %321, i32 0, i32 31
  store i32 %320, ptr %322, align 8, !tbaa !63
  %323 = load i32, ptr %4, align 4, !tbaa !30
  %324 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 1
  %325 = getelementptr inbounds %class.InputParameter, ptr %324, i32 0, i32 32
  store i32 %323, ptr %325, align 4, !tbaa !64
  %326 = load i32, ptr %5, align 4, !tbaa !30
  %327 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 1
  %328 = getelementptr inbounds %class.InputParameter, ptr %327, i32 0, i32 37
  store i32 %326, ptr %328, align 8, !tbaa !65
  %329 = load i32, ptr %5, align 4, !tbaa !30
  %330 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 1
  %331 = getelementptr inbounds %class.InputParameter, ptr %330, i32 0, i32 38
  store i32 %329, ptr %331, align 4, !tbaa !66
  %332 = getelementptr inbounds %class.McPATComponent, ptr %13, i32 0, i32 2
  %333 = load ptr, ptr %332, align 8, !tbaa !9
  %334 = call noundef i32 @_ZNK7XMLNode10nChildNodeEPKc(ptr noundef nonnull align 8 dereferenceable(8) %333, ptr noundef @.str.41)
  store i32 %334, ptr %3, align 4, !tbaa !30
  store i32 0, ptr %6, align 4, !tbaa !30
  br label %335

335:                                              ; preds = %396, %309
  %336 = load i32, ptr %6, align 4, !tbaa !30
  %337 = load i32, ptr %3, align 4, !tbaa !30
  %338 = icmp slt i32 %336, %337
  br i1 %338, label %339, label %399

339:                                              ; preds = %335
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #9
  %340 = getelementptr inbounds %class.McPATComponent, ptr %13, i32 0, i32 2
  %341 = load ptr, ptr %340, align 8, !tbaa !9
  %342 = call noundef ptr @_ZNK7XMLNode15getChildNodePtrEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %341, ptr noundef @.str.41, ptr noundef %6)
  store ptr %342, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #9
  %343 = load ptr, ptr %10, align 8, !tbaa !5
  %344 = call noundef ptr @_ZNK7XMLNode12getAttributeEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %343, ptr noundef @.str.10, ptr noundef null)
  store ptr %344, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #9
  %345 = load ptr, ptr %10, align 8, !tbaa !5
  %346 = call noundef ptr @_ZNK7XMLNode12getAttributeEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %345, ptr noundef @.str.11, ptr noundef null)
  store ptr %346, ptr %12, align 8, !tbaa !5
  %347 = load ptr, ptr %11, align 8, !tbaa !5
  %348 = icmp ne ptr %347, null
  br i1 %348, label %352, label %349

349:                                              ; preds = %339
  %350 = load ptr, ptr %10, align 8, !tbaa !5
  %351 = call noundef ptr @_ZNK7XMLNode12getAttributeEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %350, ptr noundef @.str.12, ptr noundef null)
  call void @_ZN14McPATComponent19warnMissingStatNameEPKc(ptr noundef nonnull align 8 dereferenceable(1352) %13, ptr noundef %351)
  br label %395

352:                                              ; preds = %339
  %353 = load ptr, ptr %11, align 8, !tbaa !5
  %354 = call i32 @strcmp(ptr noundef %353, ptr noundef @.str.42) #10
  %355 = icmp eq i32 %354, 0
  br i1 %355, label %356, label %361

356:                                              ; preds = %352
  %357 = load ptr, ptr %12, align 8, !tbaa !5
  %358 = call double @atof(ptr noundef %357) #10
  %359 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 3
  %360 = getelementptr inbounds %class.MCStatistics, ptr %359, i32 0, i32 0
  store double %358, ptr %360, align 8, !tbaa !67
  br label %394

361:                                              ; preds = %352
  %362 = load ptr, ptr %11, align 8, !tbaa !5
  %363 = call i32 @strcmp(ptr noundef %362, ptr noundef @.str.43) #10
  %364 = icmp eq i32 %363, 0
  br i1 %364, label %365, label %370

365:                                              ; preds = %361
  %366 = load ptr, ptr %12, align 8, !tbaa !5
  %367 = call double @atof(ptr noundef %366) #10
  %368 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 3
  %369 = getelementptr inbounds %class.MCStatistics, ptr %368, i32 0, i32 1
  store double %367, ptr %369, align 8, !tbaa !68
  br label %393

370:                                              ; preds = %361
  %371 = load ptr, ptr %11, align 8, !tbaa !5
  %372 = call i32 @strcmp(ptr noundef %371, ptr noundef @.str.44) #10
  %373 = icmp eq i32 %372, 0
  br i1 %373, label %374, label %379

374:                                              ; preds = %370
  %375 = load ptr, ptr %12, align 8, !tbaa !5
  %376 = call double @atof(ptr noundef %375) #10
  %377 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 3
  %378 = getelementptr inbounds %class.MCStatistics, ptr %377, i32 0, i32 2
  store double %376, ptr %378, align 8, !tbaa !69
  br label %392

379:                                              ; preds = %370
  %380 = load ptr, ptr %11, align 8, !tbaa !5
  %381 = call i32 @strcmp(ptr noundef %380, ptr noundef @.str.45) #10
  %382 = icmp eq i32 %381, 0
  br i1 %382, label %383, label %389

383:                                              ; preds = %379
  %384 = load ptr, ptr %12, align 8, !tbaa !5
  %385 = call i32 @atoi(ptr noundef %384) #10
  %386 = sitofp i32 %385 to double
  %387 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 3
  %388 = getelementptr inbounds %class.MCStatistics, ptr %387, i32 0, i32 3
  store double %386, ptr %388, align 8, !tbaa !70
  br label %391

389:                                              ; preds = %379
  %390 = load ptr, ptr %11, align 8, !tbaa !5
  call void @_ZN14McPATComponent20warnUnrecognizedStatEPKc(ptr noundef nonnull align 8 dereferenceable(1352) %13, ptr noundef %390)
  br label %391

391:                                              ; preds = %389, %383
  br label %392

392:                                              ; preds = %391, %374
  br label %393

393:                                              ; preds = %392, %365
  br label %394

394:                                              ; preds = %393, %356
  br label %395

395:                                              ; preds = %394, %349
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #9
  br label %396

396:                                              ; preds = %395
  %397 = load i32, ptr %6, align 4, !tbaa !30
  %398 = add nsw i32 %397, 1
  store i32 %398, ptr %6, align 4, !tbaa !30
  br label %335, !llvm.loop !71

399:                                              ; preds = %335
  %400 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 2
  %401 = getelementptr inbounds %class.MCParameters, ptr %400, i32 0, i32 7
  %402 = load i32, ptr %401, align 8, !tbaa !38
  %403 = sitofp i32 %402 to double
  %404 = fdiv double %403, 8.000000e+00
  %405 = call double @llvm.ceil.f64(double %404)
  %406 = fptosi double %405 to i32
  %407 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 2
  %408 = getelementptr inbounds %class.MCParameters, ptr %407, i32 0, i32 7
  %409 = load i32, ptr %408, align 8, !tbaa !38
  %410 = add nsw i32 %406, %409
  %411 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 2
  %412 = getelementptr inbounds %class.MCParameters, ptr %411, i32 0, i32 4
  store i32 %410, ptr %412, align 4, !tbaa !72
  %413 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 2
  %414 = getelementptr inbounds %class.MCParameters, ptr %413, i32 0, i32 6
  %415 = load i32, ptr %414, align 4, !tbaa !39
  %416 = sitofp i32 %415 to double
  %417 = fdiv double %416, 8.000000e+00
  %418 = call double @llvm.ceil.f64(double %417)
  %419 = fptosi double %418 to i32
  %420 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 2
  %421 = getelementptr inbounds %class.MCParameters, ptr %420, i32 0, i32 6
  %422 = load i32, ptr %421, align 4, !tbaa !39
  %423 = add nsw i32 %419, %422
  %424 = getelementptr inbounds %class.MemoryController, ptr %13, i32 0, i32 2
  %425 = getelementptr inbounds %class.MCParameters, ptr %424, i32 0, i32 5
  store i32 %423, ptr %425, align 8, !tbaa !73
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #9
  ret void
}

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

declare noundef i32 @_ZNK7XMLNode10nChildNodeEPKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #6

declare noundef ptr @_ZNK7XMLNode15getChildNodePtrEPKcPi(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef, ptr noundef) #6

declare noundef ptr @_ZNK7XMLNode12getAttributeEPKcPi(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef, ptr noundef) #6

declare void @_ZN14McPATComponent20warnMissingParamNameEPKc(ptr noundef nonnull align 8 dereferenceable(1352), ptr noundef) #6

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

; Function Attrs: inlinehint mustprogress nounwind willreturn memory(read) uwtable
declare double @atof(ptr noundef nonnull) #8

; Function Attrs: inlinehint mustprogress nounwind willreturn memory(read) uwtable
declare i32 @atoi(ptr noundef nonnull) #8

declare void @_ZN14McPATComponent21warnUnrecognizedParamEPKc(ptr noundef nonnull align 8 dereferenceable(1352), ptr noundef) #6

declare void @_ZN14McPATComponent19warnMissingStatNameEPKc(ptr noundef nonnull align 8 dereferenceable(1352), ptr noundef) #6

declare void @_ZN14McPATComponent20warnUnrecognizedStatEPKc(ptr noundef nonnull align 8 dereferenceable(1352), ptr noundef) #6

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !6, i64 288}
!10 = !{!"_ZTS14McPATComponent", !11, i64 8, !6, i64 288, !16, i64 296, !20, i64 664, !13, i64 696, !23, i64 704, !27, i64 728, !28, i64 776, !28, i64 944, !14, i64 1112, !14, i64 1232}
!11 = !{!"_ZTS9Component", !12, i64 0, !14, i64 24, !14, i64 144, !13, i64 264, !13, i64 272}
!12 = !{!"_ZTS4Area", !13, i64 0, !13, i64 8, !13, i64 16}
!13 = !{!"double", !7, i64 0}
!14 = !{!"_ZTS8powerDef", !15, i64 0, !15, i64 40, !15, i64 80}
!15 = !{!"_ZTS15powerComponents", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24, !13, i64 32}
!16 = !{!"_ZTS14InputParameter", !17, i64 0, !17, i64 4, !17, i64 8, !17, i64 12, !17, i64 16, !18, i64 20, !17, i64 24, !17, i64 28, !17, i64 32, !17, i64 36, !17, i64 40, !17, i64 44, !13, i64 48, !13, i64 56, !17, i64 64, !17, i64 68, !17, i64 72, !17, i64 76, !17, i64 80, !18, i64 84, !18, i64 85, !18, i64 86, !18, i64 87, !18, i64 88, !17, i64 92, !17, i64 96, !17, i64 100, !17, i64 104, !17, i64 108, !17, i64 112, !17, i64 116, !17, i64 120, !17, i64 124, !17, i64 128, !17, i64 132, !17, i64 136, !17, i64 140, !17, i64 144, !17, i64 148, !19, i64 152, !17, i64 156, !18, i64 160, !17, i64 164, !17, i64 168, !17, i64 172, !17, i64 176, !17, i64 180, !17, i64 184, !17, i64 188, !18, i64 192, !17, i64 196, !17, i64 200, !17, i64 204, !17, i64 208, !17, i64 212, !17, i64 216, !17, i64 220, !17, i64 224, !17, i64 228, !17, i64 232, !17, i64 236, !17, i64 240, !17, i64 244, !17, i64 248, !17, i64 252, !17, i64 256, !17, i64 260, !17, i64 264, !17, i64 268, !17, i64 272, !17, i64 276, !17, i64 280, !17, i64 284, !17, i64 288, !17, i64 292, !17, i64 296, !18, i64 300, !17, i64 304, !17, i64 308, !17, i64 312, !18, i64 316, !18, i64 317, !17, i64 320, !17, i64 324, !18, i64 328, !13, i64 336, !13, i64 344, !18, i64 352, !17, i64 356, !17, i64 360, !18, i64 364}
!17 = !{!"int", !7, i64 0}
!18 = !{!"bool", !7, i64 0}
!19 = !{!"_ZTS9Wire_type", !7, i64 0}
!20 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !21, i64 0, !22, i64 8, !7, i64 16}
!21 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!22 = !{!"long", !7, i64 0}
!23 = !{!"_ZTSSt6vectorIP14McPATComponentSaIS1_EE", !24, i64 0}
!24 = !{!"_ZTSSt12_Vector_baseIP14McPATComponentSaIS1_EE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseIP14McPATComponentSaIS1_EE12_Vector_implE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseIP14McPATComponentSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!27 = !{!"_ZTS11McPATOutput", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24, !13, i64 32, !13, i64 40}
!28 = !{!"_ZTS8statsDef", !29, i64 0, !29, i64 24, !29, i64 48, !29, i64 72, !29, i64 96, !29, i64 120, !29, i64 144}
!29 = !{!"_ZTS15statsComponents", !13, i64 0, !13, i64 8, !13, i64 16}
!30 = !{!17, !17, i64 0}
!31 = !{!32, !13, i64 1720}
!32 = !{!"_ZTS16MemoryController", !10, i64 0, !16, i64 1352, !33, i64 1720, !35, i64 1832}
!33 = !{!"_ZTS12MCParameters", !13, i64 0, !34, i64 8, !13, i64 16, !17, i64 24, !17, i64 28, !17, i64 32, !17, i64 36, !17, i64 40, !17, i64 44, !17, i64 48, !17, i64 52, !17, i64 56, !17, i64 60, !18, i64 64, !18, i64 65, !17, i64 68, !17, i64 72, !17, i64 76, !17, i64 80, !17, i64 84, !17, i64 88, !17, i64 92, !17, i64 96, !17, i64 100, !17, i64 104}
!34 = !{!"_ZTS15MemoryCtrl_type", !7, i64 0}
!35 = !{!"_ZTS12MCStatistics", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24}
!36 = !{!32, !34, i64 1728}
!37 = !{!32, !13, i64 1736}
!38 = !{!32, !17, i64 1760}
!39 = !{!32, !17, i64 1756}
!40 = !{!32, !17, i64 1744}
!41 = !{!32, !17, i64 1764}
!42 = !{!32, !17, i64 1768}
!43 = !{!32, !17, i64 1772}
!44 = !{!32, !17, i64 1776}
!45 = !{!32, !17, i64 1780}
!46 = !{!32, !18, i64 1784}
!47 = !{!32, !18, i64 1785}
!48 = !{!32, !17, i64 1788}
!49 = !{!32, !17, i64 1792}
!50 = !{!32, !17, i64 1796}
!51 = !{!32, !17, i64 1800}
!52 = !{!32, !17, i64 1804}
!53 = !{!32, !17, i64 1808}
!54 = !{!32, !17, i64 1812}
!55 = !{!32, !17, i64 1816}
!56 = !{!32, !17, i64 1820}
!57 = !{!32, !17, i64 1824}
!58 = !{!32, !19, i64 1504}
!59 = distinct !{!59, !60}
!60 = !{!"llvm.loop.mustprogress"}
!61 = !{!32, !17, i64 1464}
!62 = !{!32, !17, i64 1468}
!63 = !{!32, !17, i64 1472}
!64 = !{!32, !17, i64 1476}
!65 = !{!32, !17, i64 1496}
!66 = !{!32, !17, i64 1500}
!67 = !{!32, !13, i64 1832}
!68 = !{!32, !13, i64 1840}
!69 = !{!32, !13, i64 1848}
!70 = !{!32, !13, i64 1856}
!71 = distinct !{!71, !60}
!72 = !{!32, !17, i64 1748}
!73 = !{!32, !17, i64 1752}


; 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::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.9 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [14 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

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

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

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #1

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN16MemoryController12set_mc_paramEv(ptr noundef nonnull align 8 dereferenceable(1864) %0) local_unnamed_addr #2 align 2 {
  %2 = alloca i32, align 4
  tail call void @_ZN16MemoryController17initialize_paramsEv(ptr noundef nonnull align 8 dereferenceable(1864) %0)
  %3 = getelementptr inbounds i8, ptr %0, i64 288
  %4 = load ptr, ptr %3, align 8, !tbaa !5
  %5 = tail call noundef i32 @_ZNK7XMLNode10nChildNodeEPKc(ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull @.str.9)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %2) #9
  store i32 0, ptr %2, align 4, !tbaa !29
  %6 = icmp sgt i32 %5, 0
  br i1 %6, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %1
  %7 = getelementptr inbounds i8, ptr %0, i64 1504
  %8 = getelementptr inbounds i8, ptr %0, i64 1824
  %9 = getelementptr inbounds i8, ptr %0, i64 1820
  %10 = getelementptr inbounds i8, ptr %0, i64 1816
  %11 = getelementptr inbounds i8, ptr %0, i64 1812
  %12 = getelementptr inbounds i8, ptr %0, i64 1808
  %13 = getelementptr inbounds i8, ptr %0, i64 1804
  %14 = getelementptr inbounds i8, ptr %0, i64 1800
  %15 = getelementptr inbounds i8, ptr %0, i64 1796
  %16 = getelementptr inbounds i8, ptr %0, i64 1792
  %17 = getelementptr inbounds i8, ptr %0, i64 1788
  %18 = getelementptr inbounds i8, ptr %0, i64 1785
  %19 = getelementptr inbounds i8, ptr %0, i64 1784
  %20 = getelementptr inbounds i8, ptr %0, i64 1780
  %21 = getelementptr inbounds i8, ptr %0, i64 1776
  %22 = getelementptr inbounds i8, ptr %0, i64 1772
  %23 = getelementptr inbounds i8, ptr %0, i64 1768
  %24 = getelementptr inbounds i8, ptr %0, i64 1764
  %25 = getelementptr inbounds i8, ptr %0, i64 1744
  %26 = getelementptr inbounds i8, ptr %0, i64 1756
  %27 = getelementptr inbounds i8, ptr %0, i64 1760
  %28 = getelementptr inbounds i8, ptr %0, i64 1736
  %29 = getelementptr inbounds i8, ptr %0, i64 1728
  %30 = getelementptr inbounds i8, ptr %0, i64 1720
  br label %31

31:                                               ; preds = %.lr.ph, %173
  %.086 = phi i32 [ undef, %.lr.ph ], [ %.1, %173 ]
  %.07885 = phi i32 [ undef, %.lr.ph ], [ %.179, %173 ]
  %32 = load ptr, ptr %3, align 8, !tbaa !5
  %33 = call noundef ptr @_ZNK7XMLNode15getChildNodePtrEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %32, ptr noundef nonnull @.str.9, ptr noundef nonnull %2)
  %34 = call noundef ptr @_ZNK7XMLNode12getAttributeEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull @.str.10, ptr noundef null)
  %35 = call noundef ptr @_ZNK7XMLNode12getAttributeEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull @.str.11, ptr noundef null)
  %.not84 = icmp eq ptr %34, null
  br i1 %.not84, label %36, label %38

36:                                               ; preds = %31
  %37 = call noundef ptr @_ZNK7XMLNode12getAttributeEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull @.str.12, ptr noundef null)
  call void @_ZN14McPATComponent20warnMissingParamNameEPKc(ptr noundef nonnull align 8 dereferenceable(1352) %0, ptr noundef %37)
  br label %173

38:                                               ; preds = %31
  %39 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %34, ptr noundef nonnull dereferenceable(1) @.str.13) #10
  %40 = icmp eq i32 %39, 0
  br i1 %40, label %41, label %43

41:                                               ; preds = %38
  %42 = call double @atof(ptr noundef %35) #10
  store double %42, ptr %30, align 8, !tbaa !30
  br label %173

43:                                               ; preds = %38
  %44 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %34, ptr noundef nonnull dereferenceable(1) @.str.14) #10
  %45 = icmp eq i32 %44, 0
  br i1 %45, label %46, label %48

46:                                               ; preds = %43
  %47 = call i32 @atoi(ptr nocapture noundef %35) #10
  br label %173

48:                                               ; preds = %43
  %49 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %34, ptr noundef nonnull dereferenceable(1) @.str.15) #10
  %50 = icmp eq i32 %49, 0
  br i1 %50, label %51, label %53

51:                                               ; preds = %48
  %52 = call i32 @atoi(ptr nocapture noundef %35) #10
  store i32 %52, ptr %29, align 8, !tbaa !35
  br label %173

53:                                               ; preds = %48
  %54 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %34, ptr noundef nonnull dereferenceable(1) @.str.16) #10
  %55 = icmp eq i32 %54, 0
  br i1 %55, label %56, label %58

56:                                               ; preds = %53
  %57 = call double @atof(ptr noundef %35) #10
  store double %57, ptr %28, align 8, !tbaa !36
  br label %173

58:                                               ; preds = %53
  %59 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %34, ptr noundef nonnull dereferenceable(1) @.str.17) #10
  %60 = icmp eq i32 %59, 0
  br i1 %60, label %61, label %63

61:                                               ; preds = %58
  %62 = call i32 @atoi(ptr nocapture noundef %35) #10
  store i32 %62, ptr %27, align 8, !tbaa !37
  br label %173

63:                                               ; preds = %58
  %64 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %34, ptr noundef nonnull dereferenceable(1) @.str.18) #10
  %65 = icmp eq i32 %64, 0
  br i1 %65, label %66, label %68

66:                                               ; preds = %63
  %67 = call i32 @atoi(ptr nocapture noundef %35) #10
  store i32 %67, ptr %26, align 4, !tbaa !38
  br label %173

68:                                               ; preds = %63
  %69 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %34, ptr noundef nonnull dereferenceable(1) @.str.19) #10
  %70 = icmp eq i32 %69, 0
  br i1 %70, label %71, label %73

71:                                               ; preds = %68
  %72 = call i32 @atoi(ptr nocapture noundef %35) #10
  store i32 %72, ptr %25, align 8, !tbaa !39
  br label %173

73:                                               ; preds = %68
  %74 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %34, ptr noundef nonnull dereferenceable(1) @.str.20) #10
  %75 = icmp eq i32 %74, 0
  br i1 %75, label %76, label %78

76:                                               ; preds = %73
  %77 = call i32 @atoi(ptr nocapture noundef %35) #10
  store i32 %77, ptr %24, align 4, !tbaa !40
  br label %173

78:                                               ; preds = %73
  %79 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %34, ptr noundef nonnull dereferenceable(1) @.str.21) #10
  %80 = icmp eq i32 %79, 0
  br i1 %80, label %81, label %83

81:                                               ; preds = %78
  %82 = call i32 @atoi(ptr nocapture noundef %35) #10
  store i32 %82, ptr %23, align 8, !tbaa !41
  br label %173

83:                                               ; preds = %78
  %84 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %34, ptr noundef nonnull dereferenceable(1) @.str.22) #10
  %85 = icmp eq i32 %84, 0
  br i1 %85, label %86, label %88

86:                                               ; preds = %83
  %87 = call i32 @atoi(ptr nocapture noundef %35) #10
  store i32 %87, ptr %22, align 4, !tbaa !42
  br label %173

88:                                               ; preds = %83
  %89 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %34, ptr noundef nonnull dereferenceable(1) @.str.23) #10
  %90 = icmp eq i32 %89, 0
  br i1 %90, label %91, label %93

91:                                               ; preds = %88
  %92 = call i32 @atoi(ptr nocapture noundef %35) #10
  store i32 %92, ptr %21, align 8, !tbaa !43
  br label %173

93:                                               ; preds = %88
  %94 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %34, ptr noundef nonnull dereferenceable(1) @.str.24) #10
  %95 = icmp eq i32 %94, 0
  br i1 %95, label %96, label %98

96:                                               ; preds = %93
  %97 = call i32 @atoi(ptr nocapture noundef %35) #10
  store i32 %97, ptr %20, align 4, !tbaa !44
  br label %173

98:                                               ; preds = %93
  %99 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %34, ptr noundef nonnull dereferenceable(1) @.str.25) #10
  %100 = icmp eq i32 %99, 0
  br i1 %100, label %101, label %105

101:                                              ; preds = %98
  %102 = call i32 @atoi(ptr nocapture noundef %35) #10
  %103 = icmp ne i32 %102, 0
  %104 = zext i1 %103 to i8
  store i8 %104, ptr %19, align 8, !tbaa !45
  br label %173

105:                                              ; preds = %98
  %106 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %34, ptr noundef nonnull dereferenceable(1) @.str.26) #10
  %107 = icmp eq i32 %106, 0
  br i1 %107, label %108, label %112

108:                                              ; preds = %105
  %109 = call i32 @atoi(ptr nocapture noundef %35) #10
  %110 = icmp ne i32 %109, 0
  %111 = zext i1 %110 to i8
  store i8 %111, ptr %18, align 1, !tbaa !46
  br label %173

112:                                              ; preds = %105
  %113 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %34, ptr noundef nonnull dereferenceable(1) @.str.27) #10
  %114 = icmp eq i32 %113, 0
  br i1 %114, label %115, label %117

115:                                              ; preds = %112
  %116 = call i32 @atoi(ptr nocapture noundef %35) #10
  store i32 %116, ptr %17, align 4, !tbaa !47
  br label %173

117:                                              ; preds = %112
  %118 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %34, ptr noundef nonnull dereferenceable(1) @.str.28) #10
  %119 = icmp eq i32 %118, 0
  br i1 %119, label %120, label %122

120:                                              ; preds = %117
  %121 = call i32 @atoi(ptr nocapture noundef %35) #10
  store i32 %121, ptr %16, align 8, !tbaa !48
  br label %173

122:                                              ; preds = %117
  %123 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %34, ptr noundef nonnull dereferenceable(1) @.str.29) #10
  %124 = icmp eq i32 %123, 0
  br i1 %124, label %125, label %127

125:                                              ; preds = %122
  %126 = call i32 @atoi(ptr nocapture noundef %35) #10
  store i32 %126, ptr %15, align 4, !tbaa !49
  br label %173

127:                                              ; preds = %122
  %128 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %34, ptr noundef nonnull dereferenceable(1) @.str.30) #10
  %129 = icmp eq i32 %128, 0
  br i1 %129, label %130, label %132

130:                                              ; preds = %127
  %131 = call i32 @atoi(ptr nocapture noundef %35) #10
  store i32 %131, ptr %14, align 8, !tbaa !50
  br label %173

132:                                              ; preds = %127
  %133 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %34, ptr noundef nonnull dereferenceable(1) @.str.31) #10
  %134 = icmp eq i32 %133, 0
  br i1 %134, label %135, label %137

135:                                              ; preds = %132
  %136 = call i32 @atoi(ptr nocapture noundef %35) #10
  store i32 %136, ptr %13, align 4, !tbaa !51
  br label %173

137:                                              ; preds = %132
  %138 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %34, ptr noundef nonnull dereferenceable(1) @.str.32) #10
  %139 = icmp eq i32 %138, 0
  br i1 %139, label %140, label %142

140:                                              ; preds = %137
  %141 = call i32 @atoi(ptr nocapture noundef %35) #10
  store i32 %141, ptr %12, align 8, !tbaa !52
  br label %173

142:                                              ; preds = %137
  %143 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %34, ptr noundef nonnull dereferenceable(1) @.str.33) #10
  %144 = icmp eq i32 %143, 0
  br i1 %144, label %145, label %147

145:                                              ; preds = %142
  %146 = call i32 @atoi(ptr nocapture noundef %35) #10
  store i32 %146, ptr %11, align 4, !tbaa !53
  br label %173

147:                                              ; preds = %142
  %148 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %34, ptr noundef nonnull dereferenceable(1) @.str.34) #10
  %149 = icmp eq i32 %148, 0
  br i1 %149, label %150, label %152

150:                                              ; preds = %147
  %151 = call i32 @atoi(ptr nocapture noundef %35) #10
  store i32 %151, ptr %10, align 8, !tbaa !54
  br label %173

152:                                              ; preds = %147
  %153 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %34, ptr noundef nonnull dereferenceable(1) @.str.35) #10
  %154 = icmp eq i32 %153, 0
  br i1 %154, label %155, label %157

155:                                              ; preds = %152
  %156 = call i32 @atoi(ptr nocapture noundef %35) #10
  store i32 %156, ptr %9, align 4, !tbaa !55
  br label %173

157:                                              ; preds = %152
  %158 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %34, ptr noundef nonnull dereferenceable(1) @.str.36) #10
  %159 = icmp eq i32 %158, 0
  br i1 %159, label %160, label %162

160:                                              ; preds = %157
  %161 = call i32 @atoi(ptr nocapture noundef %35) #10
  store i32 %161, ptr %8, align 8, !tbaa !56
  br label %173

162:                                              ; preds = %157
  %163 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %34, ptr noundef nonnull dereferenceable(1) @.str.37) #10
  %164 = icmp eq i32 %163, 0
  br i1 %164, label %165, label %167

165:                                              ; preds = %162
  %166 = call i32 @atoi(ptr nocapture noundef %35) #10
  br label %173

167:                                              ; preds = %162
  %168 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %34, ptr noundef nonnull dereferenceable(1) @.str.38) #10
  %169 = icmp eq i32 %168, 0
  br i1 %169, label %170, label %172

170:                                              ; preds = %167
  %171 = call i32 @atoi(ptr nocapture noundef %35) #10
  store i32 %171, ptr %7, align 8, !tbaa !57
  br label %173

172:                                              ; preds = %167
  call void @_ZN14McPATComponent21warnUnrecognizedParamEPKc(ptr noundef nonnull align 8 dereferenceable(1352) %0, ptr noundef nonnull %34)
  br label %173

173:                                              ; preds = %41, %51, %61, %71, %81, %91, %101, %115, %125, %135, %145, %155, %165, %172, %170, %160, %150, %140, %130, %120, %108, %96, %86, %76, %66, %56, %46, %36
  %.179 = phi i32 [ %.07885, %41 ], [ %.07885, %46 ], [ %.07885, %51 ], [ %.07885, %56 ], [ %.07885, %61 ], [ %.07885, %66 ], [ %.07885, %71 ], [ %.07885, %76 ], [ %.07885, %81 ], [ %.07885, %86 ], [ %.07885, %91 ], [ %.07885, %96 ], [ %.07885, %101 ], [ %.07885, %108 ], [ %.07885, %115 ], [ %.07885, %120 ], [ %.07885, %125 ], [ %.07885, %130 ], [ %.07885, %135 ], [ %.07885, %140 ], [ %.07885, %145 ], [ %.07885, %150 ], [ %.07885, %155 ], [ %.07885, %160 ], [ %166, %165 ], [ %.07885, %170 ], [ %.07885, %172 ], [ %.07885, %36 ]
  %.1 = phi i32 [ %.086, %41 ], [ %47, %46 ], [ %.086, %51 ], [ %.086, %56 ], [ %.086, %61 ], [ %.086, %66 ], [ %.086, %71 ], [ %.086, %76 ], [ %.086, %81 ], [ %.086, %86 ], [ %.086, %91 ], [ %.086, %96 ], [ %.086, %101 ], [ %.086, %108 ], [ %.086, %115 ], [ %.086, %120 ], [ %.086, %125 ], [ %.086, %130 ], [ %.086, %135 ], [ %.086, %140 ], [ %.086, %145 ], [ %.086, %150 ], [ %.086, %155 ], [ %.086, %160 ], [ %.086, %165 ], [ %.086, %170 ], [ %.086, %172 ], [ %.086, %36 ]
  %174 = load i32, ptr %2, align 4, !tbaa !29
  %175 = add nsw i32 %174, 1
  store i32 %175, ptr %2, align 4, !tbaa !29
  %176 = icmp slt i32 %175, %5
  br i1 %176, label %31, label %._crit_edge, !llvm.loop !58

._crit_edge:                                      ; preds = %173, %1
  %.078.lcssa = phi i32 [ undef, %1 ], [ %.179, %173 ]
  %.0.lcssa = phi i32 [ undef, %1 ], [ %.1, %173 ]
  %177 = getelementptr inbounds i8, ptr %0, i64 1728
  %178 = load i32, ptr %177, align 8, !tbaa !35
  %.not = icmp eq i32 %178, 0
  br i1 %.not, label %183, label %179

179:                                              ; preds = %._crit_edge
  %180 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.39)
  %181 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %180, ptr noundef nonnull @.str.40)
  %182 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %181, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @exit(i32 noundef 0) #11
  unreachable

183:                                              ; preds = %._crit_edge
  %184 = getelementptr inbounds i8, ptr %0, i64 1720
  %185 = load double, ptr %184, align 8, !tbaa !30
  %186 = fmul double %185, 1.000000e+06
  store double %186, ptr %184, align 8, !tbaa !30
  %187 = getelementptr inbounds i8, ptr %0, i64 1464
  %188 = insertelement <4 x i32> poison, i32 %.0.lcssa, i64 0
  %189 = shufflevector <4 x i32> %188, <4 x i32> poison, <4 x i32> zeroinitializer
  store <4 x i32> %189, ptr %187, align 8, !tbaa !29
  %190 = getelementptr inbounds i8, ptr %0, i64 1496
  store i32 %.078.lcssa, ptr %190, align 8, !tbaa !60
  %191 = getelementptr inbounds i8, ptr %0, i64 1500
  store i32 %.078.lcssa, ptr %191, align 4, !tbaa !61
  %192 = load ptr, ptr %3, align 8, !tbaa !5
  %193 = call noundef i32 @_ZNK7XMLNode10nChildNodeEPKc(ptr noundef nonnull align 8 dereferenceable(8) %192, ptr noundef nonnull @.str.41)
  store i32 0, ptr %2, align 4, !tbaa !29
  %194 = icmp sgt i32 %193, 0
  br i1 %194, label %.lr.ph89, label %._crit_edge90

.lr.ph89:                                         ; preds = %183
  %195 = getelementptr inbounds i8, ptr %0, i64 1856
  %196 = getelementptr inbounds i8, ptr %0, i64 1848
  %197 = getelementptr inbounds i8, ptr %0, i64 1840
  %198 = getelementptr inbounds i8, ptr %0, i64 1832
  br label %199

199:                                              ; preds = %.lr.ph89, %228
  %200 = load ptr, ptr %3, align 8, !tbaa !5
  %201 = call noundef ptr @_ZNK7XMLNode15getChildNodePtrEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %200, ptr noundef nonnull @.str.41, ptr noundef nonnull %2)
  %202 = call noundef ptr @_ZNK7XMLNode12getAttributeEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %201, ptr noundef nonnull @.str.10, ptr noundef null)
  %203 = call noundef ptr @_ZNK7XMLNode12getAttributeEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %201, ptr noundef nonnull @.str.11, ptr noundef null)
  %.not83 = icmp eq ptr %202, null
  br i1 %.not83, label %204, label %206

204:                                              ; preds = %199
  %205 = call noundef ptr @_ZNK7XMLNode12getAttributeEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %201, ptr noundef nonnull @.str.12, ptr noundef null)
  call void @_ZN14McPATComponent19warnMissingStatNameEPKc(ptr noundef nonnull align 8 dereferenceable(1352) %0, ptr noundef %205)
  br label %228

206:                                              ; preds = %199
  %207 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %202, ptr noundef nonnull dereferenceable(1) @.str.42) #10
  %208 = icmp eq i32 %207, 0
  br i1 %208, label %209, label %211

209:                                              ; preds = %206
  %210 = call double @atof(ptr noundef %203) #10
  store double %210, ptr %198, align 8, !tbaa !62
  br label %228

211:                                              ; preds = %206
  %212 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %202, ptr noundef nonnull dereferenceable(1) @.str.43) #10
  %213 = icmp eq i32 %212, 0
  br i1 %213, label %214, label %216

214:                                              ; preds = %211
  %215 = call double @atof(ptr noundef %203) #10
  store double %215, ptr %197, align 8, !tbaa !63
  br label %228

216:                                              ; preds = %211
  %217 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %202, ptr noundef nonnull dereferenceable(1) @.str.44) #10
  %218 = icmp eq i32 %217, 0
  br i1 %218, label %219, label %221

219:                                              ; preds = %216
  %220 = call double @atof(ptr noundef %203) #10
  store double %220, ptr %196, align 8, !tbaa !64
  br label %228

221:                                              ; preds = %216
  %222 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %202, ptr noundef nonnull dereferenceable(1) @.str.45) #10
  %223 = icmp eq i32 %222, 0
  br i1 %223, label %224, label %227

224:                                              ; preds = %221
  %225 = call i32 @atoi(ptr nocapture noundef %203) #10
  %226 = sitofp i32 %225 to double
  store double %226, ptr %195, align 8, !tbaa !65
  br label %228

227:                                              ; preds = %221
  call void @_ZN14McPATComponent20warnUnrecognizedStatEPKc(ptr noundef nonnull align 8 dereferenceable(1352) %0, ptr noundef nonnull %202)
  br label %228

228:                                              ; preds = %209, %219, %227, %224, %214, %204
  %229 = load i32, ptr %2, align 4, !tbaa !29
  %230 = add nsw i32 %229, 1
  store i32 %230, ptr %2, align 4, !tbaa !29
  %231 = icmp slt i32 %230, %193
  br i1 %231, label %199, label %._crit_edge90, !llvm.loop !66

._crit_edge90:                                    ; preds = %228, %183
  %232 = getelementptr inbounds i8, ptr %0, i64 1748
  %233 = getelementptr inbounds i8, ptr %0, i64 1756
  %234 = load <2 x i32>, ptr %233, align 4, !tbaa !29
  %235 = shufflevector <2 x i32> %234, <2 x i32> poison, <2 x i32> <i32 1, i32 0>
  %236 = sitofp <2 x i32> %235 to <2 x double>
  %237 = fmul <2 x double> %236, <double 1.250000e-01, double 1.250000e-01>
  %238 = call <2 x double> @llvm.ceil.v2f64(<2 x double> %237)
  %239 = fptosi <2 x double> %238 to <2 x i32>
  %240 = add nsw <2 x i32> %235, %239
  store <2 x i32> %240, ptr %232, align 4, !tbaa !29
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #9
  ret void
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN16MemoryController17initialize_paramsEv(ptr noundef nonnull align 8 dereferenceable(1864)) local_unnamed_addr #4 align 2

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

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

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

declare void @_ZN14McPATComponent20warnMissingParamNameEPKc(ptr noundef nonnull align 8 dereferenceable(1352), ptr noundef) local_unnamed_addr #5

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

; Function Attrs: inlinehint mustprogress nofree nounwind willreturn memory(read) uwtable
declare double @atof(ptr nocapture noundef nonnull) local_unnamed_addr #7

; Function Attrs: inlinehint mustprogress nofree nounwind willreturn memory(read) uwtable
declare i32 @atoi(ptr nocapture noundef nonnull) local_unnamed_addr #7

declare void @_ZN14McPATComponent21warnUnrecognizedParamEPKc(ptr noundef nonnull align 8 dereferenceable(1352), ptr noundef) local_unnamed_addr #5

declare void @_ZN14McPATComponent19warnMissingStatNameEPKc(ptr noundef nonnull align 8 dereferenceable(1352), ptr noundef) local_unnamed_addr #5

declare void @_ZN14McPATComponent20warnUnrecognizedStatEPKc(ptr noundef nonnull align 8 dereferenceable(1352), ptr noundef) local_unnamed_addr #5

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <2 x double> @llvm.ceil.v2f64(<2 x double>) #8

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !14, i64 288}
!6 = !{!"_ZTS14McPATComponent", !7, i64 8, !14, i64 288, !15, i64 296, !19, i64 664, !9, i64 696, !22, i64 704, !26, i64 728, !27, i64 776, !27, i64 944, !12, i64 1112, !12, i64 1232}
!7 = !{!"_ZTS9Component", !8, i64 0, !12, i64 24, !12, i64 144, !9, i64 264, !9, i64 272}
!8 = !{!"_ZTS4Area", !9, i64 0, !9, i64 8, !9, i64 16}
!9 = !{!"double", !10, i64 0}
!10 = !{!"omnipotent char", !11, i64 0}
!11 = !{!"Simple C++ TBAA"}
!12 = !{!"_ZTS8powerDef", !13, i64 0, !13, i64 40, !13, i64 80}
!13 = !{!"_ZTS15powerComponents", !9, i64 0, !9, i64 8, !9, i64 16, !9, i64 24, !9, i64 32}
!14 = !{!"any pointer", !10, i64 0}
!15 = !{!"_ZTS14InputParameter", !16, i64 0, !16, i64 4, !16, i64 8, !16, i64 12, !16, i64 16, !17, i64 20, !16, i64 24, !16, i64 28, !16, i64 32, !16, i64 36, !16, i64 40, !16, i64 44, !9, i64 48, !9, i64 56, !16, i64 64, !16, i64 68, !16, i64 72, !16, i64 76, !16, i64 80, !17, i64 84, !17, i64 85, !17, i64 86, !17, i64 87, !17, i64 88, !16, i64 92, !16, i64 96, !16, i64 100, !16, i64 104, !16, i64 108, !16, i64 112, !16, i64 116, !16, i64 120, !16, i64 124, !16, i64 128, !16, i64 132, !16, i64 136, !16, i64 140, !16, i64 144, !16, i64 148, !18, i64 152, !16, i64 156, !17, i64 160, !16, i64 164, !16, i64 168, !16, i64 172, !16, i64 176, !16, i64 180, !16, i64 184, !16, i64 188, !17, i64 192, !16, i64 196, !16, i64 200, !16, i64 204, !16, i64 208, !16, i64 212, !16, i64 216, !16, i64 220, !16, i64 224, !16, i64 228, !16, i64 232, !16, i64 236, !16, i64 240, !16, i64 244, !16, i64 248, !16, i64 252, !16, i64 256, !16, i64 260, !16, i64 264, !16, i64 268, !16, i64 272, !16, i64 276, !16, i64 280, !16, i64 284, !16, i64 288, !16, i64 292, !16, i64 296, !17, i64 300, !16, i64 304, !16, i64 308, !16, i64 312, !17, i64 316, !17, i64 317, !16, i64 320, !16, i64 324, !17, i64 328, !9, i64 336, !9, i64 344, !17, i64 352, !16, i64 356, !16, i64 360, !17, i64 364}
!16 = !{!"int", !10, i64 0}
!17 = !{!"bool", !10, i64 0}
!18 = !{!"_ZTS9Wire_type", !10, i64 0}
!19 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !20, i64 0, !21, i64 8, !10, i64 16}
!20 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !14, i64 0}
!21 = !{!"long", !10, i64 0}
!22 = !{!"_ZTSSt6vectorIP14McPATComponentSaIS1_EE", !23, i64 0}
!23 = !{!"_ZTSSt12_Vector_baseIP14McPATComponentSaIS1_EE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseIP14McPATComponentSaIS1_EE12_Vector_implE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseIP14McPATComponentSaIS1_EE17_Vector_impl_dataE", !14, i64 0, !14, i64 8, !14, i64 16}
!26 = !{!"_ZTS11McPATOutput", !9, i64 0, !9, i64 8, !9, i64 16, !9, i64 24, !9, i64 32, !9, i64 40}
!27 = !{!"_ZTS8statsDef", !28, i64 0, !28, i64 24, !28, i64 48, !28, i64 72, !28, i64 96, !28, i64 120, !28, i64 144}
!28 = !{!"_ZTS15statsComponents", !9, i64 0, !9, i64 8, !9, i64 16}
!29 = !{!16, !16, i64 0}
!30 = !{!31, !9, i64 1720}
!31 = !{!"_ZTS16MemoryController", !6, i64 0, !15, i64 1352, !32, i64 1720, !34, i64 1832}
!32 = !{!"_ZTS12MCParameters", !9, i64 0, !33, i64 8, !9, i64 16, !16, i64 24, !16, i64 28, !16, i64 32, !16, i64 36, !16, i64 40, !16, i64 44, !16, i64 48, !16, i64 52, !16, i64 56, !16, i64 60, !17, i64 64, !17, i64 65, !16, i64 68, !16, i64 72, !16, i64 76, !16, i64 80, !16, i64 84, !16, i64 88, !16, i64 92, !16, i64 96, !16, i64 100, !16, i64 104}
!33 = !{!"_ZTS15MemoryCtrl_type", !10, i64 0}
!34 = !{!"_ZTS12MCStatistics", !9, i64 0, !9, i64 8, !9, i64 16, !9, i64 24}
!35 = !{!31, !33, i64 1728}
!36 = !{!31, !9, i64 1736}
!37 = !{!31, !16, i64 1760}
!38 = !{!31, !16, i64 1756}
!39 = !{!31, !16, i64 1744}
!40 = !{!31, !16, i64 1764}
!41 = !{!31, !16, i64 1768}
!42 = !{!31, !16, i64 1772}
!43 = !{!31, !16, i64 1776}
!44 = !{!31, !16, i64 1780}
!45 = !{!31, !17, i64 1784}
!46 = !{!31, !17, i64 1785}
!47 = !{!31, !16, i64 1788}
!48 = !{!31, !16, i64 1792}
!49 = !{!31, !16, i64 1796}
!50 = !{!31, !16, i64 1800}
!51 = !{!31, !16, i64 1804}
!52 = !{!31, !16, i64 1808}
!53 = !{!31, !16, i64 1812}
!54 = !{!31, !16, i64 1816}
!55 = !{!31, !16, i64 1820}
!56 = !{!31, !16, i64 1824}
!57 = !{!31, !18, i64 1504}
!58 = distinct !{!58, !59}
!59 = !{!"llvm.loop.mustprogress"}
!60 = !{!31, !16, i64 1496}
!61 = !{!31, !16, i64 1500}
!62 = !{!31, !9, i64 1832}
!63 = !{!31, !9, i64 1840}
!64 = !{!31, !9, i64 1848}
!65 = !{!31, !9, i64 1856}
!66 = distinct !{!66, !59}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalDCEPass,GlobalOptPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass