; LLVM IR from gem5/gem5 :: ext/mcpat/cacheunit.ll (ZN9CacheUnit29set_cache_param_from_xml_dataEv)

; 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.CacheUnit = type { %class.McPATComponent, i32, %class.CacheParameters, %class.CacheStatistics, i32, i8, double, double }
%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.CacheParameters = type { i32, double, double, double, double, double, double, double, 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, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i32, i32, i32, i32 }
%class.CacheStatistics = type { double, double, double, double, i8, double, double, double, double, double, double, double, double, double, i32, i32, i32, i32, double, double }

@_ZN14McPATComponent21target_core_clockrateE = external global double, align 8
@.str.6 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [6 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 [11 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [10 x i8], align 1
@stderr = external global ptr, align 8
@.str.68 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [15 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: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #1 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN9CacheUnit29set_cache_param_from_xml_dataEv(ptr noundef nonnull align 8 dereferenceable(1784) %0) #1 align 2 {
  %2 = alloca ptr, align 8
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %16 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #9
  %17 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  call void @llvm.memset.p0.i64(ptr align 8 %17, i8 0, i64 256, i1 false)
  %18 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 3
  call void @llvm.memset.p0.i64(ptr align 8 %18, i8 0, i64 144, i1 false)
  %19 = load double, ptr @_ZN14McPATComponent21target_core_clockrateE, align 8, !tbaa !9
  %20 = getelementptr inbounds %class.McPATComponent, ptr %16, i32 0, i32 5
  store double %19, ptr %20, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #9
  %21 = getelementptr inbounds %class.McPATComponent, ptr %16, i32 0, i32 2
  %22 = load ptr, ptr %21, align 8, !tbaa !31
  %23 = call noundef ptr @_ZNK7XMLNode12getAttributeEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %22, ptr noundef @.str.6, ptr noundef null)
  store ptr %23, ptr %5, align 8, !tbaa !5
  %24 = load ptr, ptr %5, align 8, !tbaa !5
  %25 = icmp ne ptr %24, null
  br i1 %25, label %26, label %30

26:                                               ; preds = %1
  %27 = load ptr, ptr %5, align 8, !tbaa !5
  %28 = getelementptr inbounds %class.McPATComponent, ptr %16, i32 0, i32 4
  %29 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef %27)
  br label %30

30:                                               ; preds = %26, %1
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #9
  %31 = getelementptr inbounds %class.McPATComponent, ptr %16, i32 0, i32 2
  %32 = load ptr, ptr %31, align 8, !tbaa !31
  %33 = call noundef i32 @_ZNK7XMLNode10nChildNodeEPKc(ptr noundef nonnull align 8 dereferenceable(8) %32, ptr noundef @.str.7)
  store i32 %33, ptr %6, align 4, !tbaa !32
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #9
  store i32 0, ptr %7, align 4, !tbaa !32
  br label %34

34:                                               ; preds = %630, %30
  %35 = load i32, ptr %7, align 4, !tbaa !32
  %36 = load i32, ptr %6, align 4, !tbaa !32
  %37 = icmp slt i32 %35, %36
  br i1 %37, label %38, label %633

38:                                               ; preds = %34
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #9
  %39 = getelementptr inbounds %class.McPATComponent, ptr %16, i32 0, i32 2
  %40 = load ptr, ptr %39, align 8, !tbaa !31
  %41 = call noundef ptr @_ZNK7XMLNode15getChildNodePtrEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef @.str.7, ptr noundef %7)
  store ptr %41, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #9
  %42 = load ptr, ptr %10, align 8, !tbaa !5
  %43 = call noundef ptr @_ZNK7XMLNode12getAttributeEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef @.str.6, ptr noundef null)
  store ptr %43, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #9
  %44 = load ptr, ptr %10, align 8, !tbaa !5
  %45 = call noundef ptr @_ZNK7XMLNode12getAttributeEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef @.str.8, ptr noundef null)
  store ptr %45, ptr %12, align 8, !tbaa !5
  %46 = load ptr, ptr %11, align 8, !tbaa !5
  %47 = icmp ne ptr %46, null
  br i1 %47, label %51, label %48

48:                                               ; preds = %38
  %49 = load ptr, ptr %10, align 8, !tbaa !5
  %50 = call noundef ptr @_ZNK7XMLNode12getAttributeEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %49, ptr noundef @.str.9, ptr noundef null)
  call void @_ZN14McPATComponent20warnMissingParamNameEPKc(ptr noundef nonnull align 8 dereferenceable(1352) %16, ptr noundef %50)
  br label %629

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

55:                                               ; preds = %51
  %56 = load ptr, ptr %12, align 8, !tbaa !5
  %57 = call i32 @atoi(ptr noundef %56) #10
  store i32 %57, ptr %3, align 4, !tbaa !32
  br label %628

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

62:                                               ; preds = %58
  %63 = load ptr, ptr %12, align 8, !tbaa !5
  %64 = call double @atof(ptr noundef %63) #10
  %65 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %66 = getelementptr inbounds %class.CacheParameters, ptr %65, i32 0, i32 2
  store double %64, ptr %66, align 8, !tbaa !33
  br label %627

67:                                               ; preds = %58
  %68 = load ptr, ptr %11, align 8, !tbaa !5
  %69 = call i32 @strcmp(ptr noundef %68, ptr noundef @.str.12) #10
  %70 = icmp eq i32 %69, 0
  br i1 %70, label %71, label %76

71:                                               ; preds = %67
  %72 = load ptr, ptr %12, align 8, !tbaa !5
  %73 = call double @atof(ptr noundef %72) #10
  %74 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %75 = getelementptr inbounds %class.CacheParameters, ptr %74, i32 0, i32 3
  store double %73, ptr %75, align 8, !tbaa !43
  br label %626

76:                                               ; preds = %67
  %77 = load ptr, ptr %11, align 8, !tbaa !5
  %78 = call i32 @strcmp(ptr noundef %77, ptr noundef @.str.13) #10
  %79 = icmp eq i32 %78, 0
  br i1 %79, label %80, label %85

80:                                               ; preds = %76
  %81 = load ptr, ptr %12, align 8, !tbaa !5
  %82 = call double @atof(ptr noundef %81) #10
  %83 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %84 = getelementptr inbounds %class.CacheParameters, ptr %83, i32 0, i32 4
  store double %82, ptr %84, align 8, !tbaa !44
  br label %625

85:                                               ; preds = %76
  %86 = load ptr, ptr %11, align 8, !tbaa !5
  %87 = call i32 @strcmp(ptr noundef %86, ptr noundef @.str.14) #10
  %88 = icmp eq i32 %87, 0
  br i1 %88, label %89, label %94

89:                                               ; preds = %85
  %90 = load ptr, ptr %12, align 8, !tbaa !5
  %91 = call double @atof(ptr noundef %90) #10
  %92 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %93 = getelementptr inbounds %class.CacheParameters, ptr %92, i32 0, i32 5
  store double %91, ptr %93, align 8, !tbaa !45
  br label %624

94:                                               ; preds = %85
  %95 = load ptr, ptr %11, align 8, !tbaa !5
  %96 = call i32 @strcmp(ptr noundef %95, ptr noundef @.str.15) #10
  %97 = icmp eq i32 %96, 0
  br i1 %97, label %98, label %103

98:                                               ; preds = %94
  %99 = load ptr, ptr %12, align 8, !tbaa !5
  %100 = call double @atof(ptr noundef %99) #10
  %101 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %102 = getelementptr inbounds %class.CacheParameters, ptr %101, i32 0, i32 7
  store double %100, ptr %102, align 8, !tbaa !46
  br label %623

103:                                              ; preds = %94
  %104 = load ptr, ptr %11, align 8, !tbaa !5
  %105 = call i32 @strcmp(ptr noundef %104, ptr noundef @.str.16) #10
  %106 = icmp eq i32 %105, 0
  br i1 %106, label %107, label %112

107:                                              ; preds = %103
  %108 = load ptr, ptr %12, align 8, !tbaa !5
  %109 = call double @atof(ptr noundef %108) #10
  %110 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %111 = getelementptr inbounds %class.CacheParameters, ptr %110, i32 0, i32 6
  store double %109, ptr %111, align 8, !tbaa !47
  br label %622

112:                                              ; preds = %103
  %113 = load ptr, ptr %11, align 8, !tbaa !5
  %114 = call i32 @strcmp(ptr noundef %113, ptr noundef @.str.17) #10
  %115 = icmp eq i32 %114, 0
  br i1 %115, label %116, label %121

116:                                              ; preds = %112
  %117 = load ptr, ptr %12, align 8, !tbaa !5
  %118 = call i32 @atoi(ptr noundef %117) #10
  %119 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %120 = getelementptr inbounds %class.CacheParameters, ptr %119, i32 0, i32 8
  store i32 %118, ptr %120, align 8, !tbaa !48
  br label %621

121:                                              ; preds = %112
  %122 = load ptr, ptr %11, align 8, !tbaa !5
  %123 = call i32 @strcmp(ptr noundef %122, ptr noundef @.str.18) #10
  %124 = icmp eq i32 %123, 0
  br i1 %124, label %125, label %130

125:                                              ; preds = %121
  %126 = load ptr, ptr %12, align 8, !tbaa !5
  %127 = call i32 @atoi(ptr noundef %126) #10
  %128 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %129 = getelementptr inbounds %class.CacheParameters, ptr %128, i32 0, i32 9
  store i32 %127, ptr %129, align 4, !tbaa !49
  br label %620

130:                                              ; preds = %121
  %131 = load ptr, ptr %11, align 8, !tbaa !5
  %132 = call i32 @strcmp(ptr noundef %131, ptr noundef @.str.19) #10
  %133 = icmp eq i32 %132, 0
  br i1 %133, label %134, label %139

134:                                              ; preds = %130
  %135 = load ptr, ptr %12, align 8, !tbaa !5
  %136 = call i32 @atoi(ptr noundef %135) #10
  %137 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %138 = getelementptr inbounds %class.CacheParameters, ptr %137, i32 0, i32 10
  store i32 %136, ptr %138, align 8, !tbaa !50
  br label %619

139:                                              ; preds = %130
  %140 = load ptr, ptr %11, align 8, !tbaa !5
  %141 = call i32 @strcmp(ptr noundef %140, ptr noundef @.str.20) #10
  %142 = icmp eq i32 %141, 0
  br i1 %142, label %143, label %148

143:                                              ; preds = %139
  %144 = load ptr, ptr %12, align 8, !tbaa !5
  %145 = call i32 @atoi(ptr noundef %144) #10
  %146 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %147 = getelementptr inbounds %class.CacheParameters, ptr %146, i32 0, i32 11
  store i32 %145, ptr %147, align 4, !tbaa !51
  br label %618

148:                                              ; preds = %139
  %149 = load ptr, ptr %11, align 8, !tbaa !5
  %150 = call i32 @strcmp(ptr noundef %149, ptr noundef @.str.21) #10
  %151 = icmp eq i32 %150, 0
  br i1 %151, label %152, label %157

152:                                              ; preds = %148
  %153 = load ptr, ptr %12, align 8, !tbaa !5
  %154 = call i32 @atoi(ptr noundef %153) #10
  %155 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %156 = getelementptr inbounds %class.CacheParameters, ptr %155, i32 0, i32 12
  store i32 %154, ptr %156, align 8, !tbaa !52
  br label %617

157:                                              ; preds = %148
  %158 = load ptr, ptr %11, align 8, !tbaa !5
  %159 = call i32 @strcmp(ptr noundef %158, ptr noundef @.str.22) #10
  %160 = icmp eq i32 %159, 0
  br i1 %160, label %161, label %166

161:                                              ; preds = %157
  %162 = load ptr, ptr %12, align 8, !tbaa !5
  %163 = call i32 @atoi(ptr noundef %162) #10
  %164 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %165 = getelementptr inbounds %class.CacheParameters, ptr %164, i32 0, i32 13
  store i32 %163, ptr %165, align 4, !tbaa !53
  br label %616

166:                                              ; preds = %157
  %167 = load ptr, ptr %11, align 8, !tbaa !5
  %168 = call i32 @strcmp(ptr noundef %167, ptr noundef @.str.23) #10
  %169 = icmp eq i32 %168, 0
  br i1 %169, label %170, label %175

170:                                              ; preds = %166
  %171 = load ptr, ptr %12, align 8, !tbaa !5
  %172 = call i32 @atoi(ptr noundef %171) #10
  %173 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %174 = getelementptr inbounds %class.CacheParameters, ptr %173, i32 0, i32 14
  store i32 %172, ptr %174, align 8, !tbaa !54
  br label %615

175:                                              ; preds = %166
  %176 = load ptr, ptr %11, align 8, !tbaa !5
  %177 = call i32 @strcmp(ptr noundef %176, ptr noundef @.str.24) #10
  %178 = icmp eq i32 %177, 0
  br i1 %178, label %179, label %184

179:                                              ; preds = %175
  %180 = load ptr, ptr %12, align 8, !tbaa !5
  %181 = call i32 @atoi(ptr noundef %180) #10
  %182 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %183 = getelementptr inbounds %class.CacheParameters, ptr %182, i32 0, i32 15
  store i32 %181, ptr %183, align 4, !tbaa !55
  br label %614

184:                                              ; preds = %175
  %185 = load ptr, ptr %11, align 8, !tbaa !5
  %186 = call i32 @strcmp(ptr noundef %185, ptr noundef @.str.25) #10
  %187 = icmp eq i32 %186, 0
  br i1 %187, label %188, label %193

188:                                              ; preds = %184
  %189 = load ptr, ptr %12, align 8, !tbaa !5
  %190 = call i32 @atoi(ptr noundef %189) #10
  %191 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %192 = getelementptr inbounds %class.CacheParameters, ptr %191, i32 0, i32 16
  store i32 %190, ptr %192, align 8, !tbaa !56
  br label %613

193:                                              ; preds = %184
  %194 = load ptr, ptr %11, align 8, !tbaa !5
  %195 = call i32 @strcmp(ptr noundef %194, ptr noundef @.str.26) #10
  %196 = icmp eq i32 %195, 0
  br i1 %196, label %197, label %202

197:                                              ; preds = %193
  %198 = load ptr, ptr %12, align 8, !tbaa !5
  %199 = call i32 @atoi(ptr noundef %198) #10
  %200 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %201 = getelementptr inbounds %class.CacheParameters, ptr %200, i32 0, i32 17
  store i32 %199, ptr %201, align 4, !tbaa !57
  br label %612

202:                                              ; preds = %193
  %203 = load ptr, ptr %11, align 8, !tbaa !5
  %204 = call i32 @strcmp(ptr noundef %203, ptr noundef @.str.27) #10
  %205 = icmp eq i32 %204, 0
  br i1 %205, label %206, label %211

206:                                              ; preds = %202
  %207 = load ptr, ptr %12, align 8, !tbaa !5
  %208 = call i32 @atoi(ptr noundef %207) #10
  %209 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %210 = getelementptr inbounds %class.CacheParameters, ptr %209, i32 0, i32 18
  store i32 %208, ptr %210, align 8, !tbaa !58
  br label %611

211:                                              ; preds = %202
  %212 = load ptr, ptr %11, align 8, !tbaa !5
  %213 = call i32 @strcmp(ptr noundef %212, ptr noundef @.str.28) #10
  %214 = icmp eq i32 %213, 0
  br i1 %214, label %215, label %220

215:                                              ; preds = %211
  %216 = load ptr, ptr %12, align 8, !tbaa !5
  %217 = call i32 @atoi(ptr noundef %216) #10
  %218 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %219 = getelementptr inbounds %class.CacheParameters, ptr %218, i32 0, i32 19
  store i32 %217, ptr %219, align 4, !tbaa !59
  br label %610

220:                                              ; preds = %211
  %221 = load ptr, ptr %11, align 8, !tbaa !5
  %222 = call i32 @strcmp(ptr noundef %221, ptr noundef @.str.29) #10
  %223 = icmp eq i32 %222, 0
  br i1 %223, label %224, label %229

224:                                              ; preds = %220
  %225 = load ptr, ptr %12, align 8, !tbaa !5
  %226 = call i32 @atoi(ptr noundef %225) #10
  %227 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %228 = getelementptr inbounds %class.CacheParameters, ptr %227, i32 0, i32 20
  store i32 %226, ptr %228, align 8, !tbaa !60
  br label %609

229:                                              ; preds = %220
  %230 = load ptr, ptr %11, align 8, !tbaa !5
  %231 = call i32 @strcmp(ptr noundef %230, ptr noundef @.str.30) #10
  %232 = icmp eq i32 %231, 0
  br i1 %232, label %233, label %238

233:                                              ; preds = %229
  %234 = load ptr, ptr %12, align 8, !tbaa !5
  %235 = call i32 @atoi(ptr noundef %234) #10
  %236 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %237 = getelementptr inbounds %class.CacheParameters, ptr %236, i32 0, i32 21
  store i32 %235, ptr %237, align 4, !tbaa !61
  br label %608

238:                                              ; preds = %229
  %239 = load ptr, ptr %11, align 8, !tbaa !5
  %240 = call i32 @strcmp(ptr noundef %239, ptr noundef @.str.31) #10
  %241 = icmp eq i32 %240, 0
  br i1 %241, label %242, label %247

242:                                              ; preds = %238
  %243 = load ptr, ptr %12, align 8, !tbaa !5
  %244 = call i32 @atoi(ptr noundef %243) #10
  %245 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %246 = getelementptr inbounds %class.CacheParameters, ptr %245, i32 0, i32 22
  store i32 %244, ptr %246, align 8, !tbaa !62
  br label %607

247:                                              ; preds = %238
  %248 = load ptr, ptr %11, align 8, !tbaa !5
  %249 = call i32 @strcmp(ptr noundef %248, ptr noundef @.str.32) #10
  %250 = icmp eq i32 %249, 0
  br i1 %250, label %251, label %256

251:                                              ; preds = %247
  %252 = load ptr, ptr %12, align 8, !tbaa !5
  %253 = call i32 @atoi(ptr noundef %252) #10
  %254 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %255 = getelementptr inbounds %class.CacheParameters, ptr %254, i32 0, i32 23
  store i32 %253, ptr %255, align 4, !tbaa !63
  br label %606

256:                                              ; preds = %247
  %257 = load ptr, ptr %11, align 8, !tbaa !5
  %258 = call i32 @strcmp(ptr noundef %257, ptr noundef @.str.33) #10
  %259 = icmp eq i32 %258, 0
  br i1 %259, label %260, label %265

260:                                              ; preds = %256
  %261 = load ptr, ptr %12, align 8, !tbaa !5
  %262 = call i32 @atoi(ptr noundef %261) #10
  %263 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %264 = getelementptr inbounds %class.CacheParameters, ptr %263, i32 0, i32 24
  store i32 %262, ptr %264, align 8, !tbaa !64
  br label %605

265:                                              ; preds = %256
  %266 = load ptr, ptr %11, align 8, !tbaa !5
  %267 = call i32 @strcmp(ptr noundef %266, ptr noundef @.str.34) #10
  %268 = icmp eq i32 %267, 0
  br i1 %268, label %269, label %274

269:                                              ; preds = %265
  %270 = load ptr, ptr %12, align 8, !tbaa !5
  %271 = call i32 @atoi(ptr noundef %270) #10
  %272 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %273 = getelementptr inbounds %class.CacheParameters, ptr %272, i32 0, i32 25
  store i32 %271, ptr %273, align 4, !tbaa !65
  br label %604

274:                                              ; preds = %265
  %275 = load ptr, ptr %11, align 8, !tbaa !5
  %276 = call i32 @strcmp(ptr noundef %275, ptr noundef @.str.35) #10
  %277 = icmp eq i32 %276, 0
  br i1 %277, label %278, label %283

278:                                              ; preds = %274
  %279 = load ptr, ptr %12, align 8, !tbaa !5
  %280 = call i32 @atoi(ptr noundef %279) #10
  %281 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %282 = getelementptr inbounds %class.CacheParameters, ptr %281, i32 0, i32 26
  store i32 %280, ptr %282, align 8, !tbaa !66
  br label %603

283:                                              ; preds = %274
  %284 = load ptr, ptr %11, align 8, !tbaa !5
  %285 = call i32 @strcmp(ptr noundef %284, ptr noundef @.str.36) #10
  %286 = icmp eq i32 %285, 0
  br i1 %286, label %287, label %292

287:                                              ; preds = %283
  %288 = load ptr, ptr %12, align 8, !tbaa !5
  %289 = call i32 @atoi(ptr noundef %288) #10
  %290 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %291 = getelementptr inbounds %class.CacheParameters, ptr %290, i32 0, i32 27
  store i32 %289, ptr %291, align 4, !tbaa !67
  br label %602

292:                                              ; preds = %283
  %293 = load ptr, ptr %11, align 8, !tbaa !5
  %294 = call i32 @strcmp(ptr noundef %293, ptr noundef @.str.37) #10
  %295 = icmp eq i32 %294, 0
  br i1 %295, label %296, label %301

296:                                              ; preds = %292
  %297 = load ptr, ptr %12, align 8, !tbaa !5
  %298 = call i32 @atoi(ptr noundef %297) #10
  %299 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %300 = getelementptr inbounds %class.CacheParameters, ptr %299, i32 0, i32 28
  store i32 %298, ptr %300, align 8, !tbaa !68
  br label %601

301:                                              ; preds = %292
  %302 = load ptr, ptr %11, align 8, !tbaa !5
  %303 = call i32 @strcmp(ptr noundef %302, ptr noundef @.str.38) #10
  %304 = icmp eq i32 %303, 0
  br i1 %304, label %305, label %310

305:                                              ; preds = %301
  %306 = load ptr, ptr %12, align 8, !tbaa !5
  %307 = call i32 @atoi(ptr noundef %306) #10
  %308 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %309 = getelementptr inbounds %class.CacheParameters, ptr %308, i32 0, i32 29
  store i32 %307, ptr %309, align 4, !tbaa !69
  br label %600

310:                                              ; preds = %301
  %311 = load ptr, ptr %11, align 8, !tbaa !5
  %312 = call i32 @strcmp(ptr noundef %311, ptr noundef @.str.39) #10
  %313 = icmp eq i32 %312, 0
  br i1 %313, label %314, label %319

314:                                              ; preds = %310
  %315 = load ptr, ptr %12, align 8, !tbaa !5
  %316 = call i32 @atoi(ptr noundef %315) #10
  %317 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %318 = getelementptr inbounds %class.CacheParameters, ptr %317, i32 0, i32 30
  store i32 %316, ptr %318, align 8, !tbaa !70
  br label %599

319:                                              ; preds = %310
  %320 = load ptr, ptr %11, align 8, !tbaa !5
  %321 = call i32 @strcmp(ptr noundef %320, ptr noundef @.str.40) #10
  %322 = icmp eq i32 %321, 0
  br i1 %322, label %323, label %328

323:                                              ; preds = %319
  %324 = load ptr, ptr %12, align 8, !tbaa !5
  %325 = call i32 @atoi(ptr noundef %324) #10
  %326 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %327 = getelementptr inbounds %class.CacheParameters, ptr %326, i32 0, i32 31
  store i32 %325, ptr %327, align 4, !tbaa !71
  br label %598

328:                                              ; preds = %319
  %329 = load ptr, ptr %11, align 8, !tbaa !5
  %330 = call i32 @strcmp(ptr noundef %329, ptr noundef @.str.41) #10
  %331 = icmp eq i32 %330, 0
  br i1 %331, label %332, label %337

332:                                              ; preds = %328
  %333 = load ptr, ptr %12, align 8, !tbaa !5
  %334 = call i32 @atoi(ptr noundef %333) #10
  %335 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %336 = getelementptr inbounds %class.CacheParameters, ptr %335, i32 0, i32 32
  store i32 %334, ptr %336, align 8, !tbaa !72
  br label %597

337:                                              ; preds = %328
  %338 = load ptr, ptr %11, align 8, !tbaa !5
  %339 = call i32 @strcmp(ptr noundef %338, ptr noundef @.str.42) #10
  %340 = icmp eq i32 %339, 0
  br i1 %340, label %341, label %346

341:                                              ; preds = %337
  %342 = load ptr, ptr %12, align 8, !tbaa !5
  %343 = call i32 @atoi(ptr noundef %342) #10
  %344 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %345 = getelementptr inbounds %class.CacheParameters, ptr %344, i32 0, i32 33
  store i32 %343, ptr %345, align 4, !tbaa !73
  br label %596

346:                                              ; preds = %337
  %347 = load ptr, ptr %11, align 8, !tbaa !5
  %348 = call i32 @strcmp(ptr noundef %347, ptr noundef @.str.43) #10
  %349 = icmp eq i32 %348, 0
  br i1 %349, label %350, label %355

350:                                              ; preds = %346
  %351 = load ptr, ptr %12, align 8, !tbaa !5
  %352 = call i32 @atoi(ptr noundef %351) #10
  %353 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %354 = getelementptr inbounds %class.CacheParameters, ptr %353, i32 0, i32 34
  store i32 %352, ptr %354, align 8, !tbaa !74
  br label %595

355:                                              ; preds = %346
  %356 = load ptr, ptr %11, align 8, !tbaa !5
  %357 = call i32 @strcmp(ptr noundef %356, ptr noundef @.str.44) #10
  %358 = icmp eq i32 %357, 0
  br i1 %358, label %359, label %364

359:                                              ; preds = %355
  %360 = load ptr, ptr %12, align 8, !tbaa !5
  %361 = call i32 @atoi(ptr noundef %360) #10
  %362 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %363 = getelementptr inbounds %class.CacheParameters, ptr %362, i32 0, i32 35
  store i32 %361, ptr %363, align 4, !tbaa !75
  br label %594

364:                                              ; preds = %355
  %365 = load ptr, ptr %11, align 8, !tbaa !5
  %366 = call i32 @strcmp(ptr noundef %365, ptr noundef @.str.45) #10
  %367 = icmp eq i32 %366, 0
  br i1 %367, label %368, label %373

368:                                              ; preds = %364
  %369 = load ptr, ptr %12, align 8, !tbaa !5
  %370 = call i32 @atoi(ptr noundef %369) #10
  %371 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %372 = getelementptr inbounds %class.CacheParameters, ptr %371, i32 0, i32 36
  store i32 %370, ptr %372, align 8, !tbaa !76
  br label %593

373:                                              ; preds = %364
  %374 = load ptr, ptr %11, align 8, !tbaa !5
  %375 = call i32 @strcmp(ptr noundef %374, ptr noundef @.str.46) #10
  %376 = icmp eq i32 %375, 0
  br i1 %376, label %377, label %382

377:                                              ; preds = %373
  %378 = load ptr, ptr %12, align 8, !tbaa !5
  %379 = call i32 @atoi(ptr noundef %378) #10
  %380 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %381 = getelementptr inbounds %class.CacheParameters, ptr %380, i32 0, i32 37
  store i32 %379, ptr %381, align 4, !tbaa !77
  br label %592

382:                                              ; preds = %373
  %383 = load ptr, ptr %11, align 8, !tbaa !5
  %384 = call i32 @strcmp(ptr noundef %383, ptr noundef @.str.47) #10
  %385 = icmp eq i32 %384, 0
  br i1 %385, label %386, label %391

386:                                              ; preds = %382
  %387 = load ptr, ptr %12, align 8, !tbaa !5
  %388 = call i32 @atoi(ptr noundef %387) #10
  %389 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %390 = getelementptr inbounds %class.CacheParameters, ptr %389, i32 0, i32 38
  store i32 %388, ptr %390, align 8, !tbaa !78
  br label %591

391:                                              ; preds = %382
  %392 = load ptr, ptr %11, align 8, !tbaa !5
  %393 = call i32 @strcmp(ptr noundef %392, ptr noundef @.str.48) #10
  %394 = icmp eq i32 %393, 0
  br i1 %394, label %395, label %400

395:                                              ; preds = %391
  %396 = load ptr, ptr %12, align 8, !tbaa !5
  %397 = call i32 @atoi(ptr noundef %396) #10
  %398 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %399 = getelementptr inbounds %class.CacheParameters, ptr %398, i32 0, i32 39
  store i32 %397, ptr %399, align 4, !tbaa !79
  br label %590

400:                                              ; preds = %391
  %401 = load ptr, ptr %11, align 8, !tbaa !5
  %402 = call i32 @strcmp(ptr noundef %401, ptr noundef @.str.49) #10
  %403 = icmp eq i32 %402, 0
  br i1 %403, label %404, label %409

404:                                              ; preds = %400
  %405 = load ptr, ptr %12, align 8, !tbaa !5
  %406 = call i32 @atoi(ptr noundef %405) #10
  %407 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %408 = getelementptr inbounds %class.CacheParameters, ptr %407, i32 0, i32 40
  store i32 %406, ptr %408, align 8, !tbaa !80
  br label %589

409:                                              ; preds = %400
  %410 = load ptr, ptr %11, align 8, !tbaa !5
  %411 = call i32 @strcmp(ptr noundef %410, ptr noundef @.str.50) #10
  %412 = icmp eq i32 %411, 0
  br i1 %412, label %413, label %418

413:                                              ; preds = %409
  %414 = load ptr, ptr %12, align 8, !tbaa !5
  %415 = call i32 @atoi(ptr noundef %414) #10
  %416 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %417 = getelementptr inbounds %class.CacheParameters, ptr %416, i32 0, i32 41
  store i32 %415, ptr %417, align 4, !tbaa !81
  br label %588

418:                                              ; preds = %409
  %419 = load ptr, ptr %11, align 8, !tbaa !5
  %420 = call i32 @strcmp(ptr noundef %419, ptr noundef @.str.51) #10
  %421 = icmp eq i32 %420, 0
  br i1 %421, label %422, label %427

422:                                              ; preds = %418
  %423 = load ptr, ptr %12, align 8, !tbaa !5
  %424 = call i32 @atoi(ptr noundef %423) #10
  %425 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %426 = getelementptr inbounds %class.CacheParameters, ptr %425, i32 0, i32 42
  store i32 %424, ptr %426, align 8, !tbaa !82
  br label %587

427:                                              ; preds = %418
  %428 = load ptr, ptr %11, align 8, !tbaa !5
  %429 = call i32 @strcmp(ptr noundef %428, ptr noundef @.str.52) #10
  %430 = icmp eq i32 %429, 0
  br i1 %430, label %431, label %436

431:                                              ; preds = %427
  %432 = load ptr, ptr %12, align 8, !tbaa !5
  %433 = call i32 @atoi(ptr noundef %432) #10
  %434 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %435 = getelementptr inbounds %class.CacheParameters, ptr %434, i32 0, i32 43
  store i32 %433, ptr %435, align 4, !tbaa !83
  br label %586

436:                                              ; preds = %427
  %437 = load ptr, ptr %11, align 8, !tbaa !5
  %438 = call i32 @strcmp(ptr noundef %437, ptr noundef @.str.53) #10
  %439 = icmp eq i32 %438, 0
  br i1 %439, label %440, label %445

440:                                              ; preds = %436
  %441 = load ptr, ptr %12, align 8, !tbaa !5
  %442 = call i32 @atoi(ptr noundef %441) #10
  %443 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %444 = getelementptr inbounds %class.CacheParameters, ptr %443, i32 0, i32 44
  store i32 %442, ptr %444, align 8, !tbaa !84
  br label %585

445:                                              ; preds = %436
  %446 = load ptr, ptr %11, align 8, !tbaa !5
  %447 = call i32 @strcmp(ptr noundef %446, ptr noundef @.str.54) #10
  %448 = icmp eq i32 %447, 0
  br i1 %448, label %449, label %454

449:                                              ; preds = %445
  %450 = load ptr, ptr %12, align 8, !tbaa !5
  %451 = call i32 @atoi(ptr noundef %450) #10
  %452 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %453 = getelementptr inbounds %class.CacheParameters, ptr %452, i32 0, i32 45
  store i32 %451, ptr %453, align 4, !tbaa !85
  br label %584

454:                                              ; preds = %445
  %455 = load ptr, ptr %11, align 8, !tbaa !5
  %456 = call i32 @strcmp(ptr noundef %455, ptr noundef @.str.55) #10
  %457 = icmp eq i32 %456, 0
  br i1 %457, label %458, label %463

458:                                              ; preds = %454
  %459 = load ptr, ptr %12, align 8, !tbaa !5
  %460 = call i32 @atoi(ptr noundef %459) #10
  %461 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %462 = getelementptr inbounds %class.CacheParameters, ptr %461, i32 0, i32 46
  store i32 %460, ptr %462, align 8, !tbaa !86
  br label %583

463:                                              ; preds = %454
  %464 = load ptr, ptr %11, align 8, !tbaa !5
  %465 = call i32 @strcmp(ptr noundef %464, ptr noundef @.str.56) #10
  %466 = icmp eq i32 %465, 0
  br i1 %466, label %467, label %472

467:                                              ; preds = %463
  %468 = load ptr, ptr %12, align 8, !tbaa !5
  %469 = call i32 @atoi(ptr noundef %468) #10
  %470 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %471 = getelementptr inbounds %class.CacheParameters, ptr %470, i32 0, i32 47
  store i32 %469, ptr %471, align 4, !tbaa !87
  br label %582

472:                                              ; preds = %463
  %473 = load ptr, ptr %11, align 8, !tbaa !5
  %474 = call i32 @strcmp(ptr noundef %473, ptr noundef @.str.57) #10
  %475 = icmp eq i32 %474, 0
  br i1 %475, label %476, label %481

476:                                              ; preds = %472
  %477 = load ptr, ptr %12, align 8, !tbaa !5
  %478 = call i32 @atoi(ptr noundef %477) #10
  %479 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %480 = getelementptr inbounds %class.CacheParameters, ptr %479, i32 0, i32 48
  store i32 %478, ptr %480, align 8, !tbaa !88
  br label %581

481:                                              ; preds = %472
  %482 = load ptr, ptr %11, align 8, !tbaa !5
  %483 = call i32 @strcmp(ptr noundef %482, ptr noundef @.str.58) #10
  %484 = icmp eq i32 %483, 0
  br i1 %484, label %485, label %490

485:                                              ; preds = %481
  %486 = load ptr, ptr %12, align 8, !tbaa !5
  %487 = call i32 @atoi(ptr noundef %486) #10
  %488 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %489 = getelementptr inbounds %class.CacheParameters, ptr %488, i32 0, i32 49
  store i32 %487, ptr %489, align 4, !tbaa !89
  br label %580

490:                                              ; preds = %481
  %491 = load ptr, ptr %11, align 8, !tbaa !5
  %492 = call i32 @strcmp(ptr noundef %491, ptr noundef @.str.59) #10
  %493 = icmp eq i32 %492, 0
  br i1 %493, label %494, label %499

494:                                              ; preds = %490
  %495 = load ptr, ptr %12, align 8, !tbaa !5
  %496 = call double @atof(ptr noundef %495) #10
  %497 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %498 = getelementptr inbounds %class.CacheParameters, ptr %497, i32 0, i32 1
  store double %496, ptr %498, align 8, !tbaa !90
  br label %579

499:                                              ; preds = %490
  %500 = load ptr, ptr %11, align 8, !tbaa !5
  %501 = call i32 @strcmp(ptr noundef %500, ptr noundef @.str.60) #10
  %502 = icmp eq i32 %501, 0
  br i1 %502, label %503, label %510

503:                                              ; preds = %499
  %504 = load ptr, ptr %12, align 8, !tbaa !5
  %505 = call i32 @atoi(ptr noundef %504) #10
  %506 = icmp ne i32 %505, 0
  %507 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %508 = getelementptr inbounds %class.CacheParameters, ptr %507, i32 0, i32 50
  %509 = zext i1 %506 to i8
  store i8 %509, ptr %508, align 8, !tbaa !91
  br label %578

510:                                              ; preds = %499
  %511 = load ptr, ptr %11, align 8, !tbaa !5
  %512 = call i32 @strcmp(ptr noundef %511, ptr noundef @.str.61) #10
  %513 = icmp eq i32 %512, 0
  br i1 %513, label %514, label %517

514:                                              ; preds = %510
  %515 = load ptr, ptr %12, align 8, !tbaa !5
  %516 = call i32 @atoi(ptr noundef %515) #10
  store i32 %516, ptr %8, align 4, !tbaa !32
  br label %577

517:                                              ; preds = %510
  %518 = load ptr, ptr %11, align 8, !tbaa !5
  %519 = call i32 @strcmp(ptr noundef %518, ptr noundef @.str.62) #10
  %520 = icmp eq i32 %519, 0
  br i1 %520, label %521, label %526

521:                                              ; preds = %517
  %522 = load ptr, ptr %12, align 8, !tbaa !5
  %523 = call i32 @atoi(ptr noundef %522) #10
  %524 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %525 = getelementptr inbounds %class.CacheParameters, ptr %524, i32 0, i32 0
  store i32 %523, ptr %525, align 8, !tbaa !92
  br label %576

526:                                              ; preds = %517
  %527 = load ptr, ptr %11, align 8, !tbaa !5
  %528 = call i32 @strcmp(ptr noundef %527, ptr noundef @.str.63) #10
  %529 = icmp eq i32 %528, 0
  br i1 %529, label %530, label %535

530:                                              ; preds = %526
  %531 = load ptr, ptr %12, align 8, !tbaa !5
  %532 = call i32 @atoi(ptr noundef %531) #10
  %533 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %534 = getelementptr inbounds %class.CacheParameters, ptr %533, i32 0, i32 52
  store i32 %532, ptr %534, align 8, !tbaa !93
  br label %575

535:                                              ; preds = %526
  %536 = load ptr, ptr %11, align 8, !tbaa !5
  %537 = call i32 @strcmp(ptr noundef %536, ptr noundef @.str.64) #10
  %538 = icmp eq i32 %537, 0
  br i1 %538, label %539, label %544

539:                                              ; preds = %535
  %540 = load ptr, ptr %12, align 8, !tbaa !5
  %541 = call i32 @atoi(ptr noundef %540) #10
  %542 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %543 = getelementptr inbounds %class.CacheParameters, ptr %542, i32 0, i32 53
  store i32 %541, ptr %543, align 4, !tbaa !94
  br label %574

544:                                              ; preds = %535
  %545 = load ptr, ptr %11, align 8, !tbaa !5
  %546 = call i32 @strcmp(ptr noundef %545, ptr noundef @.str.65) #10
  %547 = icmp eq i32 %546, 0
  br i1 %547, label %548, label %553

548:                                              ; preds = %544
  %549 = load ptr, ptr %12, align 8, !tbaa !5
  %550 = call i32 @atoi(ptr noundef %549) #10
  %551 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %552 = getelementptr inbounds %class.CacheParameters, ptr %551, i32 0, i32 54
  store i32 %550, ptr %552, align 8, !tbaa !95
  br label %573

553:                                              ; preds = %544
  %554 = load ptr, ptr %11, align 8, !tbaa !5
  %555 = call i32 @strcmp(ptr noundef %554, ptr noundef @.str.66) #10
  %556 = icmp eq i32 %555, 0
  br i1 %556, label %557, label %560

557:                                              ; preds = %553
  %558 = load ptr, ptr %12, align 8, !tbaa !5
  %559 = call i32 @atoi(ptr noundef %558) #10
  store i32 %559, ptr %9, align 4, !tbaa !32
  br label %572

560:                                              ; preds = %553
  %561 = load ptr, ptr %11, align 8, !tbaa !5
  %562 = call i32 @strcmp(ptr noundef %561, ptr noundef @.str.67) #10
  %563 = icmp eq i32 %562, 0
  br i1 %563, label %564, label %569

564:                                              ; preds = %560
  %565 = load ptr, ptr %12, align 8, !tbaa !5
  %566 = call i32 @atoi(ptr noundef %565) #10
  %567 = getelementptr inbounds %class.McPATComponent, ptr %16, i32 0, i32 3
  %568 = getelementptr inbounds %class.InputParameter, ptr %567, i32 0, i32 39
  store i32 %566, ptr %568, align 8, !tbaa !96
  br label %571

569:                                              ; preds = %560
  %570 = load ptr, ptr %11, align 8, !tbaa !5
  call void @_ZN14McPATComponent21warnUnrecognizedParamEPKc(ptr noundef nonnull align 8 dereferenceable(1352) %16, ptr noundef %570)
  br label %571

571:                                              ; preds = %569, %564
  br label %572

572:                                              ; preds = %571, %557
  br label %573

573:                                              ; preds = %572, %548
  br label %574

574:                                              ; preds = %573, %539
  br label %575

575:                                              ; preds = %574, %530
  br label %576

576:                                              ; preds = %575, %521
  br label %577

577:                                              ; preds = %576, %514
  br label %578

578:                                              ; preds = %577, %503
  br label %579

579:                                              ; preds = %578, %494
  br label %580

580:                                              ; preds = %579, %485
  br label %581

581:                                              ; preds = %580, %476
  br label %582

582:                                              ; preds = %581, %467
  br label %583

583:                                              ; preds = %582, %458
  br label %584

584:                                              ; preds = %583, %449
  br label %585

585:                                              ; preds = %584, %440
  br label %586

586:                                              ; preds = %585, %431
  br label %587

587:                                              ; preds = %586, %422
  br label %588

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

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

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

591:                                              ; preds = %590, %386
  br label %592

592:                                              ; preds = %591, %377
  br label %593

593:                                              ; preds = %592, %368
  br label %594

594:                                              ; preds = %593, %359
  br label %595

595:                                              ; preds = %594, %350
  br label %596

596:                                              ; preds = %595, %341
  br label %597

597:                                              ; preds = %596, %332
  br label %598

598:                                              ; preds = %597, %323
  br label %599

599:                                              ; preds = %598, %314
  br label %600

600:                                              ; preds = %599, %305
  br label %601

601:                                              ; preds = %600, %296
  br label %602

602:                                              ; preds = %601, %287
  br label %603

603:                                              ; preds = %602, %278
  br label %604

604:                                              ; preds = %603, %269
  br label %605

605:                                              ; preds = %604, %260
  br label %606

606:                                              ; preds = %605, %251
  br label %607

607:                                              ; preds = %606, %242
  br label %608

608:                                              ; preds = %607, %233
  br label %609

609:                                              ; preds = %608, %224
  br label %610

610:                                              ; preds = %609, %215
  br label %611

611:                                              ; preds = %610, %206
  br label %612

612:                                              ; preds = %611, %197
  br label %613

613:                                              ; preds = %612, %188
  br label %614

614:                                              ; preds = %613, %179
  br label %615

615:                                              ; preds = %614, %170
  br label %616

616:                                              ; preds = %615, %161
  br label %617

617:                                              ; preds = %616, %152
  br label %618

618:                                              ; preds = %617, %143
  br label %619

619:                                              ; preds = %618, %134
  br label %620

620:                                              ; preds = %619, %125
  br label %621

621:                                              ; preds = %620, %116
  br label %622

622:                                              ; preds = %621, %107
  br label %623

623:                                              ; preds = %622, %98
  br label %624

624:                                              ; preds = %623, %89
  br label %625

625:                                              ; preds = %624, %80
  br label %626

626:                                              ; preds = %625, %71
  br label %627

627:                                              ; preds = %626, %62
  br label %628

628:                                              ; preds = %627, %55
  br label %629

629:                                              ; preds = %628, %48
  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 %630

630:                                              ; preds = %629
  %631 = load i32, ptr %7, align 4, !tbaa !32
  %632 = add nsw i32 %631, 1
  store i32 %632, ptr %7, align 4, !tbaa !32
  br label %34, !llvm.loop !97

633:                                              ; preds = %34
  %634 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %635 = getelementptr inbounds %class.CacheParameters, ptr %634, i32 0, i32 1
  %636 = load double, ptr %635, align 8, !tbaa !90
  %637 = fmul double %636, 1.000000e+06
  store double %637, ptr %635, align 8, !tbaa !90
  %638 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %639 = getelementptr inbounds %class.CacheParameters, ptr %638, i32 0, i32 1
  %640 = load double, ptr %639, align 8, !tbaa !90
  %641 = fcmp ogt double %640, 0.000000e+00
  br i1 %641, label %642, label %647

642:                                              ; preds = %633
  %643 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %644 = getelementptr inbounds %class.CacheParameters, ptr %643, i32 0, i32 1
  %645 = load double, ptr %644, align 8, !tbaa !90
  %646 = getelementptr inbounds %class.McPATComponent, ptr %16, i32 0, i32 5
  store double %645, ptr %646, align 8, !tbaa !11
  br label %647

647:                                              ; preds = %642, %633
  %648 = load i32, ptr %8, align 4, !tbaa !32
  %649 = getelementptr inbounds %class.McPATComponent, ptr %16, i32 0, i32 3
  %650 = getelementptr inbounds %class.InputParameter, ptr %649, i32 0, i32 29
  store i32 %648, ptr %650, align 8, !tbaa !99
  %651 = load i32, ptr %8, align 4, !tbaa !32
  %652 = getelementptr inbounds %class.McPATComponent, ptr %16, i32 0, i32 3
  %653 = getelementptr inbounds %class.InputParameter, ptr %652, i32 0, i32 30
  store i32 %651, ptr %653, align 4, !tbaa !100
  %654 = load i32, ptr %8, align 4, !tbaa !32
  %655 = getelementptr inbounds %class.McPATComponent, ptr %16, i32 0, i32 3
  %656 = getelementptr inbounds %class.InputParameter, ptr %655, i32 0, i32 31
  store i32 %654, ptr %656, align 8, !tbaa !101
  %657 = load i32, ptr %8, align 4, !tbaa !32
  %658 = getelementptr inbounds %class.McPATComponent, ptr %16, i32 0, i32 3
  %659 = getelementptr inbounds %class.InputParameter, ptr %658, i32 0, i32 32
  store i32 %657, ptr %659, align 4, !tbaa !102
  %660 = load i32, ptr %9, align 4, !tbaa !32
  %661 = getelementptr inbounds %class.McPATComponent, ptr %16, i32 0, i32 3
  %662 = getelementptr inbounds %class.InputParameter, ptr %661, i32 0, i32 37
  store i32 %660, ptr %662, align 8, !tbaa !103
  %663 = load i32, ptr %9, align 4, !tbaa !32
  %664 = getelementptr inbounds %class.McPATComponent, ptr %16, i32 0, i32 3
  %665 = getelementptr inbounds %class.InputParameter, ptr %664, i32 0, i32 38
  store i32 %663, ptr %665, align 4, !tbaa !104
  %666 = load i32, ptr %3, align 4, !tbaa !32
  switch i32 %666, label %682 [
    i32 1, label %667
    i32 2, label %670
    i32 3, label %673
    i32 4, label %676
    i32 5, label %679
  ]

667:                                              ; preds = %647
  %668 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %669 = getelementptr inbounds %class.CacheParameters, ptr %668, i32 0, i32 51
  store i32 0, ptr %669, align 4, !tbaa !105
  br label %688

670:                                              ; preds = %647
  %671 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %672 = getelementptr inbounds %class.CacheParameters, ptr %671, i32 0, i32 51
  store i32 1, ptr %672, align 4, !tbaa !105
  br label %688

673:                                              ; preds = %647
  %674 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %675 = getelementptr inbounds %class.CacheParameters, ptr %674, i32 0, i32 51
  store i32 2, ptr %675, align 4, !tbaa !105
  br label %688

676:                                              ; preds = %647
  %677 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %678 = getelementptr inbounds %class.CacheParameters, ptr %677, i32 0, i32 51
  store i32 3, ptr %678, align 4, !tbaa !105
  br label %688

679:                                              ; preds = %647
  %680 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 2
  %681 = getelementptr inbounds %class.CacheParameters, ptr %680, i32 0, i32 51
  store i32 4, ptr %681, align 4, !tbaa !105
  br label %688

682:                                              ; preds = %647
  %683 = load ptr, ptr @stderr, align 8, !tbaa !5
  %684 = getelementptr inbounds %class.McPATComponent, ptr %16, i32 0, i32 4
  %685 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %684) #9
  %686 = load i32, ptr %3, align 4, !tbaa !32
  %687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %683, ptr noundef @.str.68, ptr noundef %685, i32 noundef %686) #9
  call void @exit(i32 noundef 1) #11
  unreachable

688:                                              ; preds = %679, %676, %673, %670, %667
  %689 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 3
  %690 = getelementptr inbounds %class.CacheStatistics, ptr %689, i32 0, i32 4
  store i8 0, ptr %690, align 8, !tbaa !106
  %691 = getelementptr inbounds %class.McPATComponent, ptr %16, i32 0, i32 2
  %692 = load ptr, ptr %691, align 8, !tbaa !31
  %693 = call noundef i32 @_ZNK7XMLNode10nChildNodeEPKc(ptr noundef nonnull align 8 dereferenceable(8) %692, ptr noundef @.str.69)
  store i32 %693, ptr %6, align 4, !tbaa !32
  store i32 0, ptr %7, align 4, !tbaa !32
  br label %694

694:                                              ; preds = %904, %688
  %695 = load i32, ptr %7, align 4, !tbaa !32
  %696 = load i32, ptr %6, align 4, !tbaa !32
  %697 = icmp slt i32 %695, %696
  br i1 %697, label %698, label %907

698:                                              ; preds = %694
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #9
  %699 = getelementptr inbounds %class.McPATComponent, ptr %16, i32 0, i32 2
  %700 = load ptr, ptr %699, align 8, !tbaa !31
  %701 = call noundef ptr @_ZNK7XMLNode15getChildNodePtrEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %700, ptr noundef @.str.69, ptr noundef %7)
  store ptr %701, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #9
  %702 = load ptr, ptr %13, align 8, !tbaa !5
  %703 = call noundef ptr @_ZNK7XMLNode12getAttributeEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %702, ptr noundef @.str.6, ptr noundef null)
  store ptr %703, ptr %14, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #9
  %704 = load ptr, ptr %13, align 8, !tbaa !5
  %705 = call noundef ptr @_ZNK7XMLNode12getAttributeEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %704, ptr noundef @.str.8, ptr noundef null)
  store ptr %705, ptr %15, align 8, !tbaa !5
  %706 = load ptr, ptr %14, align 8, !tbaa !5
  %707 = icmp ne ptr %706, null
  br i1 %707, label %711, label %708

708:                                              ; preds = %698
  %709 = load ptr, ptr %13, align 8, !tbaa !5
  %710 = call noundef ptr @_ZNK7XMLNode12getAttributeEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %709, ptr noundef @.str.9, ptr noundef null)
  call void @_ZN14McPATComponent19warnMissingStatNameEPKc(ptr noundef nonnull align 8 dereferenceable(1352) %16, ptr noundef %710)
  br label %903

711:                                              ; preds = %698
  %712 = load ptr, ptr %14, align 8, !tbaa !5
  %713 = call i32 @strcmp(ptr noundef %712, ptr noundef @.str.70) #10
  %714 = icmp eq i32 %713, 0
  br i1 %714, label %715, label %720

715:                                              ; preds = %711
  %716 = load ptr, ptr %15, align 8, !tbaa !5
  %717 = call double @atof(ptr noundef %716) #10
  %718 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 3
  %719 = getelementptr inbounds %class.CacheStatistics, ptr %718, i32 0, i32 5
  store double %717, ptr %719, align 8, !tbaa !107
  br label %902

720:                                              ; preds = %711
  %721 = load ptr, ptr %14, align 8, !tbaa !5
  %722 = call i32 @strcmp(ptr noundef %721, ptr noundef @.str.71) #10
  %723 = icmp eq i32 %722, 0
  br i1 %723, label %724, label %729

724:                                              ; preds = %720
  %725 = load ptr, ptr %15, align 8, !tbaa !5
  %726 = call double @atof(ptr noundef %725) #10
  %727 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 3
  %728 = getelementptr inbounds %class.CacheStatistics, ptr %727, i32 0, i32 6
  store double %726, ptr %728, align 8, !tbaa !108
  br label %901

729:                                              ; preds = %720
  %730 = load ptr, ptr %14, align 8, !tbaa !5
  %731 = call i32 @strcmp(ptr noundef %730, ptr noundef @.str.72) #10
  %732 = icmp eq i32 %731, 0
  br i1 %732, label %733, label %738

733:                                              ; preds = %729
  %734 = load ptr, ptr %15, align 8, !tbaa !5
  %735 = call double @atof(ptr noundef %734) #10
  %736 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 3
  %737 = getelementptr inbounds %class.CacheStatistics, ptr %736, i32 0, i32 7
  store double %735, ptr %737, align 8, !tbaa !109
  br label %900

738:                                              ; preds = %729
  %739 = load ptr, ptr %14, align 8, !tbaa !5
  %740 = call i32 @strcmp(ptr noundef %739, ptr noundef @.str.73) #10
  %741 = icmp eq i32 %740, 0
  br i1 %741, label %742, label %747

742:                                              ; preds = %738
  %743 = load ptr, ptr %15, align 8, !tbaa !5
  %744 = call double @atof(ptr noundef %743) #10
  %745 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 3
  %746 = getelementptr inbounds %class.CacheStatistics, ptr %745, i32 0, i32 8
  store double %744, ptr %746, align 8, !tbaa !110
  br label %899

747:                                              ; preds = %738
  %748 = load ptr, ptr %14, align 8, !tbaa !5
  %749 = call i32 @strcmp(ptr noundef %748, ptr noundef @.str.74) #10
  %750 = icmp eq i32 %749, 0
  br i1 %750, label %751, label %756

751:                                              ; preds = %747
  %752 = load ptr, ptr %15, align 8, !tbaa !5
  %753 = call double @atof(ptr noundef %752) #10
  %754 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 3
  %755 = getelementptr inbounds %class.CacheStatistics, ptr %754, i32 0, i32 0
  store double %753, ptr %755, align 8, !tbaa !111
  br label %898

756:                                              ; preds = %747
  %757 = load ptr, ptr %14, align 8, !tbaa !5
  %758 = call i32 @strcmp(ptr noundef %757, ptr noundef @.str.75) #10
  %759 = icmp eq i32 %758, 0
  br i1 %759, label %760, label %765

760:                                              ; preds = %756
  %761 = load ptr, ptr %15, align 8, !tbaa !5
  %762 = call double @atof(ptr noundef %761) #10
  %763 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 3
  %764 = getelementptr inbounds %class.CacheStatistics, ptr %763, i32 0, i32 9
  store double %762, ptr %764, align 8, !tbaa !112
  br label %897

765:                                              ; preds = %756
  %766 = load ptr, ptr %14, align 8, !tbaa !5
  %767 = call i32 @strcmp(ptr noundef %766, ptr noundef @.str.76) #10
  %768 = icmp eq i32 %767, 0
  br i1 %768, label %769, label %774

769:                                              ; preds = %765
  %770 = load ptr, ptr %15, align 8, !tbaa !5
  %771 = call double @atof(ptr noundef %770) #10
  %772 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 3
  %773 = getelementptr inbounds %class.CacheStatistics, ptr %772, i32 0, i32 10
  store double %771, ptr %773, align 8, !tbaa !113
  br label %896

774:                                              ; preds = %765
  %775 = load ptr, ptr %14, align 8, !tbaa !5
  %776 = call i32 @strcmp(ptr noundef %775, ptr noundef @.str.77) #10
  %777 = icmp eq i32 %776, 0
  br i1 %777, label %778, label %783

778:                                              ; preds = %774
  %779 = load ptr, ptr %15, align 8, !tbaa !5
  %780 = call double @atof(ptr noundef %779) #10
  %781 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 3
  %782 = getelementptr inbounds %class.CacheStatistics, ptr %781, i32 0, i32 11
  store double %780, ptr %782, align 8, !tbaa !114
  br label %895

783:                                              ; preds = %774
  %784 = load ptr, ptr %14, align 8, !tbaa !5
  %785 = call i32 @strcmp(ptr noundef %784, ptr noundef @.str.78) #10
  %786 = icmp eq i32 %785, 0
  br i1 %786, label %787, label %792

787:                                              ; preds = %783
  %788 = load ptr, ptr %15, align 8, !tbaa !5
  %789 = call double @atof(ptr noundef %788) #10
  %790 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 3
  %791 = getelementptr inbounds %class.CacheStatistics, ptr %790, i32 0, i32 12
  store double %789, ptr %791, align 8, !tbaa !115
  br label %894

792:                                              ; preds = %783
  %793 = load ptr, ptr %14, align 8, !tbaa !5
  %794 = call i32 @strcmp(ptr noundef %793, ptr noundef @.str.79) #10
  %795 = icmp eq i32 %794, 0
  br i1 %795, label %796, label %801

796:                                              ; preds = %792
  %797 = load ptr, ptr %15, align 8, !tbaa !5
  %798 = call double @atof(ptr noundef %797) #10
  %799 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 3
  %800 = getelementptr inbounds %class.CacheStatistics, ptr %799, i32 0, i32 13
  store double %798, ptr %800, align 8, !tbaa !116
  br label %893

801:                                              ; preds = %792
  %802 = load ptr, ptr %14, align 8, !tbaa !5
  %803 = call i32 @strcmp(ptr noundef %802, ptr noundef @.str.80) #10
  %804 = icmp eq i32 %803, 0
  br i1 %804, label %805, label %810

805:                                              ; preds = %801
  %806 = load ptr, ptr %15, align 8, !tbaa !5
  %807 = call i32 @atoi(ptr noundef %806) #10
  %808 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 3
  %809 = getelementptr inbounds %class.CacheStatistics, ptr %808, i32 0, i32 14
  store i32 %807, ptr %809, align 8, !tbaa !117
  br label %892

810:                                              ; preds = %801
  %811 = load ptr, ptr %14, align 8, !tbaa !5
  %812 = call i32 @strcmp(ptr noundef %811, ptr noundef @.str.81) #10
  %813 = icmp eq i32 %812, 0
  br i1 %813, label %814, label %819

814:                                              ; preds = %810
  %815 = load ptr, ptr %15, align 8, !tbaa !5
  %816 = call i32 @atoi(ptr noundef %815) #10
  %817 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 3
  %818 = getelementptr inbounds %class.CacheStatistics, ptr %817, i32 0, i32 15
  store i32 %816, ptr %818, align 4, !tbaa !118
  br label %891

819:                                              ; preds = %810
  %820 = load ptr, ptr %14, align 8, !tbaa !5
  %821 = call i32 @strcmp(ptr noundef %820, ptr noundef @.str.82) #10
  %822 = icmp eq i32 %821, 0
  br i1 %822, label %823, label %828

823:                                              ; preds = %819
  %824 = load ptr, ptr %15, align 8, !tbaa !5
  %825 = call i32 @atoi(ptr noundef %824) #10
  %826 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 3
  %827 = getelementptr inbounds %class.CacheStatistics, ptr %826, i32 0, i32 16
  store i32 %825, ptr %827, align 8, !tbaa !119
  br label %890

828:                                              ; preds = %819
  %829 = load ptr, ptr %14, align 8, !tbaa !5
  %830 = call i32 @strcmp(ptr noundef %829, ptr noundef @.str.83) #10
  %831 = icmp eq i32 %830, 0
  br i1 %831, label %832, label %837

832:                                              ; preds = %828
  %833 = load ptr, ptr %15, align 8, !tbaa !5
  %834 = call i32 @atoi(ptr noundef %833) #10
  %835 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 3
  %836 = getelementptr inbounds %class.CacheStatistics, ptr %835, i32 0, i32 17
  store i32 %834, ptr %836, align 4, !tbaa !120
  br label %889

837:                                              ; preds = %828
  %838 = load ptr, ptr %14, align 8, !tbaa !5
  %839 = call i32 @strcmp(ptr noundef %838, ptr noundef @.str.84) #10
  %840 = icmp eq i32 %839, 0
  br i1 %840, label %841, label %846

841:                                              ; preds = %837
  %842 = load ptr, ptr %15, align 8, !tbaa !5
  %843 = call double @atof(ptr noundef %842) #10
  %844 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 3
  %845 = getelementptr inbounds %class.CacheStatistics, ptr %844, i32 0, i32 18
  store double %843, ptr %845, align 8, !tbaa !121
  br label %888

846:                                              ; preds = %837
  %847 = load ptr, ptr %14, align 8, !tbaa !5
  %848 = call i32 @strcmp(ptr noundef %847, ptr noundef @.str.85) #10
  %849 = icmp eq i32 %848, 0
  br i1 %849, label %850, label %855

850:                                              ; preds = %846
  %851 = load ptr, ptr %15, align 8, !tbaa !5
  %852 = call double @atof(ptr noundef %851) #10
  %853 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 3
  %854 = getelementptr inbounds %class.CacheStatistics, ptr %853, i32 0, i32 2
  store double %852, ptr %854, align 8, !tbaa !122
  br label %887

855:                                              ; preds = %846
  %856 = load ptr, ptr %14, align 8, !tbaa !5
  %857 = call i32 @strcmp(ptr noundef %856, ptr noundef @.str.86) #10
  %858 = icmp eq i32 %857, 0
  br i1 %858, label %859, label %864

859:                                              ; preds = %855
  %860 = load ptr, ptr %15, align 8, !tbaa !5
  %861 = call double @atof(ptr noundef %860) #10
  %862 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 3
  %863 = getelementptr inbounds %class.CacheStatistics, ptr %862, i32 0, i32 3
  store double %861, ptr %863, align 8, !tbaa !123
  br label %886

864:                                              ; preds = %855
  %865 = load ptr, ptr %14, align 8, !tbaa !5
  %866 = call i32 @strcmp(ptr noundef %865, ptr noundef @.str.87) #10
  %867 = icmp eq i32 %866, 0
  br i1 %867, label %868, label %873

868:                                              ; preds = %864
  %869 = load ptr, ptr %15, align 8, !tbaa !5
  %870 = call double @atof(ptr noundef %869) #10
  %871 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 3
  %872 = getelementptr inbounds %class.CacheStatistics, ptr %871, i32 0, i32 19
  store double %870, ptr %872, align 8, !tbaa !124
  br label %885

873:                                              ; preds = %864
  %874 = load ptr, ptr %14, align 8, !tbaa !5
  %875 = call i32 @strcmp(ptr noundef %874, ptr noundef @.str.88) #10
  %876 = icmp eq i32 %875, 0
  br i1 %876, label %877, label %882

877:                                              ; preds = %873
  %878 = load ptr, ptr %15, align 8, !tbaa !5
  %879 = call double @atof(ptr noundef %878) #10
  %880 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 3
  %881 = getelementptr inbounds %class.CacheStatistics, ptr %880, i32 0, i32 1
  store double %879, ptr %881, align 8, !tbaa !125
  br label %884

882:                                              ; preds = %873
  %883 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZN14McPATComponent20warnUnrecognizedStatEPKc(ptr noundef nonnull align 8 dereferenceable(1352) %16, ptr noundef %883)
  br label %884

884:                                              ; preds = %882, %877
  br label %885

885:                                              ; preds = %884, %868
  br label %886

886:                                              ; preds = %885, %859
  br label %887

887:                                              ; preds = %886, %850
  br label %888

888:                                              ; preds = %887, %841
  br label %889

889:                                              ; preds = %888, %832
  br label %890

890:                                              ; preds = %889, %823
  br label %891

891:                                              ; preds = %890, %814
  br label %892

892:                                              ; preds = %891, %805
  br label %893

893:                                              ; preds = %892, %796
  br label %894

894:                                              ; preds = %893, %787
  br label %895

895:                                              ; preds = %894, %778
  br label %896

896:                                              ; preds = %895, %769
  br label %897

897:                                              ; preds = %896, %760
  br label %898

898:                                              ; preds = %897, %751
  br label %899

899:                                              ; preds = %898, %742
  br label %900

900:                                              ; preds = %899, %733
  br label %901

901:                                              ; preds = %900, %724
  br label %902

902:                                              ; preds = %901, %715
  br label %903

903:                                              ; preds = %902, %708
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  br label %904

904:                                              ; preds = %903
  %905 = load i32, ptr %7, align 4, !tbaa !32
  %906 = add nsw i32 %905, 1
  store i32 %906, ptr %7, align 4, !tbaa !32
  br label %694, !llvm.loop !126

907:                                              ; preds = %694
  %908 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 3
  %909 = getelementptr inbounds %class.CacheStatistics, ptr %908, i32 0, i32 5
  %910 = load double, ptr %909, align 8, !tbaa !107
  %911 = fcmp ogt double %910, 0.000000e+00
  br i1 %911, label %927, label %912

912:                                              ; preds = %907
  %913 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 3
  %914 = getelementptr inbounds %class.CacheStatistics, ptr %913, i32 0, i32 6
  %915 = load double, ptr %914, align 8, !tbaa !108
  %916 = fcmp ogt double %915, 0.000000e+00
  br i1 %916, label %927, label %917

917:                                              ; preds = %912
  %918 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 3
  %919 = getelementptr inbounds %class.CacheStatistics, ptr %918, i32 0, i32 7
  %920 = load double, ptr %919, align 8, !tbaa !109
  %921 = fcmp ogt double %920, 0.000000e+00
  br i1 %921, label %927, label %922

922:                                              ; preds = %917
  %923 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 3
  %924 = getelementptr inbounds %class.CacheStatistics, ptr %923, i32 0, i32 8
  %925 = load double, ptr %924, align 8, !tbaa !110
  %926 = fcmp ogt double %925, 0.000000e+00
  br i1 %926, label %927, label %931

927:                                              ; preds = %922, %917, %912, %907
  %928 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 3
  %929 = getelementptr inbounds %class.CacheStatistics, ptr %928, i32 0, i32 4
  store i8 1, ptr %929, align 8, !tbaa !106
  %930 = getelementptr inbounds %class.CacheUnit, ptr %16, i32 0, i32 5
  store i8 1, ptr %930, align 4, !tbaa !127
  br label %931

931:                                              ; preds = %927, %922
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #9
  call void @llvm.lifetime.end.p0(i64 8, 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: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 #5 = { 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 #6 = { 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 #7 = { 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 = { 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 #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, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = !{!12, !10, i64 696}
!12 = !{!"_ZTS14McPATComponent", !13, i64 8, !6, i64 288, !17, i64 296, !21, i64 664, !10, i64 696, !24, i64 704, !28, i64 728, !29, i64 776, !29, i64 944, !15, i64 1112, !15, i64 1232}
!13 = !{!"_ZTS9Component", !14, i64 0, !15, i64 24, !15, i64 144, !10, i64 264, !10, i64 272}
!14 = !{!"_ZTS4Area", !10, i64 0, !10, i64 8, !10, i64 16}
!15 = !{!"_ZTS8powerDef", !16, i64 0, !16, i64 40, !16, i64 80}
!16 = !{!"_ZTS15powerComponents", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!17 = !{!"_ZTS14InputParameter", !18, i64 0, !18, i64 4, !18, i64 8, !18, i64 12, !18, i64 16, !19, i64 20, !18, i64 24, !18, i64 28, !18, i64 32, !18, i64 36, !18, i64 40, !18, i64 44, !10, i64 48, !10, i64 56, !18, i64 64, !18, i64 68, !18, i64 72, !18, i64 76, !18, i64 80, !19, i64 84, !19, i64 85, !19, i64 86, !19, i64 87, !19, i64 88, !18, i64 92, !18, i64 96, !18, i64 100, !18, i64 104, !18, i64 108, !18, i64 112, !18, i64 116, !18, i64 120, !18, i64 124, !18, i64 128, !18, i64 132, !18, i64 136, !18, i64 140, !18, i64 144, !18, i64 148, !20, i64 152, !18, i64 156, !19, i64 160, !18, i64 164, !18, i64 168, !18, i64 172, !18, i64 176, !18, i64 180, !18, i64 184, !18, i64 188, !19, i64 192, !18, i64 196, !18, i64 200, !18, i64 204, !18, i64 208, !18, i64 212, !18, i64 216, !18, i64 220, !18, i64 224, !18, i64 228, !18, i64 232, !18, i64 236, !18, i64 240, !18, i64 244, !18, i64 248, !18, i64 252, !18, i64 256, !18, i64 260, !18, i64 264, !18, i64 268, !18, i64 272, !18, i64 276, !18, i64 280, !18, i64 284, !18, i64 288, !18, i64 292, !18, i64 296, !19, i64 300, !18, i64 304, !18, i64 308, !18, i64 312, !19, i64 316, !19, i64 317, !18, i64 320, !18, i64 324, !19, i64 328, !10, i64 336, !10, i64 344, !19, i64 352, !18, i64 356, !18, i64 360, !19, i64 364}
!18 = !{!"int", !7, i64 0}
!19 = !{!"bool", !7, i64 0}
!20 = !{!"_ZTS9Wire_type", !7, i64 0}
!21 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !22, i64 0, !23, i64 8, !7, i64 16}
!22 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!23 = !{!"long", !7, i64 0}
!24 = !{!"_ZTSSt6vectorIP14McPATComponentSaIS1_EE", !25, i64 0}
!25 = !{!"_ZTSSt12_Vector_baseIP14McPATComponentSaIS1_EE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseIP14McPATComponentSaIS1_EE12_Vector_implE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseIP14McPATComponentSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!28 = !{!"_ZTS11McPATOutput", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!29 = !{!"_ZTS8statsDef", !30, i64 0, !30, i64 24, !30, i64 48, !30, i64 72, !30, i64 96, !30, i64 120, !30, i64 144}
!30 = !{!"_ZTS15statsComponents", !10, i64 0, !10, i64 8, !10, i64 16}
!31 = !{!12, !6, i64 288}
!32 = !{!18, !18, i64 0}
!33 = !{!34, !10, i64 1376}
!34 = !{!"_ZTS9CacheUnit", !12, i64 0, !18, i64 1352, !35, i64 1360, !41, i64 1616, !42, i64 1760, !19, i64 1764, !10, i64 1768, !10, i64 1776}
!35 = !{!"_ZTS15CacheParameters", !36, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !18, i64 64, !18, i64 68, !18, i64 72, !18, i64 76, !18, i64 80, !18, i64 84, !18, i64 88, !18, i64 92, !18, i64 96, !18, i64 100, !18, i64 104, !18, i64 108, !37, i64 112, !37, i64 116, !37, i64 120, !37, i64 124, !37, i64 128, !18, i64 132, !18, i64 136, !18, i64 140, !18, i64 144, !18, i64 148, !18, i64 152, !18, i64 156, !18, i64 160, !18, i64 164, !18, i64 168, !18, i64 172, !18, i64 176, !18, i64 180, !18, i64 184, !18, i64 188, !18, i64 192, !18, i64 196, !18, i64 200, !18, i64 204, !18, i64 208, !18, i64 212, !18, i64 216, !18, i64 220, !18, i64 224, !18, i64 228, !19, i64 232, !38, i64 236, !39, i64 240, !40, i64 244, !18, i64 248}
!36 = !{!"_ZTS8Dir_type", !7, i64 0}
!37 = !{!"_ZTS11Access_mode", !7, i64 0}
!38 = !{!"_ZTS10CacheLevel", !7, i64 0}
!39 = !{!"_ZTS9Device_ty", !7, i64 0}
!40 = !{!"_ZTS9Core_type", !7, i64 0}
!41 = !{!"_ZTS15CacheStatistics", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !19, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !10, i64 88, !10, i64 96, !10, i64 104, !18, i64 112, !18, i64 116, !18, i64 120, !18, i64 124, !10, i64 128, !10, i64 136}
!42 = !{!"_ZTS10Cache_type", !7, i64 0}
!43 = !{!34, !10, i64 1384}
!44 = !{!34, !10, i64 1392}
!45 = !{!34, !10, i64 1400}
!46 = !{!34, !10, i64 1416}
!47 = !{!34, !10, i64 1408}
!48 = !{!34, !18, i64 1424}
!49 = !{!34, !18, i64 1428}
!50 = !{!34, !18, i64 1432}
!51 = !{!34, !18, i64 1436}
!52 = !{!34, !18, i64 1440}
!53 = !{!34, !18, i64 1444}
!54 = !{!34, !18, i64 1448}
!55 = !{!34, !18, i64 1452}
!56 = !{!34, !18, i64 1456}
!57 = !{!34, !18, i64 1460}
!58 = !{!34, !18, i64 1464}
!59 = !{!34, !18, i64 1468}
!60 = !{!34, !37, i64 1472}
!61 = !{!34, !37, i64 1476}
!62 = !{!34, !37, i64 1480}
!63 = !{!34, !37, i64 1484}
!64 = !{!34, !37, i64 1488}
!65 = !{!34, !18, i64 1492}
!66 = !{!34, !18, i64 1496}
!67 = !{!34, !18, i64 1500}
!68 = !{!34, !18, i64 1504}
!69 = !{!34, !18, i64 1508}
!70 = !{!34, !18, i64 1512}
!71 = !{!34, !18, i64 1516}
!72 = !{!34, !18, i64 1520}
!73 = !{!34, !18, i64 1524}
!74 = !{!34, !18, i64 1528}
!75 = !{!34, !18, i64 1532}
!76 = !{!34, !18, i64 1536}
!77 = !{!34, !18, i64 1540}
!78 = !{!34, !18, i64 1544}
!79 = !{!34, !18, i64 1548}
!80 = !{!34, !18, i64 1552}
!81 = !{!34, !18, i64 1556}
!82 = !{!34, !18, i64 1560}
!83 = !{!34, !18, i64 1564}
!84 = !{!34, !18, i64 1568}
!85 = !{!34, !18, i64 1572}
!86 = !{!34, !18, i64 1576}
!87 = !{!34, !18, i64 1580}
!88 = !{!34, !18, i64 1584}
!89 = !{!34, !18, i64 1588}
!90 = !{!34, !10, i64 1368}
!91 = !{!34, !19, i64 1592}
!92 = !{!34, !36, i64 1360}
!93 = !{!34, !39, i64 1600}
!94 = !{!34, !40, i64 1604}
!95 = !{!34, !18, i64 1608}
!96 = !{!12, !20, i64 448}
!97 = distinct !{!97, !98}
!98 = !{!"llvm.loop.mustprogress"}
!99 = !{!12, !18, i64 408}
!100 = !{!12, !18, i64 412}
!101 = !{!12, !18, i64 416}
!102 = !{!12, !18, i64 420}
!103 = !{!12, !18, i64 440}
!104 = !{!12, !18, i64 444}
!105 = !{!34, !38, i64 1596}
!106 = !{!34, !19, i64 1648}
!107 = !{!34, !10, i64 1656}
!108 = !{!34, !10, i64 1664}
!109 = !{!34, !10, i64 1672}
!110 = !{!34, !10, i64 1680}
!111 = !{!34, !10, i64 1616}
!112 = !{!34, !10, i64 1688}
!113 = !{!34, !10, i64 1696}
!114 = !{!34, !10, i64 1704}
!115 = !{!34, !10, i64 1712}
!116 = !{!34, !10, i64 1720}
!117 = !{!34, !18, i64 1728}
!118 = !{!34, !18, i64 1732}
!119 = !{!34, !18, i64 1736}
!120 = !{!34, !18, i64 1740}
!121 = !{!34, !10, i64 1744}
!122 = !{!34, !10, i64 1632}
!123 = !{!34, !10, i64 1640}
!124 = !{!34, !10, i64 1752}
!125 = !{!34, !10, i64 1624}
!126 = distinct !{!126, !98}
!127 = !{!34, !19, i64 1764}


; 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"

@_ZN14McPATComponent21target_core_clockrateE = external local_unnamed_addr global double, align 8
@.str.6 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [6 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 [11 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [10 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.68 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [15 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 uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN9CacheUnit29set_cache_param_from_xml_dataEv(ptr noundef nonnull align 8 dereferenceable(1784) %0) local_unnamed_addr #1 align 2 {
  %2 = alloca i32, align 4
  %3 = getelementptr inbounds i8, ptr %0, i64 1360
  %4 = getelementptr inbounds i8, ptr %0, i64 1616
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(400) %3, i8 0, i64 400, i1 false)
  %5 = load double, ptr @_ZN14McPATComponent21target_core_clockrateE, align 8, !tbaa !5
  %6 = getelementptr inbounds i8, ptr %0, i64 696
  store double %5, ptr %6, align 8, !tbaa !9
  %7 = getelementptr inbounds i8, ptr %0, i64 288
  %8 = load ptr, ptr %7, align 8, !tbaa !30
  %9 = tail call noundef ptr @_ZNK7XMLNode12getAttributeEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull @.str.6, ptr noundef null)
  %.not = icmp eq ptr %9, null
  br i1 %.not, label %13, label %10

10:                                               ; preds = %1
  %11 = getelementptr inbounds i8, ptr %0, i64 664
  %12 = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull %9)
  br label %13

13:                                               ; preds = %10, %1
  %14 = load ptr, ptr %7, align 8, !tbaa !30
  %15 = tail call noundef i32 @_ZNK7XMLNode10nChildNodeEPKc(ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull @.str.7)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %2) #9
  store i32 0, ptr %2, align 4, !tbaa !31
  %16 = icmp sgt i32 %15, 0
  br i1 %16, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %13
  %17 = getelementptr inbounds i8, ptr %0, i64 448
  %18 = getelementptr inbounds i8, ptr %0, i64 1608
  %19 = getelementptr inbounds i8, ptr %0, i64 1604
  %20 = getelementptr inbounds i8, ptr %0, i64 1600
  %21 = getelementptr inbounds i8, ptr %0, i64 1592
  %22 = getelementptr inbounds i8, ptr %0, i64 1368
  %23 = getelementptr inbounds i8, ptr %0, i64 1588
  %24 = getelementptr inbounds i8, ptr %0, i64 1584
  %25 = getelementptr inbounds i8, ptr %0, i64 1580
  %26 = getelementptr inbounds i8, ptr %0, i64 1576
  %27 = getelementptr inbounds i8, ptr %0, i64 1572
  %28 = getelementptr inbounds i8, ptr %0, i64 1568
  %29 = getelementptr inbounds i8, ptr %0, i64 1564
  %30 = getelementptr inbounds i8, ptr %0, i64 1560
  %31 = getelementptr inbounds i8, ptr %0, i64 1556
  %32 = getelementptr inbounds i8, ptr %0, i64 1552
  %33 = getelementptr inbounds i8, ptr %0, i64 1548
  %34 = getelementptr inbounds i8, ptr %0, i64 1544
  %35 = getelementptr inbounds i8, ptr %0, i64 1540
  %36 = getelementptr inbounds i8, ptr %0, i64 1536
  %37 = getelementptr inbounds i8, ptr %0, i64 1532
  %38 = getelementptr inbounds i8, ptr %0, i64 1528
  %39 = getelementptr inbounds i8, ptr %0, i64 1524
  %40 = getelementptr inbounds i8, ptr %0, i64 1520
  %41 = getelementptr inbounds i8, ptr %0, i64 1516
  %42 = getelementptr inbounds i8, ptr %0, i64 1512
  %43 = getelementptr inbounds i8, ptr %0, i64 1508
  %44 = getelementptr inbounds i8, ptr %0, i64 1504
  %45 = getelementptr inbounds i8, ptr %0, i64 1500
  %46 = getelementptr inbounds i8, ptr %0, i64 1496
  %47 = getelementptr inbounds i8, ptr %0, i64 1492
  %48 = getelementptr inbounds i8, ptr %0, i64 1488
  %49 = getelementptr inbounds i8, ptr %0, i64 1484
  %50 = getelementptr inbounds i8, ptr %0, i64 1480
  %51 = getelementptr inbounds i8, ptr %0, i64 1476
  %52 = getelementptr inbounds i8, ptr %0, i64 1472
  %53 = getelementptr inbounds i8, ptr %0, i64 1468
  %54 = getelementptr inbounds i8, ptr %0, i64 1464
  %55 = getelementptr inbounds i8, ptr %0, i64 1460
  %56 = getelementptr inbounds i8, ptr %0, i64 1456
  %57 = getelementptr inbounds i8, ptr %0, i64 1452
  %58 = getelementptr inbounds i8, ptr %0, i64 1448
  %59 = getelementptr inbounds i8, ptr %0, i64 1444
  %60 = getelementptr inbounds i8, ptr %0, i64 1440
  %61 = getelementptr inbounds i8, ptr %0, i64 1436
  %62 = getelementptr inbounds i8, ptr %0, i64 1432
  %63 = getelementptr inbounds i8, ptr %0, i64 1428
  %64 = getelementptr inbounds i8, ptr %0, i64 1424
  %65 = getelementptr inbounds i8, ptr %0, i64 1408
  %66 = getelementptr inbounds i8, ptr %0, i64 1416
  %67 = getelementptr inbounds i8, ptr %0, i64 1400
  %68 = getelementptr inbounds i8, ptr %0, i64 1392
  %69 = getelementptr inbounds i8, ptr %0, i64 1384
  %70 = getelementptr inbounds i8, ptr %0, i64 1376
  br label %71

71:                                               ; preds = %.lr.ph, %371
  %.0197 = phi i32 [ undef, %.lr.ph ], [ %.1, %371 ]
  %.0176196 = phi i32 [ undef, %.lr.ph ], [ %.1177, %371 ]
  %.0178195 = phi i32 [ undef, %.lr.ph ], [ %.1179, %371 ]
  %72 = load ptr, ptr %7, align 8, !tbaa !30
  %73 = call noundef ptr @_ZNK7XMLNode15getChildNodePtrEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %72, ptr noundef nonnull @.str.7, ptr noundef nonnull %2)
  %74 = call noundef ptr @_ZNK7XMLNode12getAttributeEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %73, ptr noundef nonnull @.str.6, ptr noundef null)
  %75 = call noundef ptr @_ZNK7XMLNode12getAttributeEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %73, ptr noundef nonnull @.str.8, ptr noundef null)
  %.not186 = icmp eq ptr %74, null
  br i1 %.not186, label %76, label %78

76:                                               ; preds = %71
  %77 = call noundef ptr @_ZNK7XMLNode12getAttributeEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %73, ptr noundef nonnull @.str.9, ptr noundef null)
  call void @_ZN14McPATComponent20warnMissingParamNameEPKc(ptr noundef nonnull align 8 dereferenceable(1352) %0, ptr noundef %77)
  br label %371

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

81:                                               ; preds = %78
  %82 = call i32 @atoi(ptr nocapture noundef %75) #10
  br label %371

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

86:                                               ; preds = %83
  %87 = call double @atof(ptr noundef %75) #10
  store double %87, ptr %70, align 8, !tbaa !32
  br label %371

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

91:                                               ; preds = %88
  %92 = call double @atof(ptr noundef %75) #10
  store double %92, ptr %69, align 8, !tbaa !42
  br label %371

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

96:                                               ; preds = %93
  %97 = call double @atof(ptr noundef %75) #10
  store double %97, ptr %68, align 8, !tbaa !43
  br label %371

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

101:                                              ; preds = %98
  %102 = call double @atof(ptr noundef %75) #10
  store double %102, ptr %67, align 8, !tbaa !44
  br label %371

103:                                              ; preds = %98
  %104 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.15) #10
  %105 = icmp eq i32 %104, 0
  br i1 %105, label %106, label %108

106:                                              ; preds = %103
  %107 = call double @atof(ptr noundef %75) #10
  store double %107, ptr %66, align 8, !tbaa !45
  br label %371

108:                                              ; preds = %103
  %109 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.16) #10
  %110 = icmp eq i32 %109, 0
  br i1 %110, label %111, label %113

111:                                              ; preds = %108
  %112 = call double @atof(ptr noundef %75) #10
  store double %112, ptr %65, align 8, !tbaa !46
  br label %371

113:                                              ; preds = %108
  %114 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.17) #10
  %115 = icmp eq i32 %114, 0
  br i1 %115, label %116, label %118

116:                                              ; preds = %113
  %117 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %117, ptr %64, align 8, !tbaa !47
  br label %371

118:                                              ; preds = %113
  %119 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.18) #10
  %120 = icmp eq i32 %119, 0
  br i1 %120, label %121, label %123

121:                                              ; preds = %118
  %122 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %122, ptr %63, align 4, !tbaa !48
  br label %371

123:                                              ; preds = %118
  %124 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.19) #10
  %125 = icmp eq i32 %124, 0
  br i1 %125, label %126, label %128

126:                                              ; preds = %123
  %127 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %127, ptr %62, align 8, !tbaa !49
  br label %371

128:                                              ; preds = %123
  %129 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.20) #10
  %130 = icmp eq i32 %129, 0
  br i1 %130, label %131, label %133

131:                                              ; preds = %128
  %132 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %132, ptr %61, align 4, !tbaa !50
  br label %371

133:                                              ; preds = %128
  %134 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.21) #10
  %135 = icmp eq i32 %134, 0
  br i1 %135, label %136, label %138

136:                                              ; preds = %133
  %137 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %137, ptr %60, align 8, !tbaa !51
  br label %371

138:                                              ; preds = %133
  %139 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.22) #10
  %140 = icmp eq i32 %139, 0
  br i1 %140, label %141, label %143

141:                                              ; preds = %138
  %142 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %142, ptr %59, align 4, !tbaa !52
  br label %371

143:                                              ; preds = %138
  %144 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.23) #10
  %145 = icmp eq i32 %144, 0
  br i1 %145, label %146, label %148

146:                                              ; preds = %143
  %147 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %147, ptr %58, align 8, !tbaa !53
  br label %371

148:                                              ; preds = %143
  %149 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.24) #10
  %150 = icmp eq i32 %149, 0
  br i1 %150, label %151, label %153

151:                                              ; preds = %148
  %152 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %152, ptr %57, align 4, !tbaa !54
  br label %371

153:                                              ; preds = %148
  %154 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.25) #10
  %155 = icmp eq i32 %154, 0
  br i1 %155, label %156, label %158

156:                                              ; preds = %153
  %157 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %157, ptr %56, align 8, !tbaa !55
  br label %371

158:                                              ; preds = %153
  %159 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.26) #10
  %160 = icmp eq i32 %159, 0
  br i1 %160, label %161, label %163

161:                                              ; preds = %158
  %162 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %162, ptr %55, align 4, !tbaa !56
  br label %371

163:                                              ; preds = %158
  %164 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.27) #10
  %165 = icmp eq i32 %164, 0
  br i1 %165, label %166, label %168

166:                                              ; preds = %163
  %167 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %167, ptr %54, align 8, !tbaa !57
  br label %371

168:                                              ; preds = %163
  %169 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.28) #10
  %170 = icmp eq i32 %169, 0
  br i1 %170, label %171, label %173

171:                                              ; preds = %168
  %172 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %172, ptr %53, align 4, !tbaa !58
  br label %371

173:                                              ; preds = %168
  %174 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.29) #10
  %175 = icmp eq i32 %174, 0
  br i1 %175, label %176, label %178

176:                                              ; preds = %173
  %177 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %177, ptr %52, align 8, !tbaa !59
  br label %371

178:                                              ; preds = %173
  %179 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.30) #10
  %180 = icmp eq i32 %179, 0
  br i1 %180, label %181, label %183

181:                                              ; preds = %178
  %182 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %182, ptr %51, align 4, !tbaa !60
  br label %371

183:                                              ; preds = %178
  %184 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.31) #10
  %185 = icmp eq i32 %184, 0
  br i1 %185, label %186, label %188

186:                                              ; preds = %183
  %187 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %187, ptr %50, align 8, !tbaa !61
  br label %371

188:                                              ; preds = %183
  %189 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.32) #10
  %190 = icmp eq i32 %189, 0
  br i1 %190, label %191, label %193

191:                                              ; preds = %188
  %192 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %192, ptr %49, align 4, !tbaa !62
  br label %371

193:                                              ; preds = %188
  %194 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.33) #10
  %195 = icmp eq i32 %194, 0
  br i1 %195, label %196, label %198

196:                                              ; preds = %193
  %197 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %197, ptr %48, align 8, !tbaa !63
  br label %371

198:                                              ; preds = %193
  %199 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.34) #10
  %200 = icmp eq i32 %199, 0
  br i1 %200, label %201, label %203

201:                                              ; preds = %198
  %202 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %202, ptr %47, align 4, !tbaa !64
  br label %371

203:                                              ; preds = %198
  %204 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.35) #10
  %205 = icmp eq i32 %204, 0
  br i1 %205, label %206, label %208

206:                                              ; preds = %203
  %207 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %207, ptr %46, align 8, !tbaa !65
  br label %371

208:                                              ; preds = %203
  %209 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.36) #10
  %210 = icmp eq i32 %209, 0
  br i1 %210, label %211, label %213

211:                                              ; preds = %208
  %212 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %212, ptr %45, align 4, !tbaa !66
  br label %371

213:                                              ; preds = %208
  %214 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.37) #10
  %215 = icmp eq i32 %214, 0
  br i1 %215, label %216, label %218

216:                                              ; preds = %213
  %217 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %217, ptr %44, align 8, !tbaa !67
  br label %371

218:                                              ; preds = %213
  %219 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.38) #10
  %220 = icmp eq i32 %219, 0
  br i1 %220, label %221, label %223

221:                                              ; preds = %218
  %222 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %222, ptr %43, align 4, !tbaa !68
  br label %371

223:                                              ; preds = %218
  %224 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.39) #10
  %225 = icmp eq i32 %224, 0
  br i1 %225, label %226, label %228

226:                                              ; preds = %223
  %227 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %227, ptr %42, align 8, !tbaa !69
  br label %371

228:                                              ; preds = %223
  %229 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.40) #10
  %230 = icmp eq i32 %229, 0
  br i1 %230, label %231, label %233

231:                                              ; preds = %228
  %232 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %232, ptr %41, align 4, !tbaa !70
  br label %371

233:                                              ; preds = %228
  %234 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.41) #10
  %235 = icmp eq i32 %234, 0
  br i1 %235, label %236, label %238

236:                                              ; preds = %233
  %237 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %237, ptr %40, align 8, !tbaa !71
  br label %371

238:                                              ; preds = %233
  %239 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.42) #10
  %240 = icmp eq i32 %239, 0
  br i1 %240, label %241, label %243

241:                                              ; preds = %238
  %242 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %242, ptr %39, align 4, !tbaa !72
  br label %371

243:                                              ; preds = %238
  %244 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.43) #10
  %245 = icmp eq i32 %244, 0
  br i1 %245, label %246, label %248

246:                                              ; preds = %243
  %247 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %247, ptr %38, align 8, !tbaa !73
  br label %371

248:                                              ; preds = %243
  %249 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.44) #10
  %250 = icmp eq i32 %249, 0
  br i1 %250, label %251, label %253

251:                                              ; preds = %248
  %252 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %252, ptr %37, align 4, !tbaa !74
  br label %371

253:                                              ; preds = %248
  %254 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.45) #10
  %255 = icmp eq i32 %254, 0
  br i1 %255, label %256, label %258

256:                                              ; preds = %253
  %257 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %257, ptr %36, align 8, !tbaa !75
  br label %371

258:                                              ; preds = %253
  %259 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.46) #10
  %260 = icmp eq i32 %259, 0
  br i1 %260, label %261, label %263

261:                                              ; preds = %258
  %262 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %262, ptr %35, align 4, !tbaa !76
  br label %371

263:                                              ; preds = %258
  %264 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.47) #10
  %265 = icmp eq i32 %264, 0
  br i1 %265, label %266, label %268

266:                                              ; preds = %263
  %267 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %267, ptr %34, align 8, !tbaa !77
  br label %371

268:                                              ; preds = %263
  %269 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.48) #10
  %270 = icmp eq i32 %269, 0
  br i1 %270, label %271, label %273

271:                                              ; preds = %268
  %272 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %272, ptr %33, align 4, !tbaa !78
  br label %371

273:                                              ; preds = %268
  %274 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.49) #10
  %275 = icmp eq i32 %274, 0
  br i1 %275, label %276, label %278

276:                                              ; preds = %273
  %277 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %277, ptr %32, align 8, !tbaa !79
  br label %371

278:                                              ; preds = %273
  %279 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.50) #10
  %280 = icmp eq i32 %279, 0
  br i1 %280, label %281, label %283

281:                                              ; preds = %278
  %282 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %282, ptr %31, align 4, !tbaa !80
  br label %371

283:                                              ; preds = %278
  %284 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.51) #10
  %285 = icmp eq i32 %284, 0
  br i1 %285, label %286, label %288

286:                                              ; preds = %283
  %287 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %287, ptr %30, align 8, !tbaa !81
  br label %371

288:                                              ; preds = %283
  %289 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.52) #10
  %290 = icmp eq i32 %289, 0
  br i1 %290, label %291, label %293

291:                                              ; preds = %288
  %292 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %292, ptr %29, align 4, !tbaa !82
  br label %371

293:                                              ; preds = %288
  %294 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.53) #10
  %295 = icmp eq i32 %294, 0
  br i1 %295, label %296, label %298

296:                                              ; preds = %293
  %297 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %297, ptr %28, align 8, !tbaa !83
  br label %371

298:                                              ; preds = %293
  %299 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.54) #10
  %300 = icmp eq i32 %299, 0
  br i1 %300, label %301, label %303

301:                                              ; preds = %298
  %302 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %302, ptr %27, align 4, !tbaa !84
  br label %371

303:                                              ; preds = %298
  %304 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.55) #10
  %305 = icmp eq i32 %304, 0
  br i1 %305, label %306, label %308

306:                                              ; preds = %303
  %307 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %307, ptr %26, align 8, !tbaa !85
  br label %371

308:                                              ; preds = %303
  %309 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.56) #10
  %310 = icmp eq i32 %309, 0
  br i1 %310, label %311, label %313

311:                                              ; preds = %308
  %312 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %312, ptr %25, align 4, !tbaa !86
  br label %371

313:                                              ; preds = %308
  %314 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.57) #10
  %315 = icmp eq i32 %314, 0
  br i1 %315, label %316, label %318

316:                                              ; preds = %313
  %317 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %317, ptr %24, align 8, !tbaa !87
  br label %371

318:                                              ; preds = %313
  %319 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.58) #10
  %320 = icmp eq i32 %319, 0
  br i1 %320, label %321, label %323

321:                                              ; preds = %318
  %322 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %322, ptr %23, align 4, !tbaa !88
  br label %371

323:                                              ; preds = %318
  %324 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.59) #10
  %325 = icmp eq i32 %324, 0
  br i1 %325, label %326, label %328

326:                                              ; preds = %323
  %327 = call double @atof(ptr noundef %75) #10
  store double %327, ptr %22, align 8, !tbaa !89
  br label %371

328:                                              ; preds = %323
  %329 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.60) #10
  %330 = icmp eq i32 %329, 0
  br i1 %330, label %331, label %335

331:                                              ; preds = %328
  %332 = call i32 @atoi(ptr nocapture noundef %75) #10
  %333 = icmp ne i32 %332, 0
  %334 = zext i1 %333 to i8
  store i8 %334, ptr %21, align 8, !tbaa !90
  br label %371

335:                                              ; preds = %328
  %336 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.61) #10
  %337 = icmp eq i32 %336, 0
  br i1 %337, label %338, label %340

338:                                              ; preds = %335
  %339 = call i32 @atoi(ptr nocapture noundef %75) #10
  br label %371

340:                                              ; preds = %335
  %341 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.62) #10
  %342 = icmp eq i32 %341, 0
  br i1 %342, label %343, label %345

343:                                              ; preds = %340
  %344 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %344, ptr %3, align 8, !tbaa !91
  br label %371

345:                                              ; preds = %340
  %346 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.63) #10
  %347 = icmp eq i32 %346, 0
  br i1 %347, label %348, label %350

348:                                              ; preds = %345
  %349 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %349, ptr %20, align 8, !tbaa !92
  br label %371

350:                                              ; preds = %345
  %351 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.64) #10
  %352 = icmp eq i32 %351, 0
  br i1 %352, label %353, label %355

353:                                              ; preds = %350
  %354 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %354, ptr %19, align 4, !tbaa !93
  br label %371

355:                                              ; preds = %350
  %356 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.65) #10
  %357 = icmp eq i32 %356, 0
  br i1 %357, label %358, label %360

358:                                              ; preds = %355
  %359 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %359, ptr %18, align 8, !tbaa !94
  br label %371

360:                                              ; preds = %355
  %361 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.66) #10
  %362 = icmp eq i32 %361, 0
  br i1 %362, label %363, label %365

363:                                              ; preds = %360
  %364 = call i32 @atoi(ptr nocapture noundef %75) #10
  br label %371

365:                                              ; preds = %360
  %366 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %74, ptr noundef nonnull dereferenceable(1) @.str.67) #10
  %367 = icmp eq i32 %366, 0
  br i1 %367, label %368, label %370

368:                                              ; preds = %365
  %369 = call i32 @atoi(ptr nocapture noundef %75) #10
  store i32 %369, ptr %17, align 8, !tbaa !95
  br label %371

370:                                              ; preds = %365
  call void @_ZN14McPATComponent21warnUnrecognizedParamEPKc(ptr noundef nonnull align 8 dereferenceable(1352) %0, ptr noundef nonnull %74)
  br label %371

371:                                              ; preds = %81, %91, %101, %111, %121, %131, %141, %151, %161, %171, %181, %191, %201, %211, %221, %231, %241, %251, %261, %271, %281, %291, %301, %311, %321, %331, %343, %353, %363, %370, %368, %358, %348, %338, %326, %316, %306, %296, %286, %276, %266, %256, %246, %236, %226, %216, %206, %196, %186, %176, %166, %156, %146, %136, %126, %116, %106, %96, %86, %76
  %.1179 = phi i32 [ %.0178195, %81 ], [ %.0178195, %86 ], [ %.0178195, %91 ], [ %.0178195, %96 ], [ %.0178195, %101 ], [ %.0178195, %106 ], [ %.0178195, %111 ], [ %.0178195, %116 ], [ %.0178195, %121 ], [ %.0178195, %126 ], [ %.0178195, %131 ], [ %.0178195, %136 ], [ %.0178195, %141 ], [ %.0178195, %146 ], [ %.0178195, %151 ], [ %.0178195, %156 ], [ %.0178195, %161 ], [ %.0178195, %166 ], [ %.0178195, %171 ], [ %.0178195, %176 ], [ %.0178195, %181 ], [ %.0178195, %186 ], [ %.0178195, %191 ], [ %.0178195, %196 ], [ %.0178195, %201 ], [ %.0178195, %206 ], [ %.0178195, %211 ], [ %.0178195, %216 ], [ %.0178195, %221 ], [ %.0178195, %226 ], [ %.0178195, %231 ], [ %.0178195, %236 ], [ %.0178195, %241 ], [ %.0178195, %246 ], [ %.0178195, %251 ], [ %.0178195, %256 ], [ %.0178195, %261 ], [ %.0178195, %266 ], [ %.0178195, %271 ], [ %.0178195, %276 ], [ %.0178195, %281 ], [ %.0178195, %286 ], [ %.0178195, %291 ], [ %.0178195, %296 ], [ %.0178195, %301 ], [ %.0178195, %306 ], [ %.0178195, %311 ], [ %.0178195, %316 ], [ %.0178195, %321 ], [ %.0178195, %326 ], [ %.0178195, %331 ], [ %.0178195, %338 ], [ %.0178195, %343 ], [ %.0178195, %348 ], [ %.0178195, %353 ], [ %.0178195, %358 ], [ %364, %363 ], [ %.0178195, %368 ], [ %.0178195, %370 ], [ %.0178195, %76 ]
  %.1177 = phi i32 [ %.0176196, %81 ], [ %.0176196, %86 ], [ %.0176196, %91 ], [ %.0176196, %96 ], [ %.0176196, %101 ], [ %.0176196, %106 ], [ %.0176196, %111 ], [ %.0176196, %116 ], [ %.0176196, %121 ], [ %.0176196, %126 ], [ %.0176196, %131 ], [ %.0176196, %136 ], [ %.0176196, %141 ], [ %.0176196, %146 ], [ %.0176196, %151 ], [ %.0176196, %156 ], [ %.0176196, %161 ], [ %.0176196, %166 ], [ %.0176196, %171 ], [ %.0176196, %176 ], [ %.0176196, %181 ], [ %.0176196, %186 ], [ %.0176196, %191 ], [ %.0176196, %196 ], [ %.0176196, %201 ], [ %.0176196, %206 ], [ %.0176196, %211 ], [ %.0176196, %216 ], [ %.0176196, %221 ], [ %.0176196, %226 ], [ %.0176196, %231 ], [ %.0176196, %236 ], [ %.0176196, %241 ], [ %.0176196, %246 ], [ %.0176196, %251 ], [ %.0176196, %256 ], [ %.0176196, %261 ], [ %.0176196, %266 ], [ %.0176196, %271 ], [ %.0176196, %276 ], [ %.0176196, %281 ], [ %.0176196, %286 ], [ %.0176196, %291 ], [ %.0176196, %296 ], [ %.0176196, %301 ], [ %.0176196, %306 ], [ %.0176196, %311 ], [ %.0176196, %316 ], [ %.0176196, %321 ], [ %.0176196, %326 ], [ %.0176196, %331 ], [ %339, %338 ], [ %.0176196, %343 ], [ %.0176196, %348 ], [ %.0176196, %353 ], [ %.0176196, %358 ], [ %.0176196, %363 ], [ %.0176196, %368 ], [ %.0176196, %370 ], [ %.0176196, %76 ]
  %.1 = phi i32 [ %82, %81 ], [ %.0197, %86 ], [ %.0197, %91 ], [ %.0197, %96 ], [ %.0197, %101 ], [ %.0197, %106 ], [ %.0197, %111 ], [ %.0197, %116 ], [ %.0197, %121 ], [ %.0197, %126 ], [ %.0197, %131 ], [ %.0197, %136 ], [ %.0197, %141 ], [ %.0197, %146 ], [ %.0197, %151 ], [ %.0197, %156 ], [ %.0197, %161 ], [ %.0197, %166 ], [ %.0197, %171 ], [ %.0197, %176 ], [ %.0197, %181 ], [ %.0197, %186 ], [ %.0197, %191 ], [ %.0197, %196 ], [ %.0197, %201 ], [ %.0197, %206 ], [ %.0197, %211 ], [ %.0197, %216 ], [ %.0197, %221 ], [ %.0197, %226 ], [ %.0197, %231 ], [ %.0197, %236 ], [ %.0197, %241 ], [ %.0197, %246 ], [ %.0197, %251 ], [ %.0197, %256 ], [ %.0197, %261 ], [ %.0197, %266 ], [ %.0197, %271 ], [ %.0197, %276 ], [ %.0197, %281 ], [ %.0197, %286 ], [ %.0197, %291 ], [ %.0197, %296 ], [ %.0197, %301 ], [ %.0197, %306 ], [ %.0197, %311 ], [ %.0197, %316 ], [ %.0197, %321 ], [ %.0197, %326 ], [ %.0197, %331 ], [ %.0197, %338 ], [ %.0197, %343 ], [ %.0197, %348 ], [ %.0197, %353 ], [ %.0197, %358 ], [ %.0197, %363 ], [ %.0197, %368 ], [ %.0197, %370 ], [ %.0197, %76 ]
  %372 = load i32, ptr %2, align 4, !tbaa !31
  %373 = add nsw i32 %372, 1
  store i32 %373, ptr %2, align 4, !tbaa !31
  %374 = icmp slt i32 %373, %15
  br i1 %374, label %71, label %._crit_edge, !llvm.loop !96

._crit_edge:                                      ; preds = %371, %13
  %.0178.lcssa = phi i32 [ undef, %13 ], [ %.1179, %371 ]
  %.0176.lcssa = phi i32 [ undef, %13 ], [ %.1177, %371 ]
  %.0.lcssa = phi i32 [ undef, %13 ], [ %.1, %371 ]
  %375 = getelementptr inbounds i8, ptr %0, i64 1368
  %376 = load double, ptr %375, align 8, !tbaa !89
  %377 = fmul double %376, 1.000000e+06
  store double %377, ptr %375, align 8, !tbaa !89
  %378 = fcmp ogt double %377, 0.000000e+00
  br i1 %378, label %379, label %380

379:                                              ; preds = %._crit_edge
  store double %377, ptr %6, align 8, !tbaa !9
  br label %380

380:                                              ; preds = %379, %._crit_edge
  %381 = getelementptr inbounds i8, ptr %0, i64 408
  %382 = insertelement <4 x i32> poison, i32 %.0176.lcssa, i64 0
  %383 = shufflevector <4 x i32> %382, <4 x i32> poison, <4 x i32> zeroinitializer
  store <4 x i32> %383, ptr %381, align 8, !tbaa !31
  %384 = getelementptr inbounds i8, ptr %0, i64 440
  store i32 %.0178.lcssa, ptr %384, align 8, !tbaa !98
  %385 = getelementptr inbounds i8, ptr %0, i64 444
  store i32 %.0178.lcssa, ptr %385, align 4, !tbaa !99
  %switch.tableidx = add i32 %.0.lcssa, -1
  %386 = icmp ult i32 %switch.tableidx, 5
  br i1 %386, label %switch.lookup, label %387

387:                                              ; preds = %380
  %388 = load ptr, ptr @stderr, align 8, !tbaa !100
  %389 = getelementptr inbounds i8, ptr %0, i64 664
  %390 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %389) #9
  %391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %388, ptr noundef nonnull @.str.68, ptr noundef %390, i32 noundef %.0.lcssa) #11
  call void @exit(i32 noundef 1) #12
  unreachable

switch.lookup:                                    ; preds = %380
  %392 = getelementptr inbounds i8, ptr %0, i64 1596
  store i32 %switch.tableidx, ptr %392, align 4, !tbaa !101
  %393 = getelementptr inbounds i8, ptr %0, i64 1648
  store i8 0, ptr %393, align 8, !tbaa !102
  %394 = load ptr, ptr %7, align 8, !tbaa !30
  %395 = call noundef i32 @_ZNK7XMLNode10nChildNodeEPKc(ptr noundef nonnull align 8 dereferenceable(8) %394, ptr noundef nonnull @.str.69)
  store i32 0, ptr %2, align 4, !tbaa !31
  %396 = icmp sgt i32 %395, 0
  br i1 %396, label %.lr.ph201, label %._crit_edge202

.lr.ph201:                                        ; preds = %switch.lookup
  %397 = getelementptr inbounds i8, ptr %0, i64 1624
  %398 = getelementptr inbounds i8, ptr %0, i64 1752
  %399 = getelementptr inbounds i8, ptr %0, i64 1640
  %400 = getelementptr inbounds i8, ptr %0, i64 1632
  %401 = getelementptr inbounds i8, ptr %0, i64 1744
  %402 = getelementptr inbounds i8, ptr %0, i64 1740
  %403 = getelementptr inbounds i8, ptr %0, i64 1736
  %404 = getelementptr inbounds i8, ptr %0, i64 1732
  %405 = getelementptr inbounds i8, ptr %0, i64 1728
  %406 = getelementptr inbounds i8, ptr %0, i64 1720
  %407 = getelementptr inbounds i8, ptr %0, i64 1712
  %408 = getelementptr inbounds i8, ptr %0, i64 1704
  %409 = getelementptr inbounds i8, ptr %0, i64 1696
  %410 = getelementptr inbounds i8, ptr %0, i64 1688
  %411 = getelementptr inbounds i8, ptr %0, i64 1680
  %412 = getelementptr inbounds i8, ptr %0, i64 1672
  %413 = getelementptr inbounds i8, ptr %0, i64 1664
  %414 = getelementptr inbounds i8, ptr %0, i64 1656
  br label %415

415:                                              ; preds = %.lr.ph201, %518
  %416 = load ptr, ptr %7, align 8, !tbaa !30
  %417 = call noundef ptr @_ZNK7XMLNode15getChildNodePtrEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %416, ptr noundef nonnull @.str.69, ptr noundef nonnull %2)
  %418 = call noundef ptr @_ZNK7XMLNode12getAttributeEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %417, ptr noundef nonnull @.str.6, ptr noundef null)
  %419 = call noundef ptr @_ZNK7XMLNode12getAttributeEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %417, ptr noundef nonnull @.str.8, ptr noundef null)
  %.not185 = icmp eq ptr %418, null
  br i1 %.not185, label %420, label %422

420:                                              ; preds = %415
  %421 = call noundef ptr @_ZNK7XMLNode12getAttributeEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %417, ptr noundef nonnull @.str.9, ptr noundef null)
  call void @_ZN14McPATComponent19warnMissingStatNameEPKc(ptr noundef nonnull align 8 dereferenceable(1352) %0, ptr noundef %421)
  br label %518

422:                                              ; preds = %415
  %423 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %418, ptr noundef nonnull dereferenceable(1) @.str.70) #10
  %424 = icmp eq i32 %423, 0
  br i1 %424, label %425, label %427

425:                                              ; preds = %422
  %426 = call double @atof(ptr noundef %419) #10
  store double %426, ptr %414, align 8, !tbaa !103
  br label %518

427:                                              ; preds = %422
  %428 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %418, ptr noundef nonnull dereferenceable(1) @.str.71) #10
  %429 = icmp eq i32 %428, 0
  br i1 %429, label %430, label %432

430:                                              ; preds = %427
  %431 = call double @atof(ptr noundef %419) #10
  store double %431, ptr %413, align 8, !tbaa !104
  br label %518

432:                                              ; preds = %427
  %433 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %418, ptr noundef nonnull dereferenceable(1) @.str.72) #10
  %434 = icmp eq i32 %433, 0
  br i1 %434, label %435, label %437

435:                                              ; preds = %432
  %436 = call double @atof(ptr noundef %419) #10
  store double %436, ptr %412, align 8, !tbaa !105
  br label %518

437:                                              ; preds = %432
  %438 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %418, ptr noundef nonnull dereferenceable(1) @.str.73) #10
  %439 = icmp eq i32 %438, 0
  br i1 %439, label %440, label %442

440:                                              ; preds = %437
  %441 = call double @atof(ptr noundef %419) #10
  store double %441, ptr %411, align 8, !tbaa !106
  br label %518

442:                                              ; preds = %437
  %443 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %418, ptr noundef nonnull dereferenceable(1) @.str.74) #10
  %444 = icmp eq i32 %443, 0
  br i1 %444, label %445, label %447

445:                                              ; preds = %442
  %446 = call double @atof(ptr noundef %419) #10
  store double %446, ptr %4, align 8, !tbaa !107
  br label %518

447:                                              ; preds = %442
  %448 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %418, ptr noundef nonnull dereferenceable(1) @.str.75) #10
  %449 = icmp eq i32 %448, 0
  br i1 %449, label %450, label %452

450:                                              ; preds = %447
  %451 = call double @atof(ptr noundef %419) #10
  store double %451, ptr %410, align 8, !tbaa !108
  br label %518

452:                                              ; preds = %447
  %453 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %418, ptr noundef nonnull dereferenceable(1) @.str.76) #10
  %454 = icmp eq i32 %453, 0
  br i1 %454, label %455, label %457

455:                                              ; preds = %452
  %456 = call double @atof(ptr noundef %419) #10
  store double %456, ptr %409, align 8, !tbaa !109
  br label %518

457:                                              ; preds = %452
  %458 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %418, ptr noundef nonnull dereferenceable(1) @.str.77) #10
  %459 = icmp eq i32 %458, 0
  br i1 %459, label %460, label %462

460:                                              ; preds = %457
  %461 = call double @atof(ptr noundef %419) #10
  store double %461, ptr %408, align 8, !tbaa !110
  br label %518

462:                                              ; preds = %457
  %463 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %418, ptr noundef nonnull dereferenceable(1) @.str.78) #10
  %464 = icmp eq i32 %463, 0
  br i1 %464, label %465, label %467

465:                                              ; preds = %462
  %466 = call double @atof(ptr noundef %419) #10
  store double %466, ptr %407, align 8, !tbaa !111
  br label %518

467:                                              ; preds = %462
  %468 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %418, ptr noundef nonnull dereferenceable(1) @.str.79) #10
  %469 = icmp eq i32 %468, 0
  br i1 %469, label %470, label %472

470:                                              ; preds = %467
  %471 = call double @atof(ptr noundef %419) #10
  store double %471, ptr %406, align 8, !tbaa !112
  br label %518

472:                                              ; preds = %467
  %473 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %418, ptr noundef nonnull dereferenceable(1) @.str.80) #10
  %474 = icmp eq i32 %473, 0
  br i1 %474, label %475, label %477

475:                                              ; preds = %472
  %476 = call i32 @atoi(ptr nocapture noundef %419) #10
  store i32 %476, ptr %405, align 8, !tbaa !113
  br label %518

477:                                              ; preds = %472
  %478 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %418, ptr noundef nonnull dereferenceable(1) @.str.81) #10
  %479 = icmp eq i32 %478, 0
  br i1 %479, label %480, label %482

480:                                              ; preds = %477
  %481 = call i32 @atoi(ptr nocapture noundef %419) #10
  store i32 %481, ptr %404, align 4, !tbaa !114
  br label %518

482:                                              ; preds = %477
  %483 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %418, ptr noundef nonnull dereferenceable(1) @.str.82) #10
  %484 = icmp eq i32 %483, 0
  br i1 %484, label %485, label %487

485:                                              ; preds = %482
  %486 = call i32 @atoi(ptr nocapture noundef %419) #10
  store i32 %486, ptr %403, align 8, !tbaa !115
  br label %518

487:                                              ; preds = %482
  %488 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %418, ptr noundef nonnull dereferenceable(1) @.str.83) #10
  %489 = icmp eq i32 %488, 0
  br i1 %489, label %490, label %492

490:                                              ; preds = %487
  %491 = call i32 @atoi(ptr nocapture noundef %419) #10
  store i32 %491, ptr %402, align 4, !tbaa !116
  br label %518

492:                                              ; preds = %487
  %493 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %418, ptr noundef nonnull dereferenceable(1) @.str.84) #10
  %494 = icmp eq i32 %493, 0
  br i1 %494, label %495, label %497

495:                                              ; preds = %492
  %496 = call double @atof(ptr noundef %419) #10
  store double %496, ptr %401, align 8, !tbaa !117
  br label %518

497:                                              ; preds = %492
  %498 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %418, ptr noundef nonnull dereferenceable(1) @.str.85) #10
  %499 = icmp eq i32 %498, 0
  br i1 %499, label %500, label %502

500:                                              ; preds = %497
  %501 = call double @atof(ptr noundef %419) #10
  store double %501, ptr %400, align 8, !tbaa !118
  br label %518

502:                                              ; preds = %497
  %503 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %418, ptr noundef nonnull dereferenceable(1) @.str.86) #10
  %504 = icmp eq i32 %503, 0
  br i1 %504, label %505, label %507

505:                                              ; preds = %502
  %506 = call double @atof(ptr noundef %419) #10
  store double %506, ptr %399, align 8, !tbaa !119
  br label %518

507:                                              ; preds = %502
  %508 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %418, ptr noundef nonnull dereferenceable(1) @.str.87) #10
  %509 = icmp eq i32 %508, 0
  br i1 %509, label %510, label %512

510:                                              ; preds = %507
  %511 = call double @atof(ptr noundef %419) #10
  store double %511, ptr %398, align 8, !tbaa !120
  br label %518

512:                                              ; preds = %507
  %513 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %418, ptr noundef nonnull dereferenceable(1) @.str.88) #10
  %514 = icmp eq i32 %513, 0
  br i1 %514, label %515, label %517

515:                                              ; preds = %512
  %516 = call double @atof(ptr noundef %419) #10
  store double %516, ptr %397, align 8, !tbaa !121
  br label %518

517:                                              ; preds = %512
  call void @_ZN14McPATComponent20warnUnrecognizedStatEPKc(ptr noundef nonnull align 8 dereferenceable(1352) %0, ptr noundef nonnull %418)
  br label %518

518:                                              ; preds = %425, %435, %445, %455, %465, %475, %485, %495, %505, %515, %517, %510, %500, %490, %480, %470, %460, %450, %440, %430, %420
  %519 = load i32, ptr %2, align 4, !tbaa !31
  %520 = add nsw i32 %519, 1
  store i32 %520, ptr %2, align 4, !tbaa !31
  %521 = icmp slt i32 %520, %395
  br i1 %521, label %415, label %._crit_edge202, !llvm.loop !122

._crit_edge202:                                   ; preds = %518, %switch.lookup
  %522 = getelementptr inbounds i8, ptr %0, i64 1656
  %523 = load <4 x double>, ptr %522, align 8
  %.fr = freeze <4 x double> %523
  %524 = fcmp ogt <4 x double> %.fr, zeroinitializer
  %525 = bitcast <4 x i1> %524 to i4
  %.not204 = icmp eq i4 %525, 0
  br i1 %.not204, label %528, label %526

526:                                              ; preds = %._crit_edge202
  store i8 1, ptr %393, align 8, !tbaa !102
  %527 = getelementptr inbounds i8, ptr %0, i64 1764
  store i8 1, ptr %527, align 4, !tbaa !123
  br label %528

528:                                              ; preds = %._crit_edge202, %526
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #9
  ret void
}

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

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

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

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

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

declare void @_ZN14McPATComponent20warnMissingParamNameEPKc(ptr noundef nonnull align 8 dereferenceable(1352), ptr 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

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

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

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

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

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

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

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 = { 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 #6 = { 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 #7 = { 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 = { 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 #9 = { nounwind }
attributes #10 = { nounwind willreturn memory(read) }
attributes #11 = { cold nounwind }
attributes #12 = { 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 = !{!"double", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !6, i64 696}
!10 = !{!"_ZTS14McPATComponent", !11, i64 8, !15, i64 288, !16, i64 296, !20, i64 664, !6, i64 696, !23, i64 704, !27, i64 728, !28, i64 776, !28, i64 944, !13, i64 1112, !13, i64 1232}
!11 = !{!"_ZTS9Component", !12, i64 0, !13, i64 24, !13, i64 144, !6, i64 264, !6, i64 272}
!12 = !{!"_ZTS4Area", !6, i64 0, !6, i64 8, !6, i64 16}
!13 = !{!"_ZTS8powerDef", !14, i64 0, !14, i64 40, !14, i64 80}
!14 = !{!"_ZTS15powerComponents", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32}
!15 = !{!"any pointer", !7, i64 0}
!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, !6, i64 48, !6, 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, !6, i64 336, !6, 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", !15, 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", !15, i64 0, !15, i64 8, !15, i64 16}
!27 = !{!"_ZTS11McPATOutput", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, 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", !6, i64 0, !6, i64 8, !6, i64 16}
!30 = !{!10, !15, i64 288}
!31 = !{!17, !17, i64 0}
!32 = !{!33, !6, i64 1376}
!33 = !{!"_ZTS9CacheUnit", !10, i64 0, !17, i64 1352, !34, i64 1360, !40, i64 1616, !41, i64 1760, !18, i64 1764, !6, i64 1768, !6, i64 1776}
!34 = !{!"_ZTS15CacheParameters", !35, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !17, i64 64, !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, !17, i64 108, !36, i64 112, !36, i64 116, !36, i64 120, !36, i64 124, !36, i64 128, !17, i64 132, !17, i64 136, !17, i64 140, !17, i64 144, !17, i64 148, !17, i64 152, !17, i64 156, !17, i64 160, !17, i64 164, !17, i64 168, !17, i64 172, !17, i64 176, !17, i64 180, !17, i64 184, !17, i64 188, !17, 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, !18, i64 232, !37, i64 236, !38, i64 240, !39, i64 244, !17, i64 248}
!35 = !{!"_ZTS8Dir_type", !7, i64 0}
!36 = !{!"_ZTS11Access_mode", !7, i64 0}
!37 = !{!"_ZTS10CacheLevel", !7, i64 0}
!38 = !{!"_ZTS9Device_ty", !7, i64 0}
!39 = !{!"_ZTS9Core_type", !7, i64 0}
!40 = !{!"_ZTS15CacheStatistics", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !18, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !17, i64 112, !17, i64 116, !17, i64 120, !17, i64 124, !6, i64 128, !6, i64 136}
!41 = !{!"_ZTS10Cache_type", !7, i64 0}
!42 = !{!33, !6, i64 1384}
!43 = !{!33, !6, i64 1392}
!44 = !{!33, !6, i64 1400}
!45 = !{!33, !6, i64 1416}
!46 = !{!33, !6, i64 1408}
!47 = !{!33, !17, i64 1424}
!48 = !{!33, !17, i64 1428}
!49 = !{!33, !17, i64 1432}
!50 = !{!33, !17, i64 1436}
!51 = !{!33, !17, i64 1440}
!52 = !{!33, !17, i64 1444}
!53 = !{!33, !17, i64 1448}
!54 = !{!33, !17, i64 1452}
!55 = !{!33, !17, i64 1456}
!56 = !{!33, !17, i64 1460}
!57 = !{!33, !17, i64 1464}
!58 = !{!33, !17, i64 1468}
!59 = !{!33, !36, i64 1472}
!60 = !{!33, !36, i64 1476}
!61 = !{!33, !36, i64 1480}
!62 = !{!33, !36, i64 1484}
!63 = !{!33, !36, i64 1488}
!64 = !{!33, !17, i64 1492}
!65 = !{!33, !17, i64 1496}
!66 = !{!33, !17, i64 1500}
!67 = !{!33, !17, i64 1504}
!68 = !{!33, !17, i64 1508}
!69 = !{!33, !17, i64 1512}
!70 = !{!33, !17, i64 1516}
!71 = !{!33, !17, i64 1520}
!72 = !{!33, !17, i64 1524}
!73 = !{!33, !17, i64 1528}
!74 = !{!33, !17, i64 1532}
!75 = !{!33, !17, i64 1536}
!76 = !{!33, !17, i64 1540}
!77 = !{!33, !17, i64 1544}
!78 = !{!33, !17, i64 1548}
!79 = !{!33, !17, i64 1552}
!80 = !{!33, !17, i64 1556}
!81 = !{!33, !17, i64 1560}
!82 = !{!33, !17, i64 1564}
!83 = !{!33, !17, i64 1568}
!84 = !{!33, !17, i64 1572}
!85 = !{!33, !17, i64 1576}
!86 = !{!33, !17, i64 1580}
!87 = !{!33, !17, i64 1584}
!88 = !{!33, !17, i64 1588}
!89 = !{!33, !6, i64 1368}
!90 = !{!33, !18, i64 1592}
!91 = !{!33, !35, i64 1360}
!92 = !{!33, !38, i64 1600}
!93 = !{!33, !39, i64 1604}
!94 = !{!33, !17, i64 1608}
!95 = !{!10, !19, i64 448}
!96 = distinct !{!96, !97}
!97 = !{!"llvm.loop.mustprogress"}
!98 = !{!10, !17, i64 440}
!99 = !{!10, !17, i64 444}
!100 = !{!15, !15, i64 0}
!101 = !{!33, !37, i64 1596}
!102 = !{!33, !18, i64 1648}
!103 = !{!33, !6, i64 1656}
!104 = !{!33, !6, i64 1664}
!105 = !{!33, !6, i64 1672}
!106 = !{!33, !6, i64 1680}
!107 = !{!33, !6, i64 1616}
!108 = !{!33, !6, i64 1688}
!109 = !{!33, !6, i64 1696}
!110 = !{!33, !6, i64 1704}
!111 = !{!33, !6, i64 1712}
!112 = !{!33, !6, i64 1720}
!113 = !{!33, !17, i64 1728}
!114 = !{!33, !17, i64 1732}
!115 = !{!33, !17, i64 1736}
!116 = !{!33, !17, i64 1740}
!117 = !{!33, !6, i64 1744}
!118 = !{!33, !6, i64 1632}
!119 = !{!33, !6, i64 1640}
!120 = !{!33, !6, i64 1752}
!121 = !{!33, !6, i64 1624}
!122 = distinct !{!122, !97}
!123 = !{!33, !18, i64 1764}


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