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

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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator" = type { i8 }
%class.MCFrontEnd = type { %class.McPATComponent, ptr, ptr, ptr, ptr, %class.InputParameter, %class.MCParameters, %class.MCStatistics }
%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.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.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.MCParameters = type { double, i32, double, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
%class.MCStatistics = type { double, double, double, double }
%class.CacheArray = type { %class.McPATComponent, %class.InputParameter, i32, i8, i32, i8, %class.uca_org_t, double, %class.statsDef, %class.statsDef }
%class.uca_org_t = type { ptr, ptr, double, double, double, double, %class.powerDef, double, double, double, [100 x i8], double, i8, %struct.results_mem_array, %struct.results_mem_array }
%struct.results_mem_array = type { i32, i32, double, i32, i32, i32, i32, i32, i32, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double }

@_ZTV10MCFrontEnd = external dso_local unnamed_addr constant { [6 x ptr] }, align 8
@.str.3 = external hidden unnamed_addr constant [10 x i8], align 1
@_ZN14McPATComponent22physical_address_widthE = external global i32, align 4
@.str.4 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [18 x i8], align 1

declare void @_ZN14McPATComponentC2EP7XMLNode(ptr noundef nonnull align 8 dereferenceable(1352), ptr noundef) unnamed_addr #0

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

declare i32 @__gxx_personality_v0(...)

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168)) #2 align 2

; Function Attrs: nounwind
declare void @_ZN14McPATComponentD2Ev(ptr noundef nonnull align 8 dereferenceable(1352)) unnamed_addr #4

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN10MCFrontEndC2EP7XMLNodeP14InputParameterRK12MCParametersRK12MCStatistics(ptr noundef nonnull align 8 dereferenceable(1896) %0, ptr noundef %1, ptr noundef %2, ptr noundef nonnull align 8 dereferenceable(112) %3, ptr noundef nonnull align 8 dereferenceable(32) %4) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i8, align 1
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::allocator", align 1
  %18 = alloca i1, align 1
  %19 = alloca ptr, align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::allocator", align 1
  %22 = alloca i1, align 1
  %23 = alloca ptr, align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::allocator", align 1
  %26 = alloca i1, align 1
  %27 = alloca ptr, align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::allocator", align 1
  %30 = alloca i1, align 1
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !5
  store ptr %2, ptr %8, align 8, !tbaa !5
  store ptr %3, ptr %9, align 8, !tbaa !5
  store ptr %4, ptr %10, align 8, !tbaa !5
  %31 = load ptr, ptr %6, align 8
  %32 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN14McPATComponentC2EP7XMLNode(ptr noundef nonnull align 8 dereferenceable(1352) %31, ptr noundef %32)
  store ptr getelementptr inbounds inrange(-16, 32) ({ [6 x ptr] }, ptr @_ZTV10MCFrontEnd, i32 0, i32 0, i32 2), ptr %31, align 8, !tbaa !9
  %33 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 1
  store ptr null, ptr %33, align 8, !tbaa !11
  %34 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 2
  store ptr null, ptr %34, align 8, !tbaa !36
  %35 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 3
  store ptr null, ptr %35, align 8, !tbaa !37
  %36 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 4
  store ptr null, ptr %36, align 8, !tbaa !38
  %37 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %38 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %37, ptr align 8 %38, i64 368, i1 false), !tbaa.struct !39
  %39 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %40 = load ptr, ptr %9, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %39, ptr align 8 %40, i64 112, i1 false), !tbaa.struct !44
  %41 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 7
  %42 = load ptr, ptr %10, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %41, ptr align 8 %42, i64 32, i1 false), !tbaa.struct !46
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %13) #9
  store i8 1, ptr %13, align 1, !tbaa !41
  %43 = getelementptr inbounds %class.McPATComponent, ptr %31, i32 0, i32 4
  %44 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef @.str.3)
          to label %45 unwind label %663

45:                                               ; preds = %5
  %46 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %47 = getelementptr inbounds %class.MCParameters, ptr %46, i32 0, i32 10
  %48 = load i32, ptr %47, align 4, !tbaa !47
  %49 = add nsw i32 %48, 5
  %50 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %51 = getelementptr inbounds %class.MCParameters, ptr %50, i32 0, i32 11
  %52 = load i32, ptr %51, align 8, !tbaa !48
  %53 = add nsw i32 %49, %52
  store i32 %53, ptr %11, align 4, !tbaa !40
  %54 = load i32, ptr @_ZN14McPATComponent22physical_address_widthE, align 4, !tbaa !40
  %55 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %56 = getelementptr inbounds %class.MCParameters, ptr %55, i32 0, i32 11
  %57 = load i32, ptr %56, align 8, !tbaa !48
  %58 = add nsw i32 %54, %57
  %59 = sitofp i32 %58 to double
  %60 = fdiv double %59, 8.000000e+00
  %61 = call double @llvm.ceil.f64(double %60)
  %62 = fptosi double %61 to i32
  store i32 %62, ptr %12, align 4, !tbaa !40
  %63 = load i32, ptr %12, align 4, !tbaa !40
  %64 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %65 = getelementptr inbounds %class.MCParameters, ptr %64, i32 0, i32 8
  %66 = load i32, ptr %65, align 4, !tbaa !49
  %67 = mul nsw i32 %63, %66
  %68 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %69 = getelementptr inbounds %class.InputParameter, ptr %68, i32 0, i32 0
  store i32 %67, ptr %69, align 8, !tbaa !50
  %70 = load i32, ptr %12, align 4, !tbaa !40
  %71 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %72 = getelementptr inbounds %class.InputParameter, ptr %71, i32 0, i32 1
  store i32 %70, ptr %72, align 4, !tbaa !51
  %73 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %74 = getelementptr inbounds %class.MCParameters, ptr %73, i32 0, i32 17
  %75 = load i32, ptr %74, align 4, !tbaa !52
  %76 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %77 = getelementptr inbounds %class.InputParameter, ptr %76, i32 0, i32 2
  store i32 %75, ptr %77, align 8, !tbaa !53
  %78 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %79 = getelementptr inbounds %class.MCParameters, ptr %78, i32 0, i32 18
  %80 = load i32, ptr %79, align 8, !tbaa !54
  %81 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %82 = getelementptr inbounds %class.InputParameter, ptr %81, i32 0, i32 3
  store i32 %80, ptr %82, align 4, !tbaa !55
  %83 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %84 = getelementptr inbounds %class.InputParameter, ptr %83, i32 0, i32 1
  %85 = load i32, ptr %84, align 4, !tbaa !51
  %86 = uitofp i32 %85 to double
  %87 = fmul double %86, 8.000000e+00
  %88 = fptoui double %87 to i32
  %89 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %90 = getelementptr inbounds %class.InputParameter, ptr %89, i32 0, i32 4
  store i32 %88, ptr %90, align 8, !tbaa !56
  %91 = load i32, ptr %11, align 4, !tbaa !40
  %92 = icmp sgt i32 %91, 0
  %93 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %94 = getelementptr inbounds %class.InputParameter, ptr %93, i32 0, i32 5
  %95 = zext i1 %92 to i8
  store i8 %95, ptr %94, align 4, !tbaa !57
  %96 = load i32, ptr %11, align 4, !tbaa !40
  %97 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %98 = getelementptr inbounds %class.InputParameter, ptr %97, i32 0, i32 6
  store i32 %96, ptr %98, align 8, !tbaa !58
  %99 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %100 = getelementptr inbounds %class.InputParameter, ptr %99, i32 0, i32 7
  store i32 0, ptr %100, align 4, !tbaa !59
  %101 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %102 = getelementptr inbounds %class.InputParameter, ptr %101, i32 0, i32 8
  store i32 0, ptr %102, align 8, !tbaa !60
  %103 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %104 = getelementptr inbounds %class.InputParameter, ptr %103, i32 0, i32 9
  store i32 0, ptr %104, align 4, !tbaa !61
  %105 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %106 = getelementptr inbounds %class.InputParameter, ptr %105, i32 0, i32 10
  store i32 0, ptr %106, align 8, !tbaa !62
  %107 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %108 = getelementptr inbounds %class.InputParameter, ptr %107, i32 0, i32 11
  store i32 1, ptr %108, align 4, !tbaa !63
  %109 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %110 = getelementptr inbounds %class.InputParameter, ptr %109, i32 0, i32 14
  store i32 0, ptr %110, align 8, !tbaa !64
  %111 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %112 = getelementptr inbounds %class.MCParameters, ptr %111, i32 0, i32 3
  %113 = load i32, ptr %112, align 8, !tbaa !65
  %114 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %115 = getelementptr inbounds %class.InputParameter, ptr %114, i32 0, i32 15
  store i32 %113, ptr %115, align 4, !tbaa !66
  %116 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %117 = getelementptr inbounds %class.InputParameter, ptr %116, i32 0, i32 15
  %118 = load i32, ptr %117, align 4, !tbaa !66
  %119 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %120 = getelementptr inbounds %class.InputParameter, ptr %119, i32 0, i32 16
  store i32 %118, ptr %120, align 8, !tbaa !67
  %121 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %122 = getelementptr inbounds %class.InputParameter, ptr %121, i32 0, i32 17
  store i32 0, ptr %122, align 4, !tbaa !68
  %123 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %124 = getelementptr inbounds %class.MCParameters, ptr %123, i32 0, i32 3
  %125 = load i32, ptr %124, align 8, !tbaa !65
  %126 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %127 = getelementptr inbounds %class.InputParameter, ptr %126, i32 0, i32 18
  store i32 %125, ptr %127, align 8, !tbaa !69
  %128 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %129 = getelementptr inbounds %class.InputParameter, ptr %128, i32 0, i32 20
  store i8 1, ptr %129, align 1, !tbaa !70
  %130 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %131 = getelementptr inbounds %class.InputParameter, ptr %130, i32 0, i32 22
  store i8 0, ptr %131, align 1, !tbaa !71
  %132 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %133 = getelementptr inbounds %class.InputParameter, ptr %132, i32 0, i32 21
  store i8 0, ptr %133, align 2, !tbaa !72
  %134 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %135 = getelementptr inbounds %class.MCParameters, ptr %134, i32 0, i32 0
  %136 = load double, ptr %135, align 8, !tbaa !73
  %137 = fdiv double 1.000000e+00, %136
  %138 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %139 = getelementptr inbounds %class.InputParameter, ptr %138, i32 0, i32 85
  store double %137, ptr %139, align 8, !tbaa !74
  %140 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %141 = getelementptr inbounds %class.MCParameters, ptr %140, i32 0, i32 0
  %142 = load double, ptr %141, align 8, !tbaa !73
  %143 = fdiv double 1.000000e+00, %142
  %144 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %145 = getelementptr inbounds %class.InputParameter, ptr %144, i32 0, i32 86
  store double %143, ptr %145, align 8, !tbaa !75
  %146 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 10280) #10
          to label %147 unwind label %663

147:                                              ; preds = %45
  store i1 true, ptr %18, align 1
  %148 = getelementptr inbounds %class.McPATComponent, ptr %31, i32 0, i32 2
  %149 = load ptr, ptr %148, align 8, !tbaa !76
  %150 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %151 unwind label %667

151:                                              ; preds = %147
  %152 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %153 = getelementptr inbounds %class.MCParameters, ptr %152, i32 0, i32 0
  %154 = load double, ptr %153, align 8, !tbaa !73
  invoke void @_ZN10CacheArrayC1EP7XMLNodePK14InputParameterNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tydb9Core_typeb(ptr noundef nonnull align 8 dereferenceable(10280) %146, ptr noundef %149, ptr noundef %150, ptr noundef %16, i32 noundef 1, double noundef %154, i1 noundef zeroext true, i32 noundef 1, i1 noundef zeroext true)
          to label %155 unwind label %671

155:                                              ; preds = %151
  store i1 false, ptr %18, align 1
  %156 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 1
  store ptr %146, ptr %156, align 8, !tbaa !11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #9
  %157 = getelementptr inbounds %class.McPATComponent, ptr %31, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #9
  %158 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 1
  %159 = load ptr, ptr %158, align 8, !tbaa !11
  store ptr %159, ptr %19, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIP14McPATComponentSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %157, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %160 unwind label %679

160:                                              ; preds = %155
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #9
  %161 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 1
  %162 = load ptr, ptr %161, align 8, !tbaa !11
  %163 = getelementptr inbounds %class.McPATComponent, ptr %162, i32 0, i32 8
  invoke void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %163)
          to label %164 unwind label %663

164:                                              ; preds = %160
  %165 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 1
  %166 = load ptr, ptr %165, align 8, !tbaa !11
  %167 = getelementptr inbounds %class.CacheArray, ptr %166, i32 0, i32 1
  %168 = getelementptr inbounds %class.InputParameter, ptr %167, i32 0, i32 18
  %169 = load i32, ptr %168, align 8, !tbaa !77
  %170 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 1
  %171 = load ptr, ptr %170, align 8, !tbaa !11
  %172 = getelementptr inbounds %class.CacheArray, ptr %171, i32 0, i32 1
  %173 = getelementptr inbounds %class.InputParameter, ptr %172, i32 0, i32 16
  %174 = load i32, ptr %173, align 8, !tbaa !83
  %175 = add i32 %169, %174
  %176 = uitofp i32 %175 to double
  %177 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 1
  %178 = load ptr, ptr %177, align 8, !tbaa !11
  %179 = getelementptr inbounds %class.McPATComponent, ptr %178, i32 0, i32 8
  %180 = getelementptr inbounds %class.statsDef, ptr %179, i32 0, i32 0
  %181 = getelementptr inbounds %class.statsComponents, ptr %180, i32 0, i32 0
  store double %176, ptr %181, align 8, !tbaa !84
  %182 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 1
  %183 = load ptr, ptr %182, align 8, !tbaa !11
  %184 = getelementptr inbounds %class.CacheArray, ptr %183, i32 0, i32 1
  %185 = getelementptr inbounds %class.InputParameter, ptr %184, i32 0, i32 18
  %186 = load i32, ptr %185, align 8, !tbaa !77
  %187 = uitofp i32 %186 to double
  %188 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 1
  %189 = load ptr, ptr %188, align 8, !tbaa !11
  %190 = getelementptr inbounds %class.McPATComponent, ptr %189, i32 0, i32 8
  %191 = getelementptr inbounds %class.statsDef, ptr %190, i32 0, i32 1
  %192 = getelementptr inbounds %class.statsComponents, ptr %191, i32 0, i32 0
  store double %187, ptr %192, align 8, !tbaa !85
  %193 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 1
  %194 = load ptr, ptr %193, align 8, !tbaa !11
  %195 = getelementptr inbounds %class.CacheArray, ptr %194, i32 0, i32 1
  %196 = getelementptr inbounds %class.InputParameter, ptr %195, i32 0, i32 16
  %197 = load i32, ptr %196, align 8, !tbaa !83
  %198 = uitofp i32 %197 to double
  %199 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 1
  %200 = load ptr, ptr %199, align 8, !tbaa !11
  %201 = getelementptr inbounds %class.McPATComponent, ptr %200, i32 0, i32 8
  %202 = getelementptr inbounds %class.statsDef, ptr %201, i32 0, i32 2
  %203 = getelementptr inbounds %class.statsComponents, ptr %202, i32 0, i32 0
  store double %198, ptr %203, align 8, !tbaa !86
  %204 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 1
  %205 = load ptr, ptr %204, align 8, !tbaa !11
  %206 = getelementptr inbounds %class.McPATComponent, ptr %205, i32 0, i32 9
  invoke void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %206)
          to label %207 unwind label %663

207:                                              ; preds = %164
  %208 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 7
  %209 = getelementptr inbounds %class.MCStatistics, ptr %208, i32 0, i32 2
  %210 = load double, ptr %209, align 8, !tbaa !87
  %211 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %212 = getelementptr inbounds %class.MCParameters, ptr %211, i32 0, i32 4
  %213 = load i32, ptr %212, align 4, !tbaa !88
  %214 = sitofp i32 %213 to double
  %215 = fmul double %210, %214
  %216 = fmul double %215, 8.000000e+00
  %217 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %218 = getelementptr inbounds %class.MCParameters, ptr %217, i32 0, i32 5
  %219 = load i32, ptr %218, align 8, !tbaa !89
  %220 = sitofp i32 %219 to double
  %221 = fdiv double %216, %220
  %222 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %223 = getelementptr inbounds %class.MCParameters, ptr %222, i32 0, i32 5
  %224 = load i32, ptr %223, align 8, !tbaa !89
  %225 = sitofp i32 %224 to double
  %226 = fmul double %221, %225
  %227 = fdiv double %226, 7.200000e+01
  %228 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 1
  %229 = load ptr, ptr %228, align 8, !tbaa !11
  %230 = getelementptr inbounds %class.McPATComponent, ptr %229, i32 0, i32 9
  %231 = getelementptr inbounds %class.statsDef, ptr %230, i32 0, i32 0
  %232 = getelementptr inbounds %class.statsComponents, ptr %231, i32 0, i32 0
  store double %227, ptr %232, align 8, !tbaa !90
  %233 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 7
  %234 = getelementptr inbounds %class.MCStatistics, ptr %233, i32 0, i32 3
  %235 = load double, ptr %234, align 8, !tbaa !91
  %236 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %237 = getelementptr inbounds %class.MCParameters, ptr %236, i32 0, i32 4
  %238 = load i32, ptr %237, align 4, !tbaa !88
  %239 = sitofp i32 %238 to double
  %240 = fmul double %235, %239
  %241 = fmul double %240, 8.000000e+00
  %242 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %243 = getelementptr inbounds %class.MCParameters, ptr %242, i32 0, i32 5
  %244 = load i32, ptr %243, align 8, !tbaa !89
  %245 = sitofp i32 %244 to double
  %246 = fdiv double %241, %245
  %247 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %248 = getelementptr inbounds %class.MCParameters, ptr %247, i32 0, i32 5
  %249 = load i32, ptr %248, align 8, !tbaa !89
  %250 = sitofp i32 %249 to double
  %251 = fmul double %246, %250
  %252 = fdiv double %251, 7.200000e+01
  %253 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 1
  %254 = load ptr, ptr %253, align 8, !tbaa !11
  %255 = getelementptr inbounds %class.McPATComponent, ptr %254, i32 0, i32 9
  %256 = getelementptr inbounds %class.statsDef, ptr %255, i32 0, i32 1
  %257 = getelementptr inbounds %class.statsComponents, ptr %256, i32 0, i32 0
  store double %252, ptr %257, align 8, !tbaa !92
  %258 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 1
  %259 = load ptr, ptr %258, align 8, !tbaa !11
  %260 = getelementptr inbounds %class.McPATComponent, ptr %259, i32 0, i32 9
  %261 = getelementptr inbounds %class.statsDef, ptr %260, i32 0, i32 0
  %262 = getelementptr inbounds %class.statsComponents, ptr %261, i32 0, i32 0
  %263 = load double, ptr %262, align 8, !tbaa !90
  %264 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 1
  %265 = load ptr, ptr %264, align 8, !tbaa !11
  %266 = getelementptr inbounds %class.McPATComponent, ptr %265, i32 0, i32 9
  %267 = getelementptr inbounds %class.statsDef, ptr %266, i32 0, i32 1
  %268 = getelementptr inbounds %class.statsComponents, ptr %267, i32 0, i32 0
  %269 = load double, ptr %268, align 8, !tbaa !92
  %270 = fadd double %263, %269
  %271 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 1
  %272 = load ptr, ptr %271, align 8, !tbaa !11
  %273 = getelementptr inbounds %class.McPATComponent, ptr %272, i32 0, i32 9
  %274 = getelementptr inbounds %class.statsDef, ptr %273, i32 0, i32 2
  %275 = getelementptr inbounds %class.statsComponents, ptr %274, i32 0, i32 0
  store double %270, ptr %275, align 8, !tbaa !93
  %276 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %277 = getelementptr inbounds %class.MCParameters, ptr %276, i32 0, i32 5
  %278 = load i32, ptr %277, align 8, !tbaa !89
  %279 = sitofp i32 %278 to double
  %280 = fdiv double %279, 8.000000e+00
  %281 = call double @llvm.ceil.f64(double %280)
  %282 = fptosi double %281 to i32
  store i32 %282, ptr %12, align 4, !tbaa !40
  %283 = load i32, ptr %12, align 4, !tbaa !40
  %284 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %285 = getelementptr inbounds %class.MCParameters, ptr %284, i32 0, i32 9
  %286 = load i32, ptr %285, align 8, !tbaa !94
  %287 = mul nsw i32 %283, %286
  %288 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %289 = getelementptr inbounds %class.InputParameter, ptr %288, i32 0, i32 0
  store i32 %287, ptr %289, align 8, !tbaa !50
  %290 = load i32, ptr %12, align 4, !tbaa !40
  %291 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %292 = getelementptr inbounds %class.InputParameter, ptr %291, i32 0, i32 1
  store i32 %290, ptr %292, align 4, !tbaa !51
  %293 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %294 = getelementptr inbounds %class.MCParameters, ptr %293, i32 0, i32 19
  %295 = load i32, ptr %294, align 4, !tbaa !95
  %296 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %297 = getelementptr inbounds %class.InputParameter, ptr %296, i32 0, i32 2
  store i32 %295, ptr %297, align 8, !tbaa !53
  %298 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %299 = getelementptr inbounds %class.MCParameters, ptr %298, i32 0, i32 20
  %300 = load i32, ptr %299, align 8, !tbaa !96
  %301 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %302 = getelementptr inbounds %class.InputParameter, ptr %301, i32 0, i32 3
  store i32 %300, ptr %302, align 4, !tbaa !55
  %303 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %304 = getelementptr inbounds %class.InputParameter, ptr %303, i32 0, i32 1
  %305 = load i32, ptr %304, align 4, !tbaa !51
  %306 = uitofp i32 %305 to double
  %307 = fmul double %306, 8.000000e+00
  %308 = fptoui double %307 to i32
  %309 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %310 = getelementptr inbounds %class.InputParameter, ptr %309, i32 0, i32 4
  store i32 %308, ptr %310, align 8, !tbaa !56
  %311 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %312 = getelementptr inbounds %class.MCParameters, ptr %311, i32 0, i32 21
  %313 = load i32, ptr %312, align 4, !tbaa !97
  %314 = icmp sgt i32 %313, 0
  %315 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %316 = getelementptr inbounds %class.InputParameter, ptr %315, i32 0, i32 5
  %317 = zext i1 %314 to i8
  store i8 %317, ptr %316, align 4, !tbaa !57
  %318 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %319 = getelementptr inbounds %class.MCParameters, ptr %318, i32 0, i32 21
  %320 = load i32, ptr %319, align 4, !tbaa !97
  %321 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %322 = getelementptr inbounds %class.InputParameter, ptr %321, i32 0, i32 6
  store i32 %320, ptr %322, align 8, !tbaa !58
  %323 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %324 = getelementptr inbounds %class.InputParameter, ptr %323, i32 0, i32 7
  store i32 1, ptr %324, align 4, !tbaa !59
  %325 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %326 = getelementptr inbounds %class.InputParameter, ptr %325, i32 0, i32 8
  store i32 0, ptr %326, align 8, !tbaa !60
  %327 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %328 = getelementptr inbounds %class.InputParameter, ptr %327, i32 0, i32 9
  store i32 0, ptr %328, align 4, !tbaa !61
  %329 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %330 = getelementptr inbounds %class.InputParameter, ptr %329, i32 0, i32 10
  store i32 0, ptr %330, align 8, !tbaa !62
  %331 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %332 = getelementptr inbounds %class.InputParameter, ptr %331, i32 0, i32 11
  store i32 1, ptr %332, align 4, !tbaa !63
  %333 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %334 = getelementptr inbounds %class.InputParameter, ptr %333, i32 0, i32 14
  store i32 0, ptr %334, align 8, !tbaa !64
  %335 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %336 = getelementptr inbounds %class.MCParameters, ptr %335, i32 0, i32 3
  %337 = load i32, ptr %336, align 8, !tbaa !65
  %338 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %339 = getelementptr inbounds %class.InputParameter, ptr %338, i32 0, i32 15
  store i32 %337, ptr %339, align 4, !tbaa !66
  %340 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %341 = getelementptr inbounds %class.InputParameter, ptr %340, i32 0, i32 15
  %342 = load i32, ptr %341, align 4, !tbaa !66
  %343 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %344 = getelementptr inbounds %class.InputParameter, ptr %343, i32 0, i32 16
  store i32 %342, ptr %344, align 8, !tbaa !67
  %345 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %346 = getelementptr inbounds %class.InputParameter, ptr %345, i32 0, i32 17
  store i32 0, ptr %346, align 4, !tbaa !68
  %347 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %348 = getelementptr inbounds %class.InputParameter, ptr %347, i32 0, i32 18
  store i32 0, ptr %348, align 8, !tbaa !69
  %349 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %350 = getelementptr inbounds %class.InputParameter, ptr %349, i32 0, i32 20
  store i8 0, ptr %350, align 1, !tbaa !70
  %351 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %352 = getelementptr inbounds %class.InputParameter, ptr %351, i32 0, i32 22
  store i8 0, ptr %352, align 1, !tbaa !71
  %353 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %354 = getelementptr inbounds %class.InputParameter, ptr %353, i32 0, i32 21
  store i8 1, ptr %354, align 2, !tbaa !72
  %355 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %356 = getelementptr inbounds %class.MCParameters, ptr %355, i32 0, i32 0
  %357 = load double, ptr %356, align 8, !tbaa !73
  %358 = fdiv double 1.000000e+00, %357
  %359 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %360 = getelementptr inbounds %class.InputParameter, ptr %359, i32 0, i32 85
  store double %358, ptr %360, align 8, !tbaa !74
  %361 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %362 = getelementptr inbounds %class.MCParameters, ptr %361, i32 0, i32 0
  %363 = load double, ptr %362, align 8, !tbaa !73
  %364 = fdiv double 1.000000e+00, %363
  %365 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %366 = getelementptr inbounds %class.InputParameter, ptr %365, i32 0, i32 86
  store double %364, ptr %366, align 8, !tbaa !75
  %367 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 10280) #10
          to label %368 unwind label %663

368:                                              ; preds = %207
  store i1 true, ptr %22, align 1
  %369 = getelementptr inbounds %class.McPATComponent, ptr %31, i32 0, i32 2
  %370 = load ptr, ptr %369, align 8, !tbaa !76
  %371 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %372 unwind label %683

372:                                              ; preds = %368
  %373 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %374 = getelementptr inbounds %class.MCParameters, ptr %373, i32 0, i32 0
  %375 = load double, ptr %374, align 8, !tbaa !73
  invoke void @_ZN10CacheArrayC1EP7XMLNodePK14InputParameterNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tydb9Core_typeb(ptr noundef nonnull align 8 dereferenceable(10280) %367, ptr noundef %370, ptr noundef %371, ptr noundef %20, i32 noundef 1, double noundef %375, i1 noundef zeroext true, i32 noundef 1, i1 noundef zeroext true)
          to label %376 unwind label %687

376:                                              ; preds = %372
  store i1 false, ptr %22, align 1
  %377 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 2
  store ptr %367, ptr %377, align 8, !tbaa !36
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #9
  %378 = getelementptr inbounds %class.McPATComponent, ptr %31, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #9
  %379 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 2
  %380 = load ptr, ptr %379, align 8, !tbaa !36
  store ptr %380, ptr %23, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIP14McPATComponentSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %378, ptr noundef nonnull align 8 dereferenceable(8) %23)
          to label %381 unwind label %695

381:                                              ; preds = %376
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #9
  %382 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 2
  %383 = load ptr, ptr %382, align 8, !tbaa !36
  %384 = getelementptr inbounds %class.McPATComponent, ptr %383, i32 0, i32 8
  invoke void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %384)
          to label %385 unwind label %663

385:                                              ; preds = %381
  %386 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 2
  %387 = load ptr, ptr %386, align 8, !tbaa !36
  %388 = getelementptr inbounds %class.CacheArray, ptr %387, i32 0, i32 1
  %389 = getelementptr inbounds %class.InputParameter, ptr %388, i32 0, i32 15
  %390 = load i32, ptr %389, align 4, !tbaa !98
  %391 = uitofp i32 %390 to double
  %392 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 7
  %393 = getelementptr inbounds %class.MCStatistics, ptr %392, i32 0, i32 0
  %394 = load double, ptr %393, align 8, !tbaa !99
  %395 = fmul double %391, %394
  %396 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 2
  %397 = load ptr, ptr %396, align 8, !tbaa !36
  %398 = getelementptr inbounds %class.McPATComponent, ptr %397, i32 0, i32 8
  %399 = getelementptr inbounds %class.statsDef, ptr %398, i32 0, i32 0
  %400 = getelementptr inbounds %class.statsComponents, ptr %399, i32 0, i32 0
  store double %395, ptr %400, align 8, !tbaa !84
  %401 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 2
  %402 = load ptr, ptr %401, align 8, !tbaa !36
  %403 = getelementptr inbounds %class.CacheArray, ptr %402, i32 0, i32 1
  %404 = getelementptr inbounds %class.InputParameter, ptr %403, i32 0, i32 16
  %405 = load i32, ptr %404, align 8, !tbaa !83
  %406 = uitofp i32 %405 to double
  %407 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 7
  %408 = getelementptr inbounds %class.MCStatistics, ptr %407, i32 0, i32 0
  %409 = load double, ptr %408, align 8, !tbaa !99
  %410 = fmul double %406, %409
  %411 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 2
  %412 = load ptr, ptr %411, align 8, !tbaa !36
  %413 = getelementptr inbounds %class.McPATComponent, ptr %412, i32 0, i32 8
  %414 = getelementptr inbounds %class.statsDef, ptr %413, i32 0, i32 1
  %415 = getelementptr inbounds %class.statsComponents, ptr %414, i32 0, i32 0
  store double %410, ptr %415, align 8, !tbaa !85
  %416 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 2
  %417 = load ptr, ptr %416, align 8, !tbaa !36
  %418 = getelementptr inbounds %class.McPATComponent, ptr %417, i32 0, i32 9
  invoke void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %418)
          to label %419 unwind label %663

419:                                              ; preds = %385
  %420 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 7
  %421 = getelementptr inbounds %class.MCStatistics, ptr %420, i32 0, i32 2
  %422 = load double, ptr %421, align 8, !tbaa !87
  %423 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %424 = getelementptr inbounds %class.MCParameters, ptr %423, i32 0, i32 4
  %425 = load i32, ptr %424, align 4, !tbaa !88
  %426 = sitofp i32 %425 to double
  %427 = fmul double %422, %426
  %428 = fmul double %427, 8.000000e+00
  %429 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %430 = getelementptr inbounds %class.MCParameters, ptr %429, i32 0, i32 5
  %431 = load i32, ptr %430, align 8, !tbaa !89
  %432 = sitofp i32 %431 to double
  %433 = fdiv double %428, %432
  %434 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 2
  %435 = load ptr, ptr %434, align 8, !tbaa !36
  %436 = getelementptr inbounds %class.McPATComponent, ptr %435, i32 0, i32 9
  %437 = getelementptr inbounds %class.statsDef, ptr %436, i32 0, i32 0
  %438 = getelementptr inbounds %class.statsComponents, ptr %437, i32 0, i32 0
  store double %433, ptr %438, align 8, !tbaa !90
  %439 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 7
  %440 = getelementptr inbounds %class.MCStatistics, ptr %439, i32 0, i32 2
  %441 = load double, ptr %440, align 8, !tbaa !87
  %442 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %443 = getelementptr inbounds %class.MCParameters, ptr %442, i32 0, i32 4
  %444 = load i32, ptr %443, align 4, !tbaa !88
  %445 = sitofp i32 %444 to double
  %446 = fmul double %441, %445
  %447 = fmul double %446, 8.000000e+00
  %448 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %449 = getelementptr inbounds %class.MCParameters, ptr %448, i32 0, i32 5
  %450 = load i32, ptr %449, align 8, !tbaa !89
  %451 = sitofp i32 %450 to double
  %452 = fdiv double %447, %451
  %453 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 2
  %454 = load ptr, ptr %453, align 8, !tbaa !36
  %455 = getelementptr inbounds %class.McPATComponent, ptr %454, i32 0, i32 9
  %456 = getelementptr inbounds %class.statsDef, ptr %455, i32 0, i32 1
  %457 = getelementptr inbounds %class.statsComponents, ptr %456, i32 0, i32 0
  store double %452, ptr %457, align 8, !tbaa !92
  %458 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %459 = getelementptr inbounds %class.MCParameters, ptr %458, i32 0, i32 5
  %460 = load i32, ptr %459, align 8, !tbaa !89
  %461 = sitofp i32 %460 to double
  %462 = fdiv double %461, 8.000000e+00
  %463 = call double @llvm.ceil.f64(double %462)
  %464 = fptosi double %463 to i32
  store i32 %464, ptr %12, align 4, !tbaa !40
  %465 = load i32, ptr %12, align 4, !tbaa !40
  %466 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %467 = getelementptr inbounds %class.MCParameters, ptr %466, i32 0, i32 9
  %468 = load i32, ptr %467, align 8, !tbaa !94
  %469 = mul nsw i32 %465, %468
  %470 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %471 = getelementptr inbounds %class.InputParameter, ptr %470, i32 0, i32 0
  store i32 %469, ptr %471, align 8, !tbaa !50
  %472 = load i32, ptr %12, align 4, !tbaa !40
  %473 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %474 = getelementptr inbounds %class.InputParameter, ptr %473, i32 0, i32 1
  store i32 %472, ptr %474, align 4, !tbaa !51
  %475 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %476 = getelementptr inbounds %class.MCParameters, ptr %475, i32 0, i32 22
  %477 = load i32, ptr %476, align 8, !tbaa !100
  %478 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %479 = getelementptr inbounds %class.InputParameter, ptr %478, i32 0, i32 2
  store i32 %477, ptr %479, align 8, !tbaa !53
  %480 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %481 = getelementptr inbounds %class.MCParameters, ptr %480, i32 0, i32 23
  %482 = load i32, ptr %481, align 4, !tbaa !101
  %483 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %484 = getelementptr inbounds %class.InputParameter, ptr %483, i32 0, i32 3
  store i32 %482, ptr %484, align 4, !tbaa !55
  %485 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %486 = getelementptr inbounds %class.InputParameter, ptr %485, i32 0, i32 1
  %487 = load i32, ptr %486, align 4, !tbaa !51
  %488 = uitofp i32 %487 to double
  %489 = fmul double %488, 8.000000e+00
  %490 = fptoui double %489 to i32
  %491 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %492 = getelementptr inbounds %class.InputParameter, ptr %491, i32 0, i32 4
  store i32 %490, ptr %492, align 8, !tbaa !56
  %493 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %494 = getelementptr inbounds %class.MCParameters, ptr %493, i32 0, i32 24
  %495 = load i32, ptr %494, align 8, !tbaa !102
  %496 = icmp sgt i32 %495, 0
  %497 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %498 = getelementptr inbounds %class.InputParameter, ptr %497, i32 0, i32 5
  %499 = zext i1 %496 to i8
  store i8 %499, ptr %498, align 4, !tbaa !57
  %500 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %501 = getelementptr inbounds %class.MCParameters, ptr %500, i32 0, i32 24
  %502 = load i32, ptr %501, align 8, !tbaa !102
  %503 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %504 = getelementptr inbounds %class.InputParameter, ptr %503, i32 0, i32 6
  store i32 %502, ptr %504, align 8, !tbaa !58
  %505 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %506 = getelementptr inbounds %class.InputParameter, ptr %505, i32 0, i32 7
  store i32 0, ptr %506, align 4, !tbaa !59
  %507 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %508 = getelementptr inbounds %class.InputParameter, ptr %507, i32 0, i32 8
  store i32 0, ptr %508, align 8, !tbaa !60
  %509 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %510 = getelementptr inbounds %class.InputParameter, ptr %509, i32 0, i32 9
  store i32 0, ptr %510, align 4, !tbaa !61
  %511 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %512 = getelementptr inbounds %class.InputParameter, ptr %511, i32 0, i32 10
  store i32 0, ptr %512, align 8, !tbaa !62
  %513 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %514 = getelementptr inbounds %class.InputParameter, ptr %513, i32 0, i32 11
  store i32 1, ptr %514, align 4, !tbaa !63
  %515 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %516 = getelementptr inbounds %class.InputParameter, ptr %515, i32 0, i32 14
  store i32 0, ptr %516, align 8, !tbaa !64
  %517 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %518 = getelementptr inbounds %class.MCParameters, ptr %517, i32 0, i32 3
  %519 = load i32, ptr %518, align 8, !tbaa !65
  %520 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %521 = getelementptr inbounds %class.InputParameter, ptr %520, i32 0, i32 15
  store i32 %519, ptr %521, align 4, !tbaa !66
  %522 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %523 = getelementptr inbounds %class.InputParameter, ptr %522, i32 0, i32 15
  %524 = load i32, ptr %523, align 4, !tbaa !66
  %525 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %526 = getelementptr inbounds %class.InputParameter, ptr %525, i32 0, i32 16
  store i32 %524, ptr %526, align 8, !tbaa !67
  %527 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %528 = getelementptr inbounds %class.InputParameter, ptr %527, i32 0, i32 17
  store i32 0, ptr %528, align 4, !tbaa !68
  %529 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %530 = getelementptr inbounds %class.InputParameter, ptr %529, i32 0, i32 18
  store i32 0, ptr %530, align 8, !tbaa !69
  %531 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %532 = getelementptr inbounds %class.InputParameter, ptr %531, i32 0, i32 20
  store i8 0, ptr %532, align 1, !tbaa !70
  %533 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %534 = getelementptr inbounds %class.InputParameter, ptr %533, i32 0, i32 22
  store i8 0, ptr %534, align 1, !tbaa !71
  %535 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %536 = getelementptr inbounds %class.InputParameter, ptr %535, i32 0, i32 21
  store i8 1, ptr %536, align 2, !tbaa !72
  %537 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %538 = getelementptr inbounds %class.MCParameters, ptr %537, i32 0, i32 0
  %539 = load double, ptr %538, align 8, !tbaa !73
  %540 = fdiv double 1.000000e+00, %539
  %541 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %542 = getelementptr inbounds %class.InputParameter, ptr %541, i32 0, i32 85
  store double %540, ptr %542, align 8, !tbaa !74
  %543 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %544 = getelementptr inbounds %class.MCParameters, ptr %543, i32 0, i32 0
  %545 = load double, ptr %544, align 8, !tbaa !73
  %546 = fdiv double 1.000000e+00, %545
  %547 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  %548 = getelementptr inbounds %class.InputParameter, ptr %547, i32 0, i32 86
  store double %546, ptr %548, align 8, !tbaa !75
  %549 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 10280) #10
          to label %550 unwind label %663

550:                                              ; preds = %419
  store i1 true, ptr %26, align 1
  %551 = getelementptr inbounds %class.McPATComponent, ptr %31, i32 0, i32 2
  %552 = load ptr, ptr %551, align 8, !tbaa !76
  %553 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %554 unwind label %699

554:                                              ; preds = %550
  %555 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %556 = getelementptr inbounds %class.MCParameters, ptr %555, i32 0, i32 0
  %557 = load double, ptr %556, align 8, !tbaa !73
  invoke void @_ZN10CacheArrayC1EP7XMLNodePK14InputParameterNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tydb9Core_typeb(ptr noundef nonnull align 8 dereferenceable(10280) %549, ptr noundef %552, ptr noundef %553, ptr noundef %24, i32 noundef 1, double noundef %557, i1 noundef zeroext true, i32 noundef 1, i1 noundef zeroext true)
          to label %558 unwind label %703

558:                                              ; preds = %554
  store i1 false, ptr %26, align 1
  %559 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 3
  store ptr %549, ptr %559, align 8, !tbaa !37
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #9
  %560 = getelementptr inbounds %class.McPATComponent, ptr %31, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #9
  %561 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 3
  %562 = load ptr, ptr %561, align 8, !tbaa !37
  store ptr %562, ptr %27, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIP14McPATComponentSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %560, ptr noundef nonnull align 8 dereferenceable(8) %27)
          to label %563 unwind label %711

563:                                              ; preds = %558
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #9
  %564 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 3
  %565 = load ptr, ptr %564, align 8, !tbaa !37
  %566 = getelementptr inbounds %class.McPATComponent, ptr %565, i32 0, i32 8
  invoke void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %566)
          to label %567 unwind label %663

567:                                              ; preds = %563
  %568 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 3
  %569 = load ptr, ptr %568, align 8, !tbaa !37
  %570 = getelementptr inbounds %class.CacheArray, ptr %569, i32 0, i32 1
  %571 = getelementptr inbounds %class.InputParameter, ptr %570, i32 0, i32 15
  %572 = load i32, ptr %571, align 4, !tbaa !98
  %573 = uitofp i32 %572 to double
  %574 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 7
  %575 = getelementptr inbounds %class.MCStatistics, ptr %574, i32 0, i32 0
  %576 = load double, ptr %575, align 8, !tbaa !99
  %577 = fmul double %573, %576
  %578 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 3
  %579 = load ptr, ptr %578, align 8, !tbaa !37
  %580 = getelementptr inbounds %class.McPATComponent, ptr %579, i32 0, i32 8
  %581 = getelementptr inbounds %class.statsDef, ptr %580, i32 0, i32 0
  %582 = getelementptr inbounds %class.statsComponents, ptr %581, i32 0, i32 0
  store double %577, ptr %582, align 8, !tbaa !84
  %583 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 3
  %584 = load ptr, ptr %583, align 8, !tbaa !37
  %585 = getelementptr inbounds %class.CacheArray, ptr %584, i32 0, i32 1
  %586 = getelementptr inbounds %class.InputParameter, ptr %585, i32 0, i32 16
  %587 = load i32, ptr %586, align 8, !tbaa !83
  %588 = uitofp i32 %587 to double
  %589 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 7
  %590 = getelementptr inbounds %class.MCStatistics, ptr %589, i32 0, i32 0
  %591 = load double, ptr %590, align 8, !tbaa !99
  %592 = fmul double %588, %591
  %593 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 3
  %594 = load ptr, ptr %593, align 8, !tbaa !37
  %595 = getelementptr inbounds %class.McPATComponent, ptr %594, i32 0, i32 8
  %596 = getelementptr inbounds %class.statsDef, ptr %595, i32 0, i32 1
  %597 = getelementptr inbounds %class.statsComponents, ptr %596, i32 0, i32 0
  store double %592, ptr %597, align 8, !tbaa !85
  %598 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 3
  %599 = load ptr, ptr %598, align 8, !tbaa !37
  %600 = getelementptr inbounds %class.McPATComponent, ptr %599, i32 0, i32 9
  invoke void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %600)
          to label %601 unwind label %663

601:                                              ; preds = %567
  %602 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 7
  %603 = getelementptr inbounds %class.MCStatistics, ptr %602, i32 0, i32 2
  %604 = load double, ptr %603, align 8, !tbaa !87
  %605 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %606 = getelementptr inbounds %class.MCParameters, ptr %605, i32 0, i32 4
  %607 = load i32, ptr %606, align 4, !tbaa !88
  %608 = sitofp i32 %607 to double
  %609 = fmul double %604, %608
  %610 = fmul double %609, 8.000000e+00
  %611 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %612 = getelementptr inbounds %class.MCParameters, ptr %611, i32 0, i32 5
  %613 = load i32, ptr %612, align 8, !tbaa !89
  %614 = sitofp i32 %613 to double
  %615 = fdiv double %610, %614
  %616 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 3
  %617 = load ptr, ptr %616, align 8, !tbaa !37
  %618 = getelementptr inbounds %class.McPATComponent, ptr %617, i32 0, i32 9
  %619 = getelementptr inbounds %class.statsDef, ptr %618, i32 0, i32 0
  %620 = getelementptr inbounds %class.statsComponents, ptr %619, i32 0, i32 0
  store double %615, ptr %620, align 8, !tbaa !90
  %621 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 7
  %622 = getelementptr inbounds %class.MCStatistics, ptr %621, i32 0, i32 3
  %623 = load double, ptr %622, align 8, !tbaa !91
  %624 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %625 = getelementptr inbounds %class.MCParameters, ptr %624, i32 0, i32 4
  %626 = load i32, ptr %625, align 4, !tbaa !88
  %627 = sitofp i32 %626 to double
  %628 = fmul double %623, %627
  %629 = fmul double %628, 8.000000e+00
  %630 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %631 = getelementptr inbounds %class.MCParameters, ptr %630, i32 0, i32 5
  %632 = load i32, ptr %631, align 8, !tbaa !89
  %633 = sitofp i32 %632 to double
  %634 = fdiv double %629, %633
  %635 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 3
  %636 = load ptr, ptr %635, align 8, !tbaa !37
  %637 = getelementptr inbounds %class.McPATComponent, ptr %636, i32 0, i32 9
  %638 = getelementptr inbounds %class.statsDef, ptr %637, i32 0, i32 1
  %639 = getelementptr inbounds %class.statsComponents, ptr %638, i32 0, i32 0
  store double %634, ptr %639, align 8, !tbaa !92
  %640 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 9960) #10
          to label %641 unwind label %663

641:                                              ; preds = %601
  store i1 true, ptr %30, align 1
  %642 = getelementptr inbounds %class.McPATComponent, ptr %31, i32 0, i32 2
  %643 = load ptr, ptr %642, align 8, !tbaa !76
  %644 = load i8, ptr %13, align 1, !tbaa !41, !range !103, !noundef !104
  %645 = trunc i8 %644 to i1
  %646 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %647 = getelementptr inbounds %class.MCParameters, ptr %646, i32 0, i32 8
  %648 = load i32, ptr %647, align 4, !tbaa !49
  %649 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 5
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %650 unwind label %715

650:                                              ; preds = %641
  %651 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 7
  %652 = getelementptr inbounds %class.MCStatistics, ptr %651, i32 0, i32 2
  %653 = load double, ptr %652, align 8, !tbaa !87
  %654 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 7
  %655 = getelementptr inbounds %class.MCStatistics, ptr %654, i32 0, i32 3
  %656 = load double, ptr %655, align 8, !tbaa !91
  %657 = fadd double %653, %656
  %658 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 6
  %659 = getelementptr inbounds %class.MCParameters, ptr %658, i32 0, i32 0
  %660 = load double, ptr %659, align 8, !tbaa !73
  invoke void @_ZN15selection_logicC1EP7XMLNodebiiPK14InputParameterNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdd9Device_ty9Core_type(ptr noundef nonnull align 8 dereferenceable(9956) %640, ptr noundef %643, i1 noundef zeroext %645, i32 noundef %648, i32 noundef 1, ptr noundef %649, ptr noundef %28, double noundef %657, double noundef %660, i32 noundef 1, i32 noundef 1)
          to label %661 unwind label %719

661:                                              ; preds = %650
  store i1 false, ptr %30, align 1
  %662 = getelementptr inbounds %class.MCFrontEnd, ptr %31, i32 0, i32 4
  store ptr %640, ptr %662, align 8, !tbaa !38
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #9
  ret void

663:                                              ; preds = %601, %567, %563, %419, %385, %381, %207, %164, %160, %45, %5
  %664 = landingpad { ptr, i32 }
          cleanup
  %665 = extractvalue { ptr, i32 } %664, 0
  store ptr %665, ptr %14, align 8
  %666 = extractvalue { ptr, i32 } %664, 1
  store i32 %666, ptr %15, align 4
  br label %727

667:                                              ; preds = %147
  %668 = landingpad { ptr, i32 }
          cleanup
  %669 = extractvalue { ptr, i32 } %668, 0
  store ptr %669, ptr %14, align 8
  %670 = extractvalue { ptr, i32 } %668, 1
  store i32 %670, ptr %15, align 4
  br label %675

671:                                              ; preds = %151
  %672 = landingpad { ptr, i32 }
          cleanup
  %673 = extractvalue { ptr, i32 } %672, 0
  store ptr %673, ptr %14, align 8
  %674 = extractvalue { ptr, i32 } %672, 1
  store i32 %674, ptr %15, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  br label %675

675:                                              ; preds = %671, %667
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #9
  %676 = load i1, ptr %18, align 1
  br i1 %676, label %677, label %678

677:                                              ; preds = %675
  call void @_ZdlPvm(ptr noundef %146, i64 noundef 10280) #11
  br label %678

678:                                              ; preds = %677, %675
  br label %727

679:                                              ; preds = %155
  %680 = landingpad { ptr, i32 }
          cleanup
  %681 = extractvalue { ptr, i32 } %680, 0
  store ptr %681, ptr %14, align 8
  %682 = extractvalue { ptr, i32 } %680, 1
  store i32 %682, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #9
  br label %727

683:                                              ; preds = %368
  %684 = landingpad { ptr, i32 }
          cleanup
  %685 = extractvalue { ptr, i32 } %684, 0
  store ptr %685, ptr %14, align 8
  %686 = extractvalue { ptr, i32 } %684, 1
  store i32 %686, ptr %15, align 4
  br label %691

687:                                              ; preds = %372
  %688 = landingpad { ptr, i32 }
          cleanup
  %689 = extractvalue { ptr, i32 } %688, 0
  store ptr %689, ptr %14, align 8
  %690 = extractvalue { ptr, i32 } %688, 1
  store i32 %690, ptr %15, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  br label %691

691:                                              ; preds = %687, %683
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #9
  %692 = load i1, ptr %22, align 1
  br i1 %692, label %693, label %694

693:                                              ; preds = %691
  call void @_ZdlPvm(ptr noundef %367, i64 noundef 10280) #11
  br label %694

694:                                              ; preds = %693, %691
  br label %727

695:                                              ; preds = %376
  %696 = landingpad { ptr, i32 }
          cleanup
  %697 = extractvalue { ptr, i32 } %696, 0
  store ptr %697, ptr %14, align 8
  %698 = extractvalue { ptr, i32 } %696, 1
  store i32 %698, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #9
  br label %727

699:                                              ; preds = %550
  %700 = landingpad { ptr, i32 }
          cleanup
  %701 = extractvalue { ptr, i32 } %700, 0
  store ptr %701, ptr %14, align 8
  %702 = extractvalue { ptr, i32 } %700, 1
  store i32 %702, ptr %15, align 4
  br label %707

703:                                              ; preds = %554
  %704 = landingpad { ptr, i32 }
          cleanup
  %705 = extractvalue { ptr, i32 } %704, 0
  store ptr %705, ptr %14, align 8
  %706 = extractvalue { ptr, i32 } %704, 1
  store i32 %706, ptr %15, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  br label %707

707:                                              ; preds = %703, %699
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #9
  %708 = load i1, ptr %26, align 1
  br i1 %708, label %709, label %710

709:                                              ; preds = %707
  call void @_ZdlPvm(ptr noundef %549, i64 noundef 10280) #11
  br label %710

710:                                              ; preds = %709, %707
  br label %727

711:                                              ; preds = %558
  %712 = landingpad { ptr, i32 }
          cleanup
  %713 = extractvalue { ptr, i32 } %712, 0
  store ptr %713, ptr %14, align 8
  %714 = extractvalue { ptr, i32 } %712, 1
  store i32 %714, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #9
  br label %727

715:                                              ; preds = %641
  %716 = landingpad { ptr, i32 }
          cleanup
  %717 = extractvalue { ptr, i32 } %716, 0
  store ptr %717, ptr %14, align 8
  %718 = extractvalue { ptr, i32 } %716, 1
  store i32 %718, ptr %15, align 4
  br label %723

719:                                              ; preds = %650
  %720 = landingpad { ptr, i32 }
          cleanup
  %721 = extractvalue { ptr, i32 } %720, 0
  store ptr %721, ptr %14, align 8
  %722 = extractvalue { ptr, i32 } %720, 1
  store i32 %722, ptr %15, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #9
  br label %723

723:                                              ; preds = %719, %715
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #9
  %724 = load i1, ptr %30, align 1
  br i1 %724, label %725, label %726

725:                                              ; preds = %723
  call void @_ZdlPvm(ptr noundef %640, i64 noundef 9960) #11
  br label %726

726:                                              ; preds = %725, %723
  br label %727

727:                                              ; preds = %726, %711, %710, %695, %694, %679, %678, %663
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #9
  call void @_ZN14McPATComponentD2Ev(ptr noundef nonnull align 8 dereferenceable(1352) %31) #9
  br label %728

728:                                              ; preds = %727
  %729 = load ptr, ptr %14, align 8
  %730 = load i32, ptr %15, align 4
  %731 = insertvalue { ptr, i32 } poison, ptr %729, 0
  %732 = insertvalue { ptr, i32 } %731, i32 %730, 1
  resume { ptr, i32 } %732
}

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

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) #6

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

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

declare void @_ZN10CacheArrayC1EP7XMLNodePK14InputParameterNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tydb9Core_typeb(ptr noundef nonnull align 8 dereferenceable(10280), ptr noundef, ptr noundef, ptr noundef, i32 noundef, double noundef, i1 noundef zeroext, i32 noundef, i1 noundef zeroext) unnamed_addr #0

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

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) #8

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

declare void @_ZN15selection_logicC1EP7XMLNodebiiPK14InputParameterNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdd9Device_ty9Core_type(ptr noundef nonnull align 8 dereferenceable(9956), ptr noundef, i1 noundef zeroext, i32 noundef, i32 noundef, ptr noundef, ptr noundef, double noundef, double noundef, i32 noundef, i32 noundef) unnamed_addr #0

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

attributes #0 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { 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 #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { nobuiltin allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { mustprogress nounwind 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 = { nobuiltin 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 = { builtin allocsize(0) }
attributes #11 = { builtin 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 = !{!"vtable pointer", !8, i64 0}
!11 = !{!12, !6, i64 1352}
!12 = !{!"_ZTS10MCFrontEnd", !13, i64 0, !6, i64 1352, !6, i64 1360, !6, i64 1368, !6, i64 1376, !19, i64 1384, !33, i64 1752, !35, i64 1864}
!13 = !{!"_ZTS14McPATComponent", !14, i64 8, !6, i64 288, !19, i64 296, !23, i64 664, !16, i64 696, !26, i64 704, !30, i64 728, !31, i64 776, !31, i64 944, !17, i64 1112, !17, i64 1232}
!14 = !{!"_ZTS9Component", !15, i64 0, !17, i64 24, !17, i64 144, !16, i64 264, !16, i64 272}
!15 = !{!"_ZTS4Area", !16, i64 0, !16, i64 8, !16, i64 16}
!16 = !{!"double", !7, i64 0}
!17 = !{!"_ZTS8powerDef", !18, i64 0, !18, i64 40, !18, i64 80}
!18 = !{!"_ZTS15powerComponents", !16, i64 0, !16, i64 8, !16, i64 16, !16, i64 24, !16, i64 32}
!19 = !{!"_ZTS14InputParameter", !20, i64 0, !20, i64 4, !20, i64 8, !20, i64 12, !20, i64 16, !21, i64 20, !20, i64 24, !20, i64 28, !20, i64 32, !20, i64 36, !20, i64 40, !20, i64 44, !16, i64 48, !16, i64 56, !20, i64 64, !20, i64 68, !20, i64 72, !20, i64 76, !20, i64 80, !21, i64 84, !21, i64 85, !21, i64 86, !21, i64 87, !21, i64 88, !20, i64 92, !20, i64 96, !20, i64 100, !20, i64 104, !20, i64 108, !20, i64 112, !20, i64 116, !20, i64 120, !20, i64 124, !20, i64 128, !20, i64 132, !20, i64 136, !20, i64 140, !20, i64 144, !20, i64 148, !22, i64 152, !20, i64 156, !21, i64 160, !20, i64 164, !20, i64 168, !20, i64 172, !20, i64 176, !20, i64 180, !20, i64 184, !20, i64 188, !21, i64 192, !20, i64 196, !20, i64 200, !20, i64 204, !20, i64 208, !20, i64 212, !20, i64 216, !20, i64 220, !20, i64 224, !20, i64 228, !20, i64 232, !20, i64 236, !20, i64 240, !20, i64 244, !20, i64 248, !20, i64 252, !20, i64 256, !20, i64 260, !20, i64 264, !20, i64 268, !20, i64 272, !20, i64 276, !20, i64 280, !20, i64 284, !20, i64 288, !20, i64 292, !20, i64 296, !21, i64 300, !20, i64 304, !20, i64 308, !20, i64 312, !21, i64 316, !21, i64 317, !20, i64 320, !20, i64 324, !21, i64 328, !16, i64 336, !16, i64 344, !21, i64 352, !20, i64 356, !20, i64 360, !21, i64 364}
!20 = !{!"int", !7, i64 0}
!21 = !{!"bool", !7, i64 0}
!22 = !{!"_ZTS9Wire_type", !7, i64 0}
!23 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !24, i64 0, !25, i64 8, !7, i64 16}
!24 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!25 = !{!"long", !7, i64 0}
!26 = !{!"_ZTSSt6vectorIP14McPATComponentSaIS1_EE", !27, i64 0}
!27 = !{!"_ZTSSt12_Vector_baseIP14McPATComponentSaIS1_EE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseIP14McPATComponentSaIS1_EE12_Vector_implE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseIP14McPATComponentSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!30 = !{!"_ZTS11McPATOutput", !16, i64 0, !16, i64 8, !16, i64 16, !16, i64 24, !16, i64 32, !16, i64 40}
!31 = !{!"_ZTS8statsDef", !32, i64 0, !32, i64 24, !32, i64 48, !32, i64 72, !32, i64 96, !32, i64 120, !32, i64 144}
!32 = !{!"_ZTS15statsComponents", !16, i64 0, !16, i64 8, !16, i64 16}
!33 = !{!"_ZTS12MCParameters", !16, i64 0, !34, i64 8, !16, i64 16, !20, i64 24, !20, i64 28, !20, i64 32, !20, i64 36, !20, i64 40, !20, i64 44, !20, i64 48, !20, i64 52, !20, i64 56, !20, i64 60, !21, i64 64, !21, i64 65, !20, i64 68, !20, i64 72, !20, i64 76, !20, i64 80, !20, i64 84, !20, i64 88, !20, i64 92, !20, i64 96, !20, i64 100, !20, i64 104}
!34 = !{!"_ZTS15MemoryCtrl_type", !7, i64 0}
!35 = !{!"_ZTS12MCStatistics", !16, i64 0, !16, i64 8, !16, i64 16, !16, i64 24}
!36 = !{!12, !6, i64 1360}
!37 = !{!12, !6, i64 1368}
!38 = !{!12, !6, i64 1376}
!39 = !{i64 0, i64 4, !40, i64 4, i64 4, !40, i64 8, i64 4, !40, i64 12, i64 4, !40, i64 16, i64 4, !40, i64 20, i64 1, !41, i64 24, i64 4, !40, i64 28, i64 4, !40, i64 32, i64 4, !40, i64 36, i64 4, !40, i64 40, i64 4, !40, i64 44, i64 4, !40, i64 48, i64 8, !42, i64 56, i64 8, !42, i64 64, i64 4, !40, i64 68, i64 4, !40, i64 72, i64 4, !40, i64 76, i64 4, !40, i64 80, i64 4, !40, i64 84, i64 1, !41, i64 85, i64 1, !41, i64 86, i64 1, !41, i64 87, i64 1, !41, i64 88, i64 1, !41, i64 92, i64 4, !40, i64 96, i64 4, !40, i64 100, i64 4, !40, i64 104, i64 4, !40, i64 108, i64 4, !40, i64 112, i64 4, !40, i64 116, i64 4, !40, i64 120, i64 4, !40, i64 124, i64 4, !40, i64 128, i64 4, !40, i64 132, i64 4, !40, i64 136, i64 4, !40, i64 140, i64 4, !40, i64 144, i64 4, !40, i64 148, i64 4, !40, i64 152, i64 4, !43, i64 156, i64 4, !40, i64 160, i64 1, !41, i64 164, i64 4, !40, i64 168, i64 4, !40, i64 172, i64 4, !40, i64 176, i64 4, !40, i64 180, i64 4, !40, i64 184, i64 4, !40, i64 188, i64 4, !40, i64 192, i64 1, !41, i64 196, i64 4, !40, i64 200, i64 4, !40, i64 204, i64 4, !40, i64 208, i64 4, !40, i64 212, i64 4, !40, i64 216, i64 4, !40, i64 220, i64 4, !40, i64 224, i64 4, !40, i64 228, i64 4, !40, i64 232, i64 4, !40, i64 236, i64 4, !40, i64 240, i64 4, !40, i64 244, i64 4, !40, i64 248, i64 4, !40, i64 252, i64 4, !40, i64 256, i64 4, !40, i64 260, i64 4, !40, i64 264, i64 4, !40, i64 268, i64 4, !40, i64 272, i64 4, !40, i64 276, i64 4, !40, i64 280, i64 4, !40, i64 284, i64 4, !40, i64 288, i64 4, !40, i64 292, i64 4, !40, i64 296, i64 4, !40, i64 300, i64 1, !41, i64 304, i64 4, !40, i64 308, i64 4, !40, i64 312, i64 4, !40, i64 316, i64 1, !41, i64 317, i64 1, !41, i64 320, i64 4, !40, i64 324, i64 4, !40, i64 328, i64 1, !41, i64 336, i64 8, !42, i64 344, i64 8, !42, i64 352, i64 1, !41, i64 356, i64 4, !40, i64 360, i64 4, !40, i64 364, i64 1, !41}
!40 = !{!20, !20, i64 0}
!41 = !{!21, !21, i64 0}
!42 = !{!16, !16, i64 0}
!43 = !{!22, !22, i64 0}
!44 = !{i64 0, i64 8, !42, i64 8, i64 4, !45, i64 16, i64 8, !42, i64 24, i64 4, !40, i64 28, i64 4, !40, i64 32, i64 4, !40, i64 36, i64 4, !40, i64 40, i64 4, !40, i64 44, i64 4, !40, i64 48, i64 4, !40, i64 52, i64 4, !40, i64 56, i64 4, !40, i64 60, i64 4, !40, i64 64, i64 1, !41, i64 65, i64 1, !41, i64 68, i64 4, !40, i64 72, i64 4, !40, i64 76, i64 4, !40, i64 80, i64 4, !40, i64 84, i64 4, !40, i64 88, i64 4, !40, i64 92, i64 4, !40, i64 96, i64 4, !40, i64 100, i64 4, !40, i64 104, i64 4, !40}
!45 = !{!34, !34, i64 0}
!46 = !{i64 0, i64 8, !42, i64 8, i64 8, !42, i64 16, i64 8, !42, i64 24, i64 8, !42}
!47 = !{!12, !20, i64 1804}
!48 = !{!12, !20, i64 1808}
!49 = !{!12, !20, i64 1796}
!50 = !{!12, !20, i64 1384}
!51 = !{!12, !20, i64 1388}
!52 = !{!12, !20, i64 1828}
!53 = !{!12, !20, i64 1392}
!54 = !{!12, !20, i64 1832}
!55 = !{!12, !20, i64 1396}
!56 = !{!12, !20, i64 1400}
!57 = !{!12, !21, i64 1404}
!58 = !{!12, !20, i64 1408}
!59 = !{!12, !20, i64 1412}
!60 = !{!12, !20, i64 1416}
!61 = !{!12, !20, i64 1420}
!62 = !{!12, !20, i64 1424}
!63 = !{!12, !20, i64 1428}
!64 = !{!12, !20, i64 1448}
!65 = !{!12, !20, i64 1776}
!66 = !{!12, !20, i64 1452}
!67 = !{!12, !20, i64 1456}
!68 = !{!12, !20, i64 1460}
!69 = !{!12, !20, i64 1464}
!70 = !{!12, !21, i64 1469}
!71 = !{!12, !21, i64 1471}
!72 = !{!12, !21, i64 1470}
!73 = !{!12, !16, i64 1752}
!74 = !{!12, !16, i64 1720}
!75 = !{!12, !16, i64 1728}
!76 = !{!13, !6, i64 288}
!77 = !{!78, !20, i64 1432}
!78 = !{!"_ZTS10CacheArray", !13, i64 0, !19, i64 1352, !79, i64 1720, !21, i64 1724, !80, i64 1728, !21, i64 1732, !81, i64 1736, !16, i64 9936, !31, i64 9944, !31, i64 10112}
!79 = !{!"_ZTS9Device_ty", !7, i64 0}
!80 = !{!"_ZTS9Core_type", !7, i64 0}
!81 = !{!"_ZTS9uca_org_t", !6, i64 0, !6, i64 8, !16, i64 16, !16, i64 24, !16, i64 32, !16, i64 40, !17, i64 48, !16, i64 168, !16, i64 176, !16, i64 184, !7, i64 192, !16, i64 296, !21, i64 304, !82, i64 312, !82, i64 4256}
!82 = !{!"_ZTS17results_mem_array", !20, i64 0, !20, i64 4, !16, i64 8, !20, i64 16, !20, i64 20, !20, i64 24, !20, i64 28, !20, i64 32, !20, i64 36, !16, i64 40, !16, i64 48, !16, i64 56, !16, i64 64, !16, i64 72, !16, i64 80, !16, i64 88, !16, i64 96, !16, i64 104, !16, i64 112, !16, i64 120, !16, i64 128, !16, i64 136, !16, i64 144, !16, i64 152, !16, i64 160, !16, i64 168, !16, i64 176, !16, i64 184, !16, i64 192, !16, i64 200, !16, i64 208, !16, i64 216, !16, i64 224, !16, i64 232, !16, i64 240, !16, i64 248, !16, i64 256, !16, i64 264, !17, i64 272, !17, i64 392, !17, i64 512, !17, i64 632, !17, i64 752, !17, i64 872, !17, i64 992, !17, i64 1112, !17, i64 1232, !17, i64 1352, !17, i64 1472, !17, i64 1592, !17, i64 1712, !17, i64 1832, !17, i64 1952, !17, i64 2072, !17, i64 2192, !17, i64 2312, !17, i64 2432, !17, i64 2552, !17, i64 2672, !17, i64 2792, !17, i64 2912, !17, i64 3032, !17, i64 3152, !17, i64 3272, !17, i64 3392, !17, i64 3512, !17, i64 3632, !16, i64 3752, !16, i64 3760, !16, i64 3768, !16, i64 3776, !16, i64 3784, !16, i64 3792, !16, i64 3800, !16, i64 3808, !16, i64 3816, !16, i64 3824, !16, i64 3832, !16, i64 3840, !16, i64 3848, !16, i64 3856, !16, i64 3864, !16, i64 3872, !16, i64 3880, !16, i64 3888, !16, i64 3896, !16, i64 3904, !16, i64 3912, !16, i64 3920, !16, i64 3928, !16, i64 3936}
!83 = !{!78, !20, i64 1424}
!84 = !{!13, !16, i64 776}
!85 = !{!13, !16, i64 800}
!86 = !{!13, !16, i64 824}
!87 = !{!12, !16, i64 1880}
!88 = !{!12, !20, i64 1780}
!89 = !{!12, !20, i64 1784}
!90 = !{!13, !16, i64 944}
!91 = !{!12, !16, i64 1888}
!92 = !{!13, !16, i64 968}
!93 = !{!13, !16, i64 992}
!94 = !{!12, !20, i64 1800}
!95 = !{!12, !20, i64 1836}
!96 = !{!12, !20, i64 1840}
!97 = !{!12, !20, i64 1844}
!98 = !{!78, !20, i64 1420}
!99 = !{!12, !16, i64 1864}
!100 = !{!12, !20, i64 1848}
!101 = !{!12, !20, i64 1852}
!102 = !{!12, !20, i64 1856}
!103 = !{i8 0, i8 2}
!104 = !{}


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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator" = type { i8 }

@_ZTV10MCFrontEnd = external dso_local unnamed_addr constant { [6 x ptr] }, align 8
@.str.3 = external hidden unnamed_addr constant [10 x i8], align 1
@_ZN14McPATComponent22physical_address_widthE = external local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [18 x i8], align 1

declare void @_ZN14McPATComponentC2EP7XMLNode(ptr noundef nonnull align 8 dereferenceable(1352), ptr noundef) unnamed_addr #0

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

declare i32 @__gxx_personality_v0(...)

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168)) local_unnamed_addr #2 align 2

; Function Attrs: nounwind
declare void @_ZN14McPATComponentD2Ev(ptr noundef nonnull align 8 dereferenceable(1352)) unnamed_addr #4

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN10MCFrontEndC2EP7XMLNodeP14InputParameterRK12MCParametersRK12MCStatistics(ptr noundef nonnull align 8 dereferenceable(1896) %0, ptr noundef %1, ptr nocapture noundef readonly %2, ptr nocapture noundef nonnull readonly align 8 dereferenceable(112) %3, ptr nocapture noundef nonnull readonly align 8 dereferenceable(32) %4) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::allocator", align 1
  %8 = alloca ptr, align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::allocator", align 1
  %11 = alloca ptr, align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::allocator", align 1
  %14 = alloca ptr, align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator", align 1
  tail call void @_ZN14McPATComponentC2EP7XMLNode(ptr noundef nonnull align 8 dereferenceable(1352) %0, ptr noundef %1)
  store ptr getelementptr inbounds inrange(-16, 32) (i8, ptr @_ZTV10MCFrontEnd, i64 16), ptr %0, align 8, !tbaa !5
  %17 = getelementptr inbounds i8, ptr %0, i64 1352
  %18 = getelementptr inbounds i8, ptr %0, i64 1360
  %19 = getelementptr inbounds i8, ptr %0, i64 1368
  %20 = getelementptr inbounds i8, ptr %0, i64 1384
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %17, i8 0, i64 32, i1 false)
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(368) %20, ptr noundef nonnull align 8 dereferenceable(368) %2, i64 368, i1 false), !tbaa.struct !8
  %21 = getelementptr inbounds i8, ptr %0, i64 1752
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(112) %21, ptr noundef nonnull align 8 dereferenceable(112) %3, i64 112, i1 false), !tbaa.struct !18
  %22 = getelementptr inbounds i8, ptr %0, i64 1864
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(32) %4, i64 32, i1 false), !tbaa.struct !21
  %23 = getelementptr inbounds i8, ptr %0, i64 664
  %24 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull @.str.3)
          to label %25 unwind label %237

25:                                               ; preds = %5
  %26 = getelementptr inbounds i8, ptr %0, i64 1804
  %27 = load i32, ptr %26, align 4, !tbaa !22
  %28 = add nsw i32 %27, 5
  %29 = getelementptr inbounds i8, ptr %0, i64 1808
  %30 = load i32, ptr %29, align 8, !tbaa !43
  %31 = add nsw i32 %28, %30
  %32 = load i32, ptr @_ZN14McPATComponent22physical_address_widthE, align 4, !tbaa !9
  %33 = add nsw i32 %32, %30
  %34 = sitofp i32 %33 to double
  %35 = fmul double %34, 1.250000e-01
  %36 = tail call double @llvm.ceil.f64(double %35)
  %37 = fptosi double %36 to i32
  %38 = getelementptr inbounds i8, ptr %0, i64 1796
  %39 = load i32, ptr %38, align 4, !tbaa !44
  %40 = mul nsw i32 %39, %37
  store i32 %40, ptr %20, align 8, !tbaa !45
  %41 = getelementptr inbounds i8, ptr %0, i64 1388
  store i32 %37, ptr %41, align 4, !tbaa !46
  %42 = getelementptr inbounds i8, ptr %0, i64 1828
  %43 = getelementptr inbounds i8, ptr %0, i64 1392
  %44 = load <2 x i32>, ptr %42, align 4, !tbaa !9
  store <2 x i32> %44, ptr %43, align 8, !tbaa !9
  %45 = shl i32 %37, 3
  %46 = getelementptr inbounds i8, ptr %0, i64 1400
  store i32 %45, ptr %46, align 8, !tbaa !47
  %47 = icmp sgt i32 %31, 0
  %48 = getelementptr inbounds i8, ptr %0, i64 1404
  %49 = zext i1 %47 to i8
  store i8 %49, ptr %48, align 4, !tbaa !48
  %50 = getelementptr inbounds i8, ptr %0, i64 1408
  store i32 %31, ptr %50, align 8, !tbaa !49
  %51 = getelementptr inbounds i8, ptr %0, i64 1412
  %52 = getelementptr inbounds i8, ptr %0, i64 1428
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %51, i8 0, i64 16, i1 false)
  store i32 1, ptr %52, align 4, !tbaa !50
  %53 = getelementptr inbounds i8, ptr %0, i64 1448
  store i32 0, ptr %53, align 8, !tbaa !51
  %54 = getelementptr inbounds i8, ptr %0, i64 1776
  %55 = load i32, ptr %54, align 8, !tbaa !52
  %56 = getelementptr inbounds i8, ptr %0, i64 1452
  store i32 %55, ptr %56, align 4, !tbaa !53
  %57 = getelementptr inbounds i8, ptr %0, i64 1456
  store i32 %55, ptr %57, align 8, !tbaa !54
  %58 = getelementptr inbounds i8, ptr %0, i64 1460
  store i32 0, ptr %58, align 4, !tbaa !55
  %59 = getelementptr inbounds i8, ptr %0, i64 1464
  store i32 %55, ptr %59, align 8, !tbaa !56
  %60 = getelementptr inbounds i8, ptr %0, i64 1469
  store i8 1, ptr %60, align 1, !tbaa !57
  %61 = getelementptr inbounds i8, ptr %0, i64 1471
  store i8 0, ptr %61, align 1, !tbaa !58
  %62 = getelementptr inbounds i8, ptr %0, i64 1470
  store i8 0, ptr %62, align 2, !tbaa !59
  %63 = load double, ptr %21, align 8, !tbaa !60
  %64 = fdiv double 1.000000e+00, %63
  %65 = getelementptr inbounds i8, ptr %0, i64 1720
  store double %64, ptr %65, align 8, !tbaa !61
  %66 = getelementptr inbounds i8, ptr %0, i64 1728
  store double %64, ptr %66, align 8, !tbaa !62
  %67 = invoke noalias noundef nonnull dereferenceable(10280) ptr @_Znwm(i64 noundef 10280) #10
          to label %68 unwind label %237

68:                                               ; preds = %25
  %69 = getelementptr inbounds i8, ptr %0, i64 288
  %70 = load ptr, ptr %69, align 8, !tbaa !63
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %71 unwind label %239

71:                                               ; preds = %68
  %72 = load double, ptr %21, align 8, !tbaa !60
  invoke void @_ZN10CacheArrayC1EP7XMLNodePK14InputParameterNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tydb9Core_typeb(ptr noundef nonnull align 8 dereferenceable(10280) %67, ptr noundef %70, ptr noundef nonnull %20, ptr noundef nonnull %6, i32 noundef 1, double noundef %72, i1 noundef zeroext true, i32 noundef 1, i1 noundef zeroext true)
          to label %73 unwind label %241

73:                                               ; preds = %71
  store ptr %67, ptr %17, align 8, !tbaa !64
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #11
  %74 = getelementptr inbounds i8, ptr %0, i64 704
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #11
  %75 = load ptr, ptr %17, align 8, !tbaa !64
  store ptr %75, ptr %8, align 8, !tbaa !65
  invoke void @_ZNSt6vectorIP14McPATComponentSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %74, ptr noundef nonnull align 8 dereferenceable(8) %8)
          to label %76 unwind label %244

76:                                               ; preds = %73
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #11
  %77 = load ptr, ptr %17, align 8, !tbaa !64
  %78 = getelementptr inbounds i8, ptr %77, i64 776
  invoke void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %78)
          to label %79 unwind label %237

79:                                               ; preds = %76
  %80 = load ptr, ptr %17, align 8, !tbaa !64
  %81 = getelementptr inbounds i8, ptr %80, i64 1432
  %82 = load i32, ptr %81, align 8, !tbaa !66
  %83 = getelementptr inbounds i8, ptr %80, i64 1424
  %84 = load i32, ptr %83, align 8, !tbaa !72
  %85 = add i32 %84, %82
  %86 = uitofp i32 %85 to double
  %87 = getelementptr inbounds i8, ptr %80, i64 776
  store double %86, ptr %87, align 8, !tbaa !73
  %88 = uitofp i32 %82 to double
  %89 = getelementptr inbounds i8, ptr %80, i64 800
  store double %88, ptr %89, align 8, !tbaa !74
  %90 = uitofp i32 %84 to double
  %91 = getelementptr inbounds i8, ptr %80, i64 824
  store double %90, ptr %91, align 8, !tbaa !75
  %92 = getelementptr inbounds i8, ptr %80, i64 944
  invoke void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %92)
          to label %93 unwind label %237

93:                                               ; preds = %79
  %94 = getelementptr inbounds i8, ptr %0, i64 1880
  %95 = load double, ptr %94, align 8, !tbaa !76
  %96 = getelementptr inbounds i8, ptr %0, i64 1780
  %97 = load i32, ptr %96, align 4, !tbaa !77
  %98 = sitofp i32 %97 to double
  %99 = fmul double %95, %98
  %100 = fmul double %99, 8.000000e+00
  %101 = getelementptr inbounds i8, ptr %0, i64 1784
  %102 = load i32, ptr %101, align 8, !tbaa !78
  %103 = sitofp i32 %102 to double
  %104 = fdiv double %100, %103
  %105 = fmul double %104, %103
  %106 = fdiv double %105, 7.200000e+01
  %107 = load ptr, ptr %17, align 8, !tbaa !64
  %108 = getelementptr inbounds i8, ptr %107, i64 944
  store double %106, ptr %108, align 8, !tbaa !79
  %109 = getelementptr inbounds i8, ptr %0, i64 1888
  %110 = load double, ptr %109, align 8, !tbaa !80
  %111 = fmul double %110, %98
  %112 = fmul double %111, 8.000000e+00
  %113 = fdiv double %112, %103
  %114 = fmul double %113, %103
  %115 = fdiv double %114, 7.200000e+01
  %116 = getelementptr inbounds i8, ptr %107, i64 968
  store double %115, ptr %116, align 8, !tbaa !81
  %117 = fadd double %106, %115
  %118 = getelementptr inbounds i8, ptr %107, i64 992
  store double %117, ptr %118, align 8, !tbaa !82
  %119 = fmul double %103, 1.250000e-01
  %120 = call double @llvm.ceil.f64(double %119)
  %121 = fptosi double %120 to i32
  %122 = getelementptr inbounds i8, ptr %0, i64 1800
  %123 = load i32, ptr %122, align 8, !tbaa !83
  %124 = mul nsw i32 %123, %121
  store i32 %124, ptr %20, align 8, !tbaa !45
  store i32 %121, ptr %41, align 4, !tbaa !46
  %125 = getelementptr inbounds i8, ptr %0, i64 1836
  %126 = load <2 x i32>, ptr %125, align 4, !tbaa !9
  store <2 x i32> %126, ptr %43, align 8, !tbaa !9
  %127 = shl i32 %121, 3
  store i32 %127, ptr %46, align 8, !tbaa !47
  %128 = getelementptr inbounds i8, ptr %0, i64 1844
  %129 = load i32, ptr %128, align 4, !tbaa !84
  %130 = icmp sgt i32 %129, 0
  %131 = zext i1 %130 to i8
  store i8 %131, ptr %48, align 4, !tbaa !48
  store i32 %129, ptr %50, align 8, !tbaa !49
  store <4 x i32> <i32 1, i32 0, i32 0, i32 0>, ptr %51, align 4, !tbaa !9
  store i32 1, ptr %52, align 4, !tbaa !50
  store i32 0, ptr %53, align 8, !tbaa !51
  %132 = load i32, ptr %54, align 8, !tbaa !52
  store i32 %132, ptr %56, align 4, !tbaa !53
  store i32 %132, ptr %57, align 8, !tbaa !54
  store i32 0, ptr %58, align 4, !tbaa !55
  store i32 0, ptr %59, align 8, !tbaa !56
  store i8 0, ptr %60, align 1, !tbaa !57
  store i8 0, ptr %61, align 1, !tbaa !58
  store i8 1, ptr %62, align 2, !tbaa !59
  %133 = load double, ptr %21, align 8, !tbaa !60
  %134 = fdiv double 1.000000e+00, %133
  store double %134, ptr %65, align 8, !tbaa !61
  store double %134, ptr %66, align 8, !tbaa !62
  %135 = invoke noalias noundef nonnull dereferenceable(10280) ptr @_Znwm(i64 noundef 10280) #10
          to label %136 unwind label %237

136:                                              ; preds = %93
  %137 = load ptr, ptr %69, align 8, !tbaa !63
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %138 unwind label %246

138:                                              ; preds = %136
  %139 = load double, ptr %21, align 8, !tbaa !60
  invoke void @_ZN10CacheArrayC1EP7XMLNodePK14InputParameterNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tydb9Core_typeb(ptr noundef nonnull align 8 dereferenceable(10280) %135, ptr noundef %137, ptr noundef nonnull %20, ptr noundef nonnull %9, i32 noundef 1, double noundef %139, i1 noundef zeroext true, i32 noundef 1, i1 noundef zeroext true)
          to label %140 unwind label %248

140:                                              ; preds = %138
  store ptr %135, ptr %18, align 8, !tbaa !85
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #11
  %141 = load ptr, ptr %18, align 8, !tbaa !85
  store ptr %141, ptr %11, align 8, !tbaa !65
  invoke void @_ZNSt6vectorIP14McPATComponentSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %74, ptr noundef nonnull align 8 dereferenceable(8) %11)
          to label %142 unwind label %251

142:                                              ; preds = %140
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #11
  %143 = load ptr, ptr %18, align 8, !tbaa !85
  %144 = getelementptr inbounds i8, ptr %143, i64 776
  invoke void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %144)
          to label %145 unwind label %237

145:                                              ; preds = %142
  %146 = load ptr, ptr %18, align 8, !tbaa !85
  %147 = getelementptr inbounds i8, ptr %146, i64 1420
  %148 = load i32, ptr %147, align 4, !tbaa !86
  %149 = uitofp i32 %148 to double
  %150 = load double, ptr %22, align 8, !tbaa !87
  %151 = fmul double %150, %149
  %152 = getelementptr inbounds i8, ptr %146, i64 776
  store double %151, ptr %152, align 8, !tbaa !73
  %153 = getelementptr inbounds i8, ptr %146, i64 1424
  %154 = load i32, ptr %153, align 8, !tbaa !72
  %155 = uitofp i32 %154 to double
  %156 = fmul double %150, %155
  %157 = getelementptr inbounds i8, ptr %146, i64 800
  store double %156, ptr %157, align 8, !tbaa !74
  %158 = getelementptr inbounds i8, ptr %146, i64 944
  invoke void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %158)
          to label %159 unwind label %237

159:                                              ; preds = %145
  %160 = load double, ptr %94, align 8, !tbaa !76
  %161 = load i32, ptr %96, align 4, !tbaa !77
  %162 = sitofp i32 %161 to double
  %163 = fmul double %160, %162
  %164 = fmul double %163, 8.000000e+00
  %165 = load i32, ptr %101, align 8, !tbaa !78
  %166 = sitofp i32 %165 to double
  %167 = fdiv double %164, %166
  %168 = load ptr, ptr %18, align 8, !tbaa !85
  %169 = getelementptr inbounds i8, ptr %168, i64 944
  store double %167, ptr %169, align 8, !tbaa !79
  %170 = getelementptr inbounds i8, ptr %168, i64 968
  store double %167, ptr %170, align 8, !tbaa !81
  %171 = fmul double %166, 1.250000e-01
  %172 = call double @llvm.ceil.f64(double %171)
  %173 = fptosi double %172 to i32
  %174 = load i32, ptr %122, align 8, !tbaa !83
  %175 = mul nsw i32 %174, %173
  store i32 %175, ptr %20, align 8, !tbaa !45
  store i32 %173, ptr %41, align 4, !tbaa !46
  %176 = getelementptr inbounds i8, ptr %0, i64 1848
  %177 = load <2 x i32>, ptr %176, align 8, !tbaa !9
  store <2 x i32> %177, ptr %43, align 8, !tbaa !9
  %178 = shl i32 %173, 3
  store i32 %178, ptr %46, align 8, !tbaa !47
  %179 = getelementptr inbounds i8, ptr %0, i64 1856
  %180 = load i32, ptr %179, align 8, !tbaa !88
  %181 = icmp sgt i32 %180, 0
  %182 = zext i1 %181 to i8
  store i8 %182, ptr %48, align 4, !tbaa !48
  store i32 %180, ptr %50, align 8, !tbaa !49
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %51, i8 0, i64 16, i1 false)
  store i32 1, ptr %52, align 4, !tbaa !50
  store i32 0, ptr %53, align 8, !tbaa !51
  %183 = load i32, ptr %54, align 8, !tbaa !52
  store i32 %183, ptr %56, align 4, !tbaa !53
  store i32 %183, ptr %57, align 8, !tbaa !54
  store i32 0, ptr %58, align 4, !tbaa !55
  store i32 0, ptr %59, align 8, !tbaa !56
  store i8 0, ptr %60, align 1, !tbaa !57
  store i8 0, ptr %61, align 1, !tbaa !58
  store i8 1, ptr %62, align 2, !tbaa !59
  %184 = load double, ptr %21, align 8, !tbaa !60
  %185 = fdiv double 1.000000e+00, %184
  store double %185, ptr %65, align 8, !tbaa !61
  store double %185, ptr %66, align 8, !tbaa !62
  %186 = invoke noalias noundef nonnull dereferenceable(10280) ptr @_Znwm(i64 noundef 10280) #10
          to label %187 unwind label %237

187:                                              ; preds = %159
  %188 = load ptr, ptr %69, align 8, !tbaa !63
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %13) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %189 unwind label %253

189:                                              ; preds = %187
  %190 = load double, ptr %21, align 8, !tbaa !60
  invoke void @_ZN10CacheArrayC1EP7XMLNodePK14InputParameterNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tydb9Core_typeb(ptr noundef nonnull align 8 dereferenceable(10280) %186, ptr noundef %188, ptr noundef nonnull %20, ptr noundef nonnull %12, i32 noundef 1, double noundef %190, i1 noundef zeroext true, i32 noundef 1, i1 noundef zeroext true)
          to label %191 unwind label %255

191:                                              ; preds = %189
  store ptr %186, ptr %19, align 8, !tbaa !89
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #11
  %192 = load ptr, ptr %19, align 8, !tbaa !89
  store ptr %192, ptr %14, align 8, !tbaa !65
  invoke void @_ZNSt6vectorIP14McPATComponentSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %74, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %193 unwind label %258

193:                                              ; preds = %191
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #11
  %194 = load ptr, ptr %19, align 8, !tbaa !89
  %195 = getelementptr inbounds i8, ptr %194, i64 776
  invoke void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %195)
          to label %196 unwind label %237

196:                                              ; preds = %193
  %197 = load ptr, ptr %19, align 8, !tbaa !89
  %198 = getelementptr inbounds i8, ptr %197, i64 1420
  %199 = load i32, ptr %198, align 4, !tbaa !86
  %200 = uitofp i32 %199 to double
  %201 = load double, ptr %22, align 8, !tbaa !87
  %202 = fmul double %201, %200
  %203 = getelementptr inbounds i8, ptr %197, i64 776
  store double %202, ptr %203, align 8, !tbaa !73
  %204 = getelementptr inbounds i8, ptr %197, i64 1424
  %205 = load i32, ptr %204, align 8, !tbaa !72
  %206 = uitofp i32 %205 to double
  %207 = fmul double %201, %206
  %208 = getelementptr inbounds i8, ptr %197, i64 800
  store double %207, ptr %208, align 8, !tbaa !74
  %209 = getelementptr inbounds i8, ptr %197, i64 944
  invoke void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %209)
          to label %210 unwind label %237

210:                                              ; preds = %196
  %211 = load double, ptr %94, align 8, !tbaa !76
  %212 = load i32, ptr %96, align 4, !tbaa !77
  %213 = sitofp i32 %212 to double
  %214 = fmul double %211, %213
  %215 = fmul double %214, 8.000000e+00
  %216 = load i32, ptr %101, align 8, !tbaa !78
  %217 = sitofp i32 %216 to double
  %218 = fdiv double %215, %217
  %219 = load ptr, ptr %19, align 8, !tbaa !89
  %220 = getelementptr inbounds i8, ptr %219, i64 944
  store double %218, ptr %220, align 8, !tbaa !79
  %221 = load double, ptr %109, align 8, !tbaa !80
  %222 = fmul double %221, %213
  %223 = fmul double %222, 8.000000e+00
  %224 = fdiv double %223, %217
  %225 = getelementptr inbounds i8, ptr %219, i64 968
  store double %224, ptr %225, align 8, !tbaa !81
  %226 = invoke noalias noundef nonnull dereferenceable(9960) ptr @_Znwm(i64 noundef 9960) #10
          to label %227 unwind label %237

227:                                              ; preds = %210
  %228 = load ptr, ptr %69, align 8, !tbaa !63
  %229 = load i32, ptr %38, align 4, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %230 unwind label %260

230:                                              ; preds = %227
  %231 = load double, ptr %94, align 8, !tbaa !76
  %232 = load double, ptr %109, align 8, !tbaa !80
  %233 = fadd double %231, %232
  %234 = load double, ptr %21, align 8, !tbaa !60
  invoke void @_ZN15selection_logicC1EP7XMLNodebiiPK14InputParameterNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdd9Device_ty9Core_type(ptr noundef nonnull align 8 dereferenceable(9956) %226, ptr noundef %228, i1 noundef zeroext true, i32 noundef %229, i32 noundef 1, ptr noundef nonnull %20, ptr noundef nonnull %15, double noundef %233, double noundef %234, i32 noundef 1, i32 noundef 1)
          to label %235 unwind label %262

235:                                              ; preds = %230
  %236 = getelementptr inbounds i8, ptr %0, i64 1376
  store ptr %226, ptr %236, align 8, !tbaa !90
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #11
  ret void

237:                                              ; preds = %210, %196, %193, %159, %145, %142, %93, %79, %76, %25, %5
  %238 = landingpad { ptr, i32 }
          cleanup
  br label %265

239:                                              ; preds = %68
  %240 = landingpad { ptr, i32 }
          cleanup
  br label %243

241:                                              ; preds = %71
  %242 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #11
  br label %243

243:                                              ; preds = %241, %239
  %.pn = phi { ptr, i32 } [ %242, %241 ], [ %240, %239 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #11
  call void @_ZdlPvm(ptr noundef nonnull %67, i64 noundef 10280) #12
  br label %265

244:                                              ; preds = %73
  %245 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #11
  br label %265

246:                                              ; preds = %136
  %247 = landingpad { ptr, i32 }
          cleanup
  br label %250

248:                                              ; preds = %138
  %249 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #11
  br label %250

250:                                              ; preds = %248, %246
  %.pn25 = phi { ptr, i32 } [ %249, %248 ], [ %247, %246 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #11
  call void @_ZdlPvm(ptr noundef nonnull %135, i64 noundef 10280) #12
  br label %265

251:                                              ; preds = %140
  %252 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #11
  br label %265

253:                                              ; preds = %187
  %254 = landingpad { ptr, i32 }
          cleanup
  br label %257

255:                                              ; preds = %189
  %256 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #11
  br label %257

257:                                              ; preds = %255, %253
  %.pn27 = phi { ptr, i32 } [ %256, %255 ], [ %254, %253 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #11
  call void @_ZdlPvm(ptr noundef nonnull %186, i64 noundef 10280) #12
  br label %265

258:                                              ; preds = %191
  %259 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #11
  br label %265

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

262:                                              ; preds = %230
  %263 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #11
  br label %264

264:                                              ; preds = %262, %260
  %.pn29 = phi { ptr, i32 } [ %263, %262 ], [ %261, %260 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #11
  call void @_ZdlPvm(ptr noundef nonnull %226, i64 noundef 9960) #12
  br label %265

265:                                              ; preds = %264, %257, %250, %243, %258, %251, %244, %237
  %.pn29.pn = phi { ptr, i32 } [ %.pn29, %264 ], [ %238, %237 ], [ %259, %258 ], [ %.pn27, %257 ], [ %252, %251 ], [ %.pn25, %250 ], [ %245, %244 ], [ %.pn, %243 ]
  call void @_ZN14McPATComponentD2Ev(ptr noundef nonnull align 8 dereferenceable(1352) %0) #11
  resume { ptr, i32 } %.pn29.pn
}

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

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) local_unnamed_addr #6

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

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

declare void @_ZN10CacheArrayC1EP7XMLNodePK14InputParameterNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tydb9Core_typeb(ptr noundef nonnull align 8 dereferenceable(10280), ptr noundef, ptr noundef, ptr noundef, i32 noundef, double noundef, i1 noundef zeroext, i32 noundef, i1 noundef zeroext) unnamed_addr #0

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

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) local_unnamed_addr #8

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

declare void @_ZN15selection_logicC1EP7XMLNodebiiPK14InputParameterNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdd9Device_ty9Core_type(ptr noundef nonnull align 8 dereferenceable(9956), ptr noundef, i1 noundef zeroext, i32 noundef, i32 noundef, ptr noundef, ptr noundef, double noundef, double noundef, i32 noundef, i32 noundef) unnamed_addr #0

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"vtable pointer", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = !{i64 0, i64 4, !9, i64 4, i64 4, !9, i64 8, i64 4, !9, i64 12, i64 4, !9, i64 16, i64 4, !9, i64 20, i64 1, !12, i64 24, i64 4, !9, i64 28, i64 4, !9, i64 32, i64 4, !9, i64 36, i64 4, !9, i64 40, i64 4, !9, i64 44, i64 4, !9, i64 48, i64 8, !14, i64 56, i64 8, !14, i64 64, i64 4, !9, i64 68, i64 4, !9, i64 72, i64 4, !9, i64 76, i64 4, !9, i64 80, i64 4, !9, i64 84, i64 1, !12, i64 85, i64 1, !12, i64 86, i64 1, !12, i64 87, i64 1, !12, i64 88, i64 1, !12, i64 92, i64 4, !9, i64 96, i64 4, !9, i64 100, i64 4, !9, i64 104, i64 4, !9, i64 108, i64 4, !9, i64 112, i64 4, !9, i64 116, i64 4, !9, i64 120, i64 4, !9, i64 124, i64 4, !9, i64 128, i64 4, !9, i64 132, i64 4, !9, i64 136, i64 4, !9, i64 140, i64 4, !9, i64 144, i64 4, !9, i64 148, i64 4, !9, i64 152, i64 4, !16, i64 156, i64 4, !9, i64 160, i64 1, !12, i64 164, i64 4, !9, i64 168, i64 4, !9, i64 172, i64 4, !9, i64 176, i64 4, !9, i64 180, i64 4, !9, i64 184, i64 4, !9, i64 188, i64 4, !9, i64 192, i64 1, !12, i64 196, i64 4, !9, i64 200, i64 4, !9, i64 204, i64 4, !9, i64 208, i64 4, !9, i64 212, i64 4, !9, i64 216, i64 4, !9, i64 220, i64 4, !9, i64 224, i64 4, !9, i64 228, i64 4, !9, i64 232, i64 4, !9, i64 236, i64 4, !9, i64 240, i64 4, !9, i64 244, i64 4, !9, i64 248, i64 4, !9, i64 252, i64 4, !9, i64 256, i64 4, !9, i64 260, i64 4, !9, i64 264, i64 4, !9, i64 268, i64 4, !9, i64 272, i64 4, !9, i64 276, i64 4, !9, i64 280, i64 4, !9, i64 284, i64 4, !9, i64 288, i64 4, !9, i64 292, i64 4, !9, i64 296, i64 4, !9, i64 300, i64 1, !12, i64 304, i64 4, !9, i64 308, i64 4, !9, i64 312, i64 4, !9, i64 316, i64 1, !12, i64 317, i64 1, !12, i64 320, i64 4, !9, i64 324, i64 4, !9, i64 328, i64 1, !12, i64 336, i64 8, !14, i64 344, i64 8, !14, i64 352, i64 1, !12, i64 356, i64 4, !9, i64 360, i64 4, !9, i64 364, i64 1, !12}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !11, i64 0}
!11 = !{!"omnipotent char", !7, i64 0}
!12 = !{!13, !13, i64 0}
!13 = !{!"bool", !11, i64 0}
!14 = !{!15, !15, i64 0}
!15 = !{!"double", !11, i64 0}
!16 = !{!17, !17, i64 0}
!17 = !{!"_ZTS9Wire_type", !11, i64 0}
!18 = !{i64 0, i64 8, !14, i64 8, i64 4, !19, i64 16, i64 8, !14, i64 24, i64 4, !9, i64 28, i64 4, !9, i64 32, i64 4, !9, i64 36, i64 4, !9, i64 40, i64 4, !9, i64 44, i64 4, !9, i64 48, i64 4, !9, i64 52, i64 4, !9, i64 56, i64 4, !9, i64 60, i64 4, !9, i64 64, i64 1, !12, i64 65, i64 1, !12, i64 68, i64 4, !9, i64 72, i64 4, !9, i64 76, i64 4, !9, i64 80, i64 4, !9, i64 84, i64 4, !9, i64 88, i64 4, !9, i64 92, i64 4, !9, i64 96, i64 4, !9, i64 100, i64 4, !9, i64 104, i64 4, !9}
!19 = !{!20, !20, i64 0}
!20 = !{!"_ZTS15MemoryCtrl_type", !11, i64 0}
!21 = !{i64 0, i64 8, !14, i64 8, i64 8, !14, i64 16, i64 8, !14, i64 24, i64 8, !14}
!22 = !{!23, !10, i64 1804}
!23 = !{!"_ZTS10MCFrontEnd", !24, i64 0, !29, i64 1352, !29, i64 1360, !29, i64 1368, !29, i64 1376, !30, i64 1384, !41, i64 1752, !42, i64 1864}
!24 = !{!"_ZTS14McPATComponent", !25, i64 8, !29, i64 288, !30, i64 296, !31, i64 664, !15, i64 696, !34, i64 704, !38, i64 728, !39, i64 776, !39, i64 944, !27, i64 1112, !27, i64 1232}
!25 = !{!"_ZTS9Component", !26, i64 0, !27, i64 24, !27, i64 144, !15, i64 264, !15, i64 272}
!26 = !{!"_ZTS4Area", !15, i64 0, !15, i64 8, !15, i64 16}
!27 = !{!"_ZTS8powerDef", !28, i64 0, !28, i64 40, !28, i64 80}
!28 = !{!"_ZTS15powerComponents", !15, i64 0, !15, i64 8, !15, i64 16, !15, i64 24, !15, i64 32}
!29 = !{!"any pointer", !11, i64 0}
!30 = !{!"_ZTS14InputParameter", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !13, i64 20, !10, i64 24, !10, i64 28, !10, i64 32, !10, i64 36, !10, i64 40, !10, i64 44, !15, i64 48, !15, i64 56, !10, i64 64, !10, i64 68, !10, i64 72, !10, i64 76, !10, i64 80, !13, i64 84, !13, i64 85, !13, i64 86, !13, i64 87, !13, i64 88, !10, i64 92, !10, i64 96, !10, i64 100, !10, i64 104, !10, i64 108, !10, i64 112, !10, i64 116, !10, i64 120, !10, i64 124, !10, i64 128, !10, i64 132, !10, i64 136, !10, i64 140, !10, i64 144, !10, i64 148, !17, i64 152, !10, i64 156, !13, i64 160, !10, i64 164, !10, i64 168, !10, i64 172, !10, i64 176, !10, i64 180, !10, i64 184, !10, i64 188, !13, i64 192, !10, i64 196, !10, i64 200, !10, i64 204, !10, i64 208, !10, i64 212, !10, i64 216, !10, i64 220, !10, i64 224, !10, i64 228, !10, i64 232, !10, i64 236, !10, i64 240, !10, i64 244, !10, i64 248, !10, i64 252, !10, i64 256, !10, i64 260, !10, i64 264, !10, i64 268, !10, i64 272, !10, i64 276, !10, i64 280, !10, i64 284, !10, i64 288, !10, i64 292, !10, i64 296, !13, i64 300, !10, i64 304, !10, i64 308, !10, i64 312, !13, i64 316, !13, i64 317, !10, i64 320, !10, i64 324, !13, i64 328, !15, i64 336, !15, i64 344, !13, i64 352, !10, i64 356, !10, i64 360, !13, i64 364}
!31 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !32, i64 0, !33, i64 8, !11, i64 16}
!32 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !29, i64 0}
!33 = !{!"long", !11, i64 0}
!34 = !{!"_ZTSSt6vectorIP14McPATComponentSaIS1_EE", !35, i64 0}
!35 = !{!"_ZTSSt12_Vector_baseIP14McPATComponentSaIS1_EE", !36, i64 0}
!36 = !{!"_ZTSNSt12_Vector_baseIP14McPATComponentSaIS1_EE12_Vector_implE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseIP14McPATComponentSaIS1_EE17_Vector_impl_dataE", !29, i64 0, !29, i64 8, !29, i64 16}
!38 = !{!"_ZTS11McPATOutput", !15, i64 0, !15, i64 8, !15, i64 16, !15, i64 24, !15, i64 32, !15, i64 40}
!39 = !{!"_ZTS8statsDef", !40, i64 0, !40, i64 24, !40, i64 48, !40, i64 72, !40, i64 96, !40, i64 120, !40, i64 144}
!40 = !{!"_ZTS15statsComponents", !15, i64 0, !15, i64 8, !15, i64 16}
!41 = !{!"_ZTS12MCParameters", !15, i64 0, !20, i64 8, !15, i64 16, !10, i64 24, !10, i64 28, !10, i64 32, !10, i64 36, !10, i64 40, !10, i64 44, !10, i64 48, !10, i64 52, !10, i64 56, !10, i64 60, !13, i64 64, !13, i64 65, !10, i64 68, !10, i64 72, !10, i64 76, !10, i64 80, !10, i64 84, !10, i64 88, !10, i64 92, !10, i64 96, !10, i64 100, !10, i64 104}
!42 = !{!"_ZTS12MCStatistics", !15, i64 0, !15, i64 8, !15, i64 16, !15, i64 24}
!43 = !{!23, !10, i64 1808}
!44 = !{!23, !10, i64 1796}
!45 = !{!23, !10, i64 1384}
!46 = !{!23, !10, i64 1388}
!47 = !{!23, !10, i64 1400}
!48 = !{!23, !13, i64 1404}
!49 = !{!23, !10, i64 1408}
!50 = !{!23, !10, i64 1428}
!51 = !{!23, !10, i64 1448}
!52 = !{!23, !10, i64 1776}
!53 = !{!23, !10, i64 1452}
!54 = !{!23, !10, i64 1456}
!55 = !{!23, !10, i64 1460}
!56 = !{!23, !10, i64 1464}
!57 = !{!23, !13, i64 1469}
!58 = !{!23, !13, i64 1471}
!59 = !{!23, !13, i64 1470}
!60 = !{!23, !15, i64 1752}
!61 = !{!23, !15, i64 1720}
!62 = !{!23, !15, i64 1728}
!63 = !{!24, !29, i64 288}
!64 = !{!23, !29, i64 1352}
!65 = !{!29, !29, i64 0}
!66 = !{!67, !10, i64 1432}
!67 = !{!"_ZTS10CacheArray", !24, i64 0, !30, i64 1352, !68, i64 1720, !13, i64 1724, !69, i64 1728, !13, i64 1732, !70, i64 1736, !15, i64 9936, !39, i64 9944, !39, i64 10112}
!68 = !{!"_ZTS9Device_ty", !11, i64 0}
!69 = !{!"_ZTS9Core_type", !11, i64 0}
!70 = !{!"_ZTS9uca_org_t", !29, i64 0, !29, i64 8, !15, i64 16, !15, i64 24, !15, i64 32, !15, i64 40, !27, i64 48, !15, i64 168, !15, i64 176, !15, i64 184, !11, i64 192, !15, i64 296, !13, i64 304, !71, i64 312, !71, i64 4256}
!71 = !{!"_ZTS17results_mem_array", !10, i64 0, !10, i64 4, !15, i64 8, !10, i64 16, !10, i64 20, !10, i64 24, !10, i64 28, !10, i64 32, !10, i64 36, !15, i64 40, !15, i64 48, !15, i64 56, !15, i64 64, !15, i64 72, !15, i64 80, !15, i64 88, !15, i64 96, !15, i64 104, !15, i64 112, !15, i64 120, !15, i64 128, !15, i64 136, !15, i64 144, !15, i64 152, !15, i64 160, !15, i64 168, !15, i64 176, !15, i64 184, !15, i64 192, !15, i64 200, !15, i64 208, !15, i64 216, !15, i64 224, !15, i64 232, !15, i64 240, !15, i64 248, !15, i64 256, !15, i64 264, !27, i64 272, !27, i64 392, !27, i64 512, !27, i64 632, !27, i64 752, !27, i64 872, !27, i64 992, !27, i64 1112, !27, i64 1232, !27, i64 1352, !27, i64 1472, !27, i64 1592, !27, i64 1712, !27, i64 1832, !27, i64 1952, !27, i64 2072, !27, i64 2192, !27, i64 2312, !27, i64 2432, !27, i64 2552, !27, i64 2672, !27, i64 2792, !27, i64 2912, !27, i64 3032, !27, i64 3152, !27, i64 3272, !27, i64 3392, !27, i64 3512, !27, i64 3632, !15, i64 3752, !15, i64 3760, !15, i64 3768, !15, i64 3776, !15, i64 3784, !15, i64 3792, !15, i64 3800, !15, i64 3808, !15, i64 3816, !15, i64 3824, !15, i64 3832, !15, i64 3840, !15, i64 3848, !15, i64 3856, !15, i64 3864, !15, i64 3872, !15, i64 3880, !15, i64 3888, !15, i64 3896, !15, i64 3904, !15, i64 3912, !15, i64 3920, !15, i64 3928, !15, i64 3936}
!72 = !{!67, !10, i64 1424}
!73 = !{!24, !15, i64 776}
!74 = !{!24, !15, i64 800}
!75 = !{!24, !15, i64 824}
!76 = !{!23, !15, i64 1880}
!77 = !{!23, !10, i64 1780}
!78 = !{!23, !10, i64 1784}
!79 = !{!24, !15, i64 944}
!80 = !{!23, !15, i64 1888}
!81 = !{!24, !15, i64 968}
!82 = !{!24, !15, i64 992}
!83 = !{!23, !10, i64 1800}
!84 = !{!23, !10, i64 1844}
!85 = !{!23, !29, i64 1360}
!86 = !{!67, !10, i64 1420}
!87 = !{!23, !15, i64 1864}
!88 = !{!23, !10, i64 1856}
!89 = !{!23, !29, i64 1368}
!90 = !{!23, !29, i64 1376}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,Float2IntPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,MemCpyOptPass,PostOrderFunctionAttrsPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass