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

; 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.TechnologyParameter = type { 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, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, i64, %"class.TechnologyParameter::DeviceType", %"class.TechnologyParameter::DeviceType", %"class.TechnologyParameter::DeviceType", %"class.TechnologyParameter::DeviceType", %"class.TechnologyParameter::DeviceType", %"class.TechnologyParameter::InterconnectType", %"class.TechnologyParameter::InterconnectType", %"class.TechnologyParameter::InterconnectType", %"class.TechnologyParameter::ScalingFactor", %"class.TechnologyParameter::MemoryType", %"class.TechnologyParameter::MemoryType", %"class.TechnologyParameter::MemoryType" }
%"class.TechnologyParameter::DeviceType" = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double }
%"class.TechnologyParameter::InterconnectType" = type { double, double, double, double, double, double, double, double }
%"class.TechnologyParameter::ScalingFactor" = type { double, double, double }
%"class.TechnologyParameter::MemoryType" = type { double, double, double, double, double, double }
%"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.EXECU = type <{ %class.McPATComponent, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %class.InputParameter, double, double, double, double, %class.CoreParameters, %class.CoreStatistics, i8, [7 x i8] }>
%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.CoreParameters = type { i8, i8, i8, i32, i32, i32, double, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, double, i32, i32, i32, i32, i8, i8, [4 x double], i32, i32, i32, i32, i32, i32, i32, double, double, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, double, double, i32, double, double }
%class.CoreStatistics = type { 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, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double }
%class.FunctionalUnit = type { %class.McPATComponent, %class.InputParameter, %class.CoreParameters, %class.CoreStatistics, double, double, double, double, double, i8, i32, %class.statsDef }
%class.SchedulerU = type <{ %class.McPATComponent, ptr, ptr, ptr, ptr, ptr, %class.InputParameter, %class.CoreParameters, %class.CoreStatistics, double, double, double, double, double, double, i8, [7 x i8] }>
%class.RegFU = type <{ %class.McPATComponent, ptr, ptr, ptr, %class.InputParameter, %class.CoreParameters, %class.CoreStatistics, double, double, double, double, double, i8, [7 x i8] }>

@_ZN14McPATComponent15data_path_widthE = external global i32, align 4
@_ZTV5EXECU = external dso_local unnamed_addr constant { [6 x ptr] }, align 8
@.str.70 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [16 x i8], align 1
@g_tp = external global %class.TechnologyParameter, align 8
@.str.72 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [14 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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.ceil.f64(double) #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 #3 align 2

; 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: mustprogress nounwind uwtable
declare dso_local void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24), double noundef) #7 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5EXECUC2EP7XMLNodeP14InputParameterdRK14CoreParametersRK14CoreStatisticsb(ptr noundef nonnull align 8 dereferenceable(2713) %0, ptr noundef %1, ptr noundef %2, double noundef %3, ptr noundef nonnull align 8 dereferenceable(480) %4, ptr noundef nonnull align 8 dereferenceable(392) %5, i1 noundef zeroext %6) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca double, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca i8, align 1
  %15 = alloca double, align 8
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca double, align 8
  %19 = alloca double, align 8
  %20 = alloca double, align 8
  %21 = alloca double, align 8
  %22 = alloca double, align 8
  %23 = alloca i32, align 4
  %24 = alloca double, align 8
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca double, align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::allocator", align 1
  %30 = alloca i1, align 1
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator", align 1
  %33 = alloca i1, align 1
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::allocator", align 1
  %36 = alloca i1, align 1
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::allocator", align 1
  %39 = alloca i1, align 1
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::allocator", align 1
  %42 = alloca i1, align 1
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::allocator", align 1
  %45 = alloca i1, align 1
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::allocator", align 1
  %48 = alloca i1, align 1
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::allocator", align 1
  %51 = alloca i1, align 1
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::allocator", align 1
  %54 = alloca i1, align 1
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::allocator", align 1
  %57 = alloca i1, align 1
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::allocator", align 1
  %60 = alloca i1, align 1
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::allocator", align 1
  %63 = alloca i1, align 1
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::allocator", align 1
  %66 = alloca i1, align 1
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::allocator", align 1
  %69 = alloca i1, align 1
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::allocator", align 1
  %72 = alloca i1, align 1
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca %"class.std::allocator", align 1
  %75 = alloca i1, align 1
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.std::allocator", align 1
  %78 = alloca i1, align 1
  %79 = alloca %"class.std::__cxx11::basic_string", align 8
  %80 = alloca %"class.std::allocator", align 1
  %81 = alloca i1, align 1
  %82 = alloca ptr, align 8
  %83 = alloca ptr, align 8
  %84 = alloca ptr, align 8
  %85 = alloca ptr, align 8
  %86 = alloca ptr, align 8
  %87 = alloca ptr, align 8
  store ptr %0, ptr %8, align 8, !tbaa !5
  store ptr %1, ptr %9, align 8, !tbaa !5
  store ptr %2, ptr %10, align 8, !tbaa !5
  store double %3, ptr %11, align 8, !tbaa !9
  store ptr %4, ptr %12, align 8, !tbaa !5
  store ptr %5, ptr %13, align 8, !tbaa !5
  %88 = zext i1 %6 to i8
  store i8 %88, ptr %14, align 1, !tbaa !11
  %89 = load ptr, ptr %8, align 8
  %90 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN14McPATComponentC2EP7XMLNode(ptr noundef nonnull align 8 dereferenceable(1352) %89, ptr noundef %90)
  store ptr getelementptr inbounds inrange(-16, 32) ({ [6 x ptr] }, ptr @_ZTV5EXECU, i32 0, i32 0, i32 2), ptr %89, align 8, !tbaa !13
  %91 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 1
  store ptr null, ptr %91, align 8, !tbaa !15
  %92 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 2
  store ptr null, ptr %92, align 8, !tbaa !40
  %93 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 3
  store ptr null, ptr %93, align 8, !tbaa !41
  %94 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 4
  store ptr null, ptr %94, align 8, !tbaa !42
  %95 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 5
  store ptr null, ptr %95, align 8, !tbaa !43
  %96 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 6
  store ptr null, ptr %96, align 8, !tbaa !44
  %97 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 7
  store ptr null, ptr %97, align 8, !tbaa !45
  %98 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 8
  store ptr null, ptr %98, align 8, !tbaa !46
  %99 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 9
  store ptr null, ptr %99, align 8, !tbaa !47
  %100 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 10
  store ptr null, ptr %100, align 8, !tbaa !48
  %101 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 11
  store ptr null, ptr %101, align 8, !tbaa !49
  %102 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 12
  %103 = load ptr, ptr %10, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %102, ptr align 8 %103, i64 368, i1 false), !tbaa.struct !50
  %104 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 16
  %105 = load double, ptr %11, align 8, !tbaa !9
  store double %105, ptr %104, align 8, !tbaa !53
  %106 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %107 = load ptr, ptr %12, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %106, ptr align 8 %107, i64 480, i1 false), !tbaa.struct !54
  %108 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 18
  %109 = load ptr, ptr %13, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %108, ptr align 8 %109, i64 392, i1 false), !tbaa.struct !59
  %110 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 19
  %111 = load i8, ptr %14, align 1, !tbaa !11, !range !60, !noundef !61
  %112 = trunc i8 %111 to i1
  %113 = zext i1 %112 to i8
  store i8 %113, ptr %110, align 8, !tbaa !62
  %114 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 19
  %115 = load i8, ptr %114, align 8, !tbaa !62, !range !60, !noundef !61
  %116 = trunc i8 %115 to i1
  br i1 %116, label %118, label %117

117:                                              ; preds = %7
  br label %1579

118:                                              ; preds = %7
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #10
  store double 0.000000e+00, ptr %15, align 8, !tbaa !9
  %119 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %120 = getelementptr inbounds %class.CoreParameters, ptr %119, i32 0, i32 6
  %121 = load double, ptr %120, align 8, !tbaa !63
  %122 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 5
  store double %121, ptr %122, align 8, !tbaa !64
  %123 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 4
  %124 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %123, ptr noundef @.str.70)
          to label %125 unwind label %173

125:                                              ; preds = %118
  %126 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 2664) #11
          to label %127 unwind label %173

127:                                              ; preds = %125
  %128 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 2
  %129 = load ptr, ptr %128, align 8, !tbaa !65
  %130 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 12
  %131 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %132 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 18
  invoke void @_ZN5RegFUC1EP7XMLNodeP14InputParameterRK14CoreParametersRK14CoreStatisticsb(ptr noundef nonnull align 8 dereferenceable(2657) %126, ptr noundef %129, ptr noundef %130, ptr noundef nonnull align 8 dereferenceable(480) %131, ptr noundef nonnull align 8 dereferenceable(392) %132, i1 noundef zeroext true)
          to label %133 unwind label %177

133:                                              ; preds = %127
  %134 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 1
  store ptr %126, ptr %134, align 8, !tbaa !15
  %135 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %136 = getelementptr inbounds %class.CoreParameters, ptr %135, i32 0, i32 3
  %137 = load i32, ptr %136, align 4, !tbaa !66
  %138 = icmp eq i32 %137, 0
  br i1 %138, label %149, label %139

139:                                              ; preds = %133
  %140 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %141 = getelementptr inbounds %class.CoreParameters, ptr %140, i32 0, i32 3
  %142 = load i32, ptr %141, align 4, !tbaa !66
  %143 = icmp eq i32 %142, 1
  br i1 %143, label %144, label %185

144:                                              ; preds = %139
  %145 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %146 = getelementptr inbounds %class.CoreParameters, ptr %145, i32 0, i32 45
  %147 = load i8, ptr %146, align 1, !tbaa !67, !range !60, !noundef !61
  %148 = trunc i8 %147 to i1
  br i1 %148, label %149, label %185

149:                                              ; preds = %144, %133
  %150 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 2688) #11
          to label %151 unwind label %173

151:                                              ; preds = %149
  %152 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 2
  %153 = load ptr, ptr %152, align 8, !tbaa !65
  %154 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 12
  %155 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %156 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 18
  invoke void @_ZN10SchedulerUC1EP7XMLNodeP14InputParameterRK14CoreParametersRK14CoreStatisticsb(ptr noundef nonnull align 8 dereferenceable(2681) %150, ptr noundef %153, ptr noundef %154, ptr noundef nonnull align 8 dereferenceable(480) %155, ptr noundef nonnull align 8 dereferenceable(392) %156, i1 noundef zeroext true)
          to label %157 unwind label %181

157:                                              ; preds = %151
  %158 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 2
  store ptr %150, ptr %158, align 8, !tbaa !40
  %159 = getelementptr inbounds i8, ptr %89, i64 8
  %160 = getelementptr inbounds %class.Component, ptr %159, i32 0, i32 0
  %161 = getelementptr inbounds i8, ptr %89, i64 8
  %162 = getelementptr inbounds %class.Component, ptr %161, i32 0, i32 0
  %163 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %162)
          to label %164 unwind label %173

164:                                              ; preds = %157
  %165 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 2
  %166 = load ptr, ptr %165, align 8, !tbaa !40
  %167 = getelementptr inbounds i8, ptr %166, i64 8
  %168 = getelementptr inbounds %class.Component, ptr %167, i32 0, i32 0
  %169 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %168)
          to label %170 unwind label %173

170:                                              ; preds = %164
  %171 = fadd double %163, %169
  invoke void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %160, double noundef %171)
          to label %172 unwind label %173

172:                                              ; preds = %170
  br label %185

173:                                              ; preds = %282, %276, %269, %261, %245, %239, %232, %224, %213, %206, %200, %193, %185, %170, %164, %157, %149, %125, %118
  %174 = landingpad { ptr, i32 }
          cleanup
  %175 = extractvalue { ptr, i32 } %174, 0
  store ptr %175, ptr %16, align 8
  %176 = extractvalue { ptr, i32 } %174, 1
  store i32 %176, ptr %17, align 4
  br label %1581

177:                                              ; preds = %127
  %178 = landingpad { ptr, i32 }
          cleanup
  %179 = extractvalue { ptr, i32 } %178, 0
  store ptr %179, ptr %16, align 8
  %180 = extractvalue { ptr, i32 } %178, 1
  store i32 %180, ptr %17, align 4
  call void @_ZdlPvm(ptr noundef %126, i64 noundef 2664) #12
  br label %1581

181:                                              ; preds = %151
  %182 = landingpad { ptr, i32 }
          cleanup
  %183 = extractvalue { ptr, i32 } %182, 0
  store ptr %183, ptr %16, align 8
  %184 = extractvalue { ptr, i32 } %182, 1
  store i32 %184, ptr %17, align 4
  call void @_ZdlPvm(ptr noundef %150, i64 noundef 2688) #12
  br label %1581

185:                                              ; preds = %172, %144, %139
  %186 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 2808) #11
          to label %187 unwind label %173

187:                                              ; preds = %185
  %188 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 2
  %189 = load ptr, ptr %188, align 8, !tbaa !65
  %190 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 12
  %191 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %192 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 18
  invoke void @_ZN14FunctionalUnitC1EP7XMLNodeP14InputParameterRK14CoreParametersRK14CoreStatistics7FU_type(ptr noundef nonnull align 8 dereferenceable(2808) %186, ptr noundef %189, ptr noundef %190, ptr noundef nonnull align 8 dereferenceable(480) %191, ptr noundef nonnull align 8 dereferenceable(392) %192, i32 noundef 1)
          to label %193 unwind label %248

193:                                              ; preds = %187
  %194 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 4
  store ptr %186, ptr %194, align 8, !tbaa !42
  %195 = getelementptr inbounds i8, ptr %89, i64 8
  %196 = getelementptr inbounds %class.Component, ptr %195, i32 0, i32 0
  %197 = getelementptr inbounds i8, ptr %89, i64 8
  %198 = getelementptr inbounds %class.Component, ptr %197, i32 0, i32 0
  %199 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %198)
          to label %200 unwind label %173

200:                                              ; preds = %193
  %201 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 4
  %202 = load ptr, ptr %201, align 8, !tbaa !42
  %203 = getelementptr inbounds i8, ptr %202, i64 8
  %204 = getelementptr inbounds %class.Component, ptr %203, i32 0, i32 0
  %205 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %204)
          to label %206 unwind label %173

206:                                              ; preds = %200
  %207 = fadd double %199, %205
  %208 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 1
  %209 = load ptr, ptr %208, align 8, !tbaa !15
  %210 = getelementptr inbounds i8, ptr %209, i64 8
  %211 = getelementptr inbounds %class.Component, ptr %210, i32 0, i32 0
  %212 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %211)
          to label %213 unwind label %173

213:                                              ; preds = %206
  %214 = fadd double %207, %212
  invoke void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %196, double noundef %214)
          to label %215 unwind label %173

215:                                              ; preds = %213
  %216 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 4
  %217 = load ptr, ptr %216, align 8, !tbaa !42
  %218 = getelementptr inbounds %class.FunctionalUnit, ptr %217, i32 0, i32 4
  %219 = load double, ptr %218, align 8, !tbaa !68
  store double %219, ptr %15, align 8, !tbaa !9
  %220 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %221 = getelementptr inbounds %class.CoreParameters, ptr %220, i32 0, i32 39
  %222 = load double, ptr %221, align 8, !tbaa !71
  %223 = fcmp ogt double %222, 0.000000e+00
  br i1 %223, label %224, label %256

224:                                              ; preds = %215
  %225 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 2808) #11
          to label %226 unwind label %173

226:                                              ; preds = %224
  %227 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 2
  %228 = load ptr, ptr %227, align 8, !tbaa !65
  %229 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 12
  %230 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %231 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 18
  invoke void @_ZN14FunctionalUnitC1EP7XMLNodeP14InputParameterRK14CoreParametersRK14CoreStatistics7FU_type(ptr noundef nonnull align 8 dereferenceable(2808) %225, ptr noundef %228, ptr noundef %229, ptr noundef nonnull align 8 dereferenceable(480) %230, ptr noundef nonnull align 8 dereferenceable(392) %231, i32 noundef 0)
          to label %232 unwind label %252

232:                                              ; preds = %226
  %233 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 3
  store ptr %225, ptr %233, align 8, !tbaa !41
  %234 = getelementptr inbounds i8, ptr %89, i64 8
  %235 = getelementptr inbounds %class.Component, ptr %234, i32 0, i32 0
  %236 = getelementptr inbounds i8, ptr %89, i64 8
  %237 = getelementptr inbounds %class.Component, ptr %236, i32 0, i32 0
  %238 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %237)
          to label %239 unwind label %173

239:                                              ; preds = %232
  %240 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 3
  %241 = load ptr, ptr %240, align 8, !tbaa !41
  %242 = getelementptr inbounds i8, ptr %241, i64 8
  %243 = getelementptr inbounds %class.Component, ptr %242, i32 0, i32 0
  %244 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %243)
          to label %245 unwind label %173

245:                                              ; preds = %239
  %246 = fadd double %238, %244
  invoke void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %235, double noundef %246)
          to label %247 unwind label %173

247:                                              ; preds = %245
  br label %256

248:                                              ; preds = %187
  %249 = landingpad { ptr, i32 }
          cleanup
  %250 = extractvalue { ptr, i32 } %249, 0
  store ptr %250, ptr %16, align 8
  %251 = extractvalue { ptr, i32 } %249, 1
  store i32 %251, ptr %17, align 4
  call void @_ZdlPvm(ptr noundef %186, i64 noundef 2808) #12
  br label %1581

252:                                              ; preds = %226
  %253 = landingpad { ptr, i32 }
          cleanup
  %254 = extractvalue { ptr, i32 } %253, 0
  store ptr %254, ptr %16, align 8
  %255 = extractvalue { ptr, i32 } %253, 1
  store i32 %255, ptr %17, align 4
  call void @_ZdlPvm(ptr noundef %225, i64 noundef 2808) #12
  br label %1581

256:                                              ; preds = %247, %215
  %257 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %258 = getelementptr inbounds %class.CoreParameters, ptr %257, i32 0, i32 38
  %259 = load i32, ptr %258, align 4, !tbaa !72
  %260 = icmp sgt i32 %259, 0
  br i1 %260, label %261, label %295

261:                                              ; preds = %256
  %262 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 2808) #11
          to label %263 unwind label %173

263:                                              ; preds = %261
  %264 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 2
  %265 = load ptr, ptr %264, align 8, !tbaa !65
  %266 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 12
  %267 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %268 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 18
  invoke void @_ZN14FunctionalUnitC1EP7XMLNodeP14InputParameterRK14CoreParametersRK14CoreStatistics7FU_type(ptr noundef nonnull align 8 dereferenceable(2808) %262, ptr noundef %265, ptr noundef %266, ptr noundef nonnull align 8 dereferenceable(480) %267, ptr noundef nonnull align 8 dereferenceable(392) %268, i32 noundef 2)
          to label %269 unwind label %291

269:                                              ; preds = %263
  %270 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 5
  store ptr %262, ptr %270, align 8, !tbaa !43
  %271 = getelementptr inbounds i8, ptr %89, i64 8
  %272 = getelementptr inbounds %class.Component, ptr %271, i32 0, i32 0
  %273 = getelementptr inbounds i8, ptr %89, i64 8
  %274 = getelementptr inbounds %class.Component, ptr %273, i32 0, i32 0
  %275 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %274)
          to label %276 unwind label %173

276:                                              ; preds = %269
  %277 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 5
  %278 = load ptr, ptr %277, align 8, !tbaa !43
  %279 = getelementptr inbounds i8, ptr %278, i64 8
  %280 = getelementptr inbounds %class.Component, ptr %279, i32 0, i32 0
  %281 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %280)
          to label %282 unwind label %173

282:                                              ; preds = %276
  %283 = fadd double %275, %281
  invoke void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %272, double noundef %283)
          to label %284 unwind label %173

284:                                              ; preds = %282
  %285 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 5
  %286 = load ptr, ptr %285, align 8, !tbaa !43
  %287 = getelementptr inbounds %class.FunctionalUnit, ptr %286, i32 0, i32 4
  %288 = load double, ptr %287, align 8, !tbaa !68
  %289 = load double, ptr %15, align 8, !tbaa !9
  %290 = fadd double %289, %288
  store double %290, ptr %15, align 8, !tbaa !9
  br label %295

291:                                              ; preds = %263
  %292 = landingpad { ptr, i32 }
          cleanup
  %293 = extractvalue { ptr, i32 } %292, 0
  store ptr %293, ptr %16, align 8
  %294 = extractvalue { ptr, i32 } %292, 1
  store i32 %294, ptr %17, align 4
  call void @_ZdlPvm(ptr noundef %262, i64 noundef 2808) #12
  br label %1581

295:                                              ; preds = %284, %256
  %296 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %297 = getelementptr inbounds %class.CoreParameters, ptr %296, i32 0, i32 97
  %298 = load i32, ptr %297, align 4, !tbaa !73
  %299 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 12
  %300 = getelementptr inbounds %class.InputParameter, ptr %299, i32 0, i32 39
  store i32 %298, ptr %300, align 8, !tbaa !74
  %301 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %302 = getelementptr inbounds %class.CoreParameters, ptr %301, i32 0, i32 98
  %303 = load i32, ptr %302, align 8, !tbaa !75
  %304 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 12
  %305 = getelementptr inbounds %class.InputParameter, ptr %304, i32 0, i32 37
  store i32 %303, ptr %305, align 8, !tbaa !76
  %306 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %307 = getelementptr inbounds %class.CoreParameters, ptr %306, i32 0, i32 98
  %308 = load i32, ptr %307, align 8, !tbaa !75
  %309 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 12
  %310 = getelementptr inbounds %class.InputParameter, ptr %309, i32 0, i32 38
  store i32 %308, ptr %310, align 4, !tbaa !77
  %311 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %312 = getelementptr inbounds %class.CoreParameters, ptr %311, i32 0, i32 103
  %313 = load double, ptr %312, align 8, !tbaa !78
  %314 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 5
  %315 = load double, ptr %314, align 8, !tbaa !64
  %316 = fdiv double %313, %315
  %317 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 12
  %318 = getelementptr inbounds %class.InputParameter, ptr %317, i32 0, i32 85
  store double %316, ptr %318, align 8, !tbaa !79
  %319 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %320 = getelementptr inbounds %class.CoreParameters, ptr %319, i32 0, i32 103
  %321 = load double, ptr %320, align 8, !tbaa !78
  %322 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 5
  %323 = load double, ptr %322, align 8, !tbaa !64
  %324 = fdiv double %321, %323
  %325 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 12
  %326 = getelementptr inbounds %class.InputParameter, ptr %325, i32 0, i32 86
  store double %324, ptr %326, align 8, !tbaa !80
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #10
  store double 0.000000e+00, ptr %18, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #10
  store double 0.000000e+00, ptr %19, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #10
  store double 0.000000e+00, ptr %20, align 8, !tbaa !9
  %327 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 2
  %328 = load ptr, ptr %327, align 8, !tbaa !40
  %329 = icmp ne ptr %328, null
  br i1 %329, label %330, label %343

330:                                              ; preds = %295
  %331 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 2
  %332 = load ptr, ptr %331, align 8, !tbaa !40
  %333 = getelementptr inbounds %class.SchedulerU, ptr %332, i32 0, i32 12
  %334 = load double, ptr %333, align 8, !tbaa !81
  store double %334, ptr %18, align 8, !tbaa !9
  %335 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 2
  %336 = load ptr, ptr %335, align 8, !tbaa !40
  %337 = getelementptr inbounds %class.SchedulerU, ptr %336, i32 0, i32 14
  %338 = load double, ptr %337, align 8, !tbaa !83
  store double %338, ptr %19, align 8, !tbaa !9
  %339 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 2
  %340 = load ptr, ptr %339, align 8, !tbaa !40
  %341 = getelementptr inbounds %class.SchedulerU, ptr %340, i32 0, i32 13
  %342 = load double, ptr %341, align 8, !tbaa !84
  store double %342, ptr %20, align 8, !tbaa !9
  br label %343

343:                                              ; preds = %330, %295
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #10
  %344 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %345 = getelementptr inbounds %class.CoreParameters, ptr %344, i32 0, i32 99
  %346 = load double, ptr %345, align 8, !tbaa !85
  store double %346, ptr %21, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #10
  %347 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %348 = getelementptr inbounds %class.CoreParameters, ptr %347, i32 0, i32 100
  %349 = load double, ptr %348, align 8, !tbaa !86
  store double %349, ptr %22, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #10
  %350 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %351 = getelementptr inbounds %class.CoreParameters, ptr %350, i32 0, i32 101
  %352 = load i32, ptr %351, align 8, !tbaa !87
  store i32 %352, ptr %23, align 4, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #10
  %353 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %354 = getelementptr inbounds %class.CoreParameters, ptr %353, i32 0, i32 102
  %355 = load double, ptr %354, align 8, !tbaa !88
  store double %355, ptr %24, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #10
  %356 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %357 = getelementptr inbounds %class.CoreParameters, ptr %356, i32 0, i32 96
  %358 = load i32, ptr %357, align 8, !tbaa !89
  store i32 %358, ptr %25, align 4, !tbaa !52
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #10
  %359 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %360 = getelementptr inbounds %class.CoreParameters, ptr %359, i32 0, i32 3
  %361 = load i32, ptr %360, align 4, !tbaa !66
  %362 = icmp eq i32 %361, 1
  br i1 %362, label %363, label %710

363:                                              ; preds = %343
  %364 = load i32, ptr @_ZN14McPATComponent15data_path_widthE, align 4, !tbaa !51
  %365 = sitofp i32 %364 to double
  %366 = fdiv double %365, 3.200000e+01
  %367 = call double @llvm.ceil.f64(double %366)
  %368 = fmul double %367, 3.200000e+01
  %369 = fptosi double %368 to i32
  store i32 %369, ptr %26, align 4, !tbaa !51
  %370 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 1
  %371 = load ptr, ptr %370, align 8, !tbaa !15
  %372 = getelementptr inbounds %class.RegFU, ptr %371, i32 0, i32 10
  %373 = load double, ptr %372, align 8, !tbaa !90
  %374 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 4
  %375 = load ptr, ptr %374, align 8, !tbaa !42
  %376 = getelementptr inbounds %class.FunctionalUnit, ptr %375, i32 0, i32 4
  %377 = load double, ptr %376, align 8, !tbaa !68
  %378 = fadd double %373, %377
  %379 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 16
  %380 = load double, ptr %379, align 8, !tbaa !53
  %381 = fadd double %378, %380
  store double %381, ptr %27, align 8, !tbaa !9
  %382 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 10288) #11
          to label %383 unwind label %546

383:                                              ; preds = %363
  store i1 true, ptr %30, align 1
  %384 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 2
  %385 = load ptr, ptr %384, align 8, !tbaa !65
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef @.str.71, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %386 unwind label %550

386:                                              ; preds = %383
  %387 = load double, ptr %21, align 8, !tbaa !9
  %388 = load double, ptr %22, align 8, !tbaa !9
  %389 = load i32, ptr %26, align 4, !tbaa !51
  %390 = load double, ptr %27, align 8, !tbaa !9
  %391 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 12
  %392 = load i32, ptr %23, align 4, !tbaa !51
  %393 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 5
  %394 = load double, ptr %393, align 8, !tbaa !64
  %395 = load double, ptr %24, align 8, !tbaa !9
  %396 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %397 = getelementptr inbounds %class.CoreParameters, ptr %396, i32 0, i32 0
  %398 = load i8, ptr %397, align 8, !tbaa !92, !range !60, !noundef !61
  %399 = trunc i8 %398 to i1
  %400 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %401 = getelementptr inbounds %class.CoreParameters, ptr %400, i32 0, i32 3
  %402 = load i32, ptr %401, align 4, !tbaa !66
  %403 = load i32, ptr %25, align 4, !tbaa !52
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %382, ptr noundef %385, ptr noundef %28, i32 noundef 0, double noundef %387, double noundef %388, i32 noundef %389, double noundef %390, ptr noundef %391, i32 noundef %392, double noundef %394, i1 noundef zeroext false, double noundef %395, i1 noundef zeroext %399, i32 noundef %402, i32 noundef %403, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef getelementptr inbounds (%class.TechnologyParameter, ptr @g_tp, i32 0, i32 48))
          to label %404 unwind label %554

404:                                              ; preds = %386
  store i1 false, ptr %30, align 1
  %405 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 6
  store ptr %382, ptr %405, align 8, !tbaa !44
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #10
  %406 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %407 = getelementptr inbounds %class.CoreParameters, ptr %406, i32 0, i32 26
  %408 = load i32, ptr %407, align 4, !tbaa !93
  store i32 %408, ptr %26, align 4, !tbaa !51
  %409 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 1
  %410 = load ptr, ptr %409, align 8, !tbaa !15
  %411 = getelementptr inbounds %class.RegFU, ptr %410, i32 0, i32 10
  %412 = load double, ptr %411, align 8, !tbaa !90
  %413 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 4
  %414 = load ptr, ptr %413, align 8, !tbaa !42
  %415 = getelementptr inbounds %class.FunctionalUnit, ptr %414, i32 0, i32 4
  %416 = load double, ptr %415, align 8, !tbaa !68
  %417 = fadd double %412, %416
  %418 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 16
  %419 = load double, ptr %418, align 8, !tbaa !53
  %420 = fadd double %417, %419
  %421 = load double, ptr %18, align 8, !tbaa !9
  %422 = fadd double %420, %421
  store double %422, ptr %27, align 8, !tbaa !9
  %423 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 10288) #11
          to label %424 unwind label %546

424:                                              ; preds = %404
  store i1 true, ptr %33, align 1
  %425 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 2
  %426 = load ptr, ptr %425, align 8, !tbaa !65
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef @.str.72, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %427 unwind label %562

427:                                              ; preds = %424
  %428 = load double, ptr %21, align 8, !tbaa !9
  %429 = load double, ptr %22, align 8, !tbaa !9
  %430 = load i32, ptr %26, align 4, !tbaa !51
  %431 = load double, ptr %27, align 8, !tbaa !9
  %432 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 12
  %433 = load i32, ptr %23, align 4, !tbaa !51
  %434 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 5
  %435 = load double, ptr %434, align 8, !tbaa !64
  %436 = load double, ptr %24, align 8, !tbaa !9
  %437 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %438 = getelementptr inbounds %class.CoreParameters, ptr %437, i32 0, i32 0
  %439 = load i8, ptr %438, align 8, !tbaa !92, !range !60, !noundef !61
  %440 = trunc i8 %439 to i1
  %441 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %442 = getelementptr inbounds %class.CoreParameters, ptr %441, i32 0, i32 3
  %443 = load i32, ptr %442, align 4, !tbaa !66
  %444 = load i32, ptr %25, align 4, !tbaa !52
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %423, ptr noundef %426, ptr noundef %31, i32 noundef 0, double noundef %428, double noundef %429, i32 noundef %430, double noundef %431, ptr noundef %432, i32 noundef %433, double noundef %435, i1 noundef zeroext false, double noundef %436, i1 noundef zeroext %440, i32 noundef %443, i32 noundef %444, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef getelementptr inbounds (%class.TechnologyParameter, ptr @g_tp, i32 0, i32 48))
          to label %445 unwind label %566

445:                                              ; preds = %427
  store i1 false, ptr %33, align 1
  %446 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 7
  store ptr %423, ptr %446, align 8, !tbaa !45
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #10
  %447 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %448 = getelementptr inbounds %class.CoreParameters, ptr %447, i32 0, i32 38
  %449 = load i32, ptr %448, align 4, !tbaa !72
  %450 = icmp sgt i32 %449, 0
  br i1 %450, label %451, label %598

451:                                              ; preds = %445
  %452 = load i32, ptr @_ZN14McPATComponent15data_path_widthE, align 4, !tbaa !51
  %453 = sitofp i32 %452 to double
  %454 = fdiv double %453, 3.200000e+01
  %455 = call double @llvm.ceil.f64(double %454)
  %456 = fmul double %455, 3.200000e+01
  %457 = fmul double %456, 1.500000e+00
  %458 = fptosi double %457 to i32
  store i32 %458, ptr %26, align 4, !tbaa !51
  %459 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 1
  %460 = load ptr, ptr %459, align 8, !tbaa !15
  %461 = getelementptr inbounds %class.RegFU, ptr %460, i32 0, i32 11
  %462 = load double, ptr %461, align 8, !tbaa !94
  %463 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 4
  %464 = load ptr, ptr %463, align 8, !tbaa !42
  %465 = getelementptr inbounds %class.FunctionalUnit, ptr %464, i32 0, i32 4
  %466 = load double, ptr %465, align 8, !tbaa !68
  %467 = fadd double %462, %466
  %468 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 5
  %469 = load ptr, ptr %468, align 8, !tbaa !43
  %470 = getelementptr inbounds %class.FunctionalUnit, ptr %469, i32 0, i32 4
  %471 = load double, ptr %470, align 8, !tbaa !68
  %472 = fadd double %467, %471
  %473 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 16
  %474 = load double, ptr %473, align 8, !tbaa !53
  %475 = fadd double %472, %474
  store double %475, ptr %27, align 8, !tbaa !9
  %476 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 10288) #11
          to label %477 unwind label %546

477:                                              ; preds = %451
  store i1 true, ptr %36, align 1
  %478 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 2
  %479 = load ptr, ptr %478, align 8, !tbaa !65
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef @.str.73, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %480 unwind label %574

480:                                              ; preds = %477
  %481 = load double, ptr %21, align 8, !tbaa !9
  %482 = load double, ptr %22, align 8, !tbaa !9
  %483 = load i32, ptr %26, align 4, !tbaa !51
  %484 = load double, ptr %27, align 8, !tbaa !9
  %485 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 12
  %486 = load i32, ptr %23, align 4, !tbaa !51
  %487 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 5
  %488 = load double, ptr %487, align 8, !tbaa !64
  %489 = load double, ptr %24, align 8, !tbaa !9
  %490 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %491 = getelementptr inbounds %class.CoreParameters, ptr %490, i32 0, i32 0
  %492 = load i8, ptr %491, align 8, !tbaa !92, !range !60, !noundef !61
  %493 = trunc i8 %492 to i1
  %494 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %495 = getelementptr inbounds %class.CoreParameters, ptr %494, i32 0, i32 3
  %496 = load i32, ptr %495, align 4, !tbaa !66
  %497 = load i32, ptr %25, align 4, !tbaa !52
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %476, ptr noundef %479, ptr noundef %34, i32 noundef 0, double noundef %481, double noundef %482, i32 noundef %483, double noundef %484, ptr noundef %485, i32 noundef %486, double noundef %488, i1 noundef zeroext false, double noundef %489, i1 noundef zeroext %493, i32 noundef %496, i32 noundef %497, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef getelementptr inbounds (%class.TechnologyParameter, ptr @g_tp, i32 0, i32 48))
          to label %498 unwind label %578

498:                                              ; preds = %480
  store i1 false, ptr %36, align 1
  %499 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 8
  store ptr %476, ptr %499, align 8, !tbaa !46
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #10
  %500 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %501 = getelementptr inbounds %class.CoreParameters, ptr %500, i32 0, i32 26
  %502 = load i32, ptr %501, align 4, !tbaa !93
  store i32 %502, ptr %26, align 4, !tbaa !51
  %503 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 1
  %504 = load ptr, ptr %503, align 8, !tbaa !15
  %505 = getelementptr inbounds %class.RegFU, ptr %504, i32 0, i32 11
  %506 = load double, ptr %505, align 8, !tbaa !94
  %507 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 4
  %508 = load ptr, ptr %507, align 8, !tbaa !42
  %509 = getelementptr inbounds %class.FunctionalUnit, ptr %508, i32 0, i32 4
  %510 = load double, ptr %509, align 8, !tbaa !68
  %511 = fadd double %506, %510
  %512 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 5
  %513 = load ptr, ptr %512, align 8, !tbaa !43
  %514 = getelementptr inbounds %class.FunctionalUnit, ptr %513, i32 0, i32 4
  %515 = load double, ptr %514, align 8, !tbaa !68
  %516 = fadd double %511, %515
  %517 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 16
  %518 = load double, ptr %517, align 8, !tbaa !53
  %519 = fadd double %516, %518
  %520 = load double, ptr %18, align 8, !tbaa !9
  %521 = fadd double %519, %520
  store double %521, ptr %27, align 8, !tbaa !9
  %522 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 10288) #11
          to label %523 unwind label %546

523:                                              ; preds = %498
  store i1 true, ptr %39, align 1
  %524 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 2
  %525 = load ptr, ptr %524, align 8, !tbaa !65
  call void @llvm.lifetime.start.p0(i64 1, ptr %38) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef @.str.74, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %526 unwind label %586

526:                                              ; preds = %523
  %527 = load double, ptr %21, align 8, !tbaa !9
  %528 = load double, ptr %22, align 8, !tbaa !9
  %529 = load i32, ptr %26, align 4, !tbaa !51
  %530 = load double, ptr %27, align 8, !tbaa !9
  %531 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 12
  %532 = load i32, ptr %23, align 4, !tbaa !51
  %533 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 5
  %534 = load double, ptr %533, align 8, !tbaa !64
  %535 = load double, ptr %24, align 8, !tbaa !9
  %536 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %537 = getelementptr inbounds %class.CoreParameters, ptr %536, i32 0, i32 0
  %538 = load i8, ptr %537, align 8, !tbaa !92, !range !60, !noundef !61
  %539 = trunc i8 %538 to i1
  %540 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %541 = getelementptr inbounds %class.CoreParameters, ptr %540, i32 0, i32 3
  %542 = load i32, ptr %541, align 4, !tbaa !66
  %543 = load i32, ptr %25, align 4, !tbaa !52
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %522, ptr noundef %525, ptr noundef %37, i32 noundef 0, double noundef %527, double noundef %528, i32 noundef %529, double noundef %530, ptr noundef %531, i32 noundef %532, double noundef %534, i1 noundef zeroext false, double noundef %535, i1 noundef zeroext %539, i32 noundef %542, i32 noundef %543, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef getelementptr inbounds (%class.TechnologyParameter, ptr @g_tp, i32 0, i32 48))
          to label %544 unwind label %590

544:                                              ; preds = %526
  store i1 false, ptr %39, align 1
  %545 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 9
  store ptr %522, ptr %545, align 8, !tbaa !47
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #10
  br label %598

546:                                              ; preds = %1575, %1568, %1562, %1556, %1548, %1541, %1535, %1529, %1522, %1515, %1509, %1503, %1354, %1314, %1309, %1206, %1161, %1156, %1107, %1067, %1062, %992, %959, %954, %851, %810, %805, %756, %720, %715, %642, %603, %498, %451, %404, %363
  %547 = landingpad { ptr, i32 }
          cleanup
  %548 = extractvalue { ptr, i32 } %547, 0
  store ptr %548, ptr %16, align 8
  %549 = extractvalue { ptr, i32 } %547, 1
  store i32 %549, ptr %17, align 4
  br label %1580

550:                                              ; preds = %383
  %551 = landingpad { ptr, i32 }
          cleanup
  %552 = extractvalue { ptr, i32 } %551, 0
  store ptr %552, ptr %16, align 8
  %553 = extractvalue { ptr, i32 } %551, 1
  store i32 %553, ptr %17, align 4
  br label %558

554:                                              ; preds = %386
  %555 = landingpad { ptr, i32 }
          cleanup
  %556 = extractvalue { ptr, i32 } %555, 0
  store ptr %556, ptr %16, align 8
  %557 = extractvalue { ptr, i32 } %555, 1
  store i32 %557, ptr %17, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #10
  br label %558

558:                                              ; preds = %554, %550
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #10
  %559 = load i1, ptr %30, align 1
  br i1 %559, label %560, label %561

560:                                              ; preds = %558
  call void @_ZdlPvm(ptr noundef %382, i64 noundef 10288) #12
  br label %561

561:                                              ; preds = %560, %558
  br label %1580

562:                                              ; preds = %424
  %563 = landingpad { ptr, i32 }
          cleanup
  %564 = extractvalue { ptr, i32 } %563, 0
  store ptr %564, ptr %16, align 8
  %565 = extractvalue { ptr, i32 } %563, 1
  store i32 %565, ptr %17, align 4
  br label %570

566:                                              ; preds = %427
  %567 = landingpad { ptr, i32 }
          cleanup
  %568 = extractvalue { ptr, i32 } %567, 0
  store ptr %568, ptr %16, align 8
  %569 = extractvalue { ptr, i32 } %567, 1
  store i32 %569, ptr %17, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #10
  br label %570

570:                                              ; preds = %566, %562
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #10
  %571 = load i1, ptr %33, align 1
  br i1 %571, label %572, label %573

572:                                              ; preds = %570
  call void @_ZdlPvm(ptr noundef %423, i64 noundef 10288) #12
  br label %573

573:                                              ; preds = %572, %570
  br label %1580

574:                                              ; preds = %477
  %575 = landingpad { ptr, i32 }
          cleanup
  %576 = extractvalue { ptr, i32 } %575, 0
  store ptr %576, ptr %16, align 8
  %577 = extractvalue { ptr, i32 } %575, 1
  store i32 %577, ptr %17, align 4
  br label %582

578:                                              ; preds = %480
  %579 = landingpad { ptr, i32 }
          cleanup
  %580 = extractvalue { ptr, i32 } %579, 0
  store ptr %580, ptr %16, align 8
  %581 = extractvalue { ptr, i32 } %579, 1
  store i32 %581, ptr %17, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #10
  br label %582

582:                                              ; preds = %578, %574
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #10
  %583 = load i1, ptr %36, align 1
  br i1 %583, label %584, label %585

584:                                              ; preds = %582
  call void @_ZdlPvm(ptr noundef %476, i64 noundef 10288) #12
  br label %585

585:                                              ; preds = %584, %582
  br label %1580

586:                                              ; preds = %523
  %587 = landingpad { ptr, i32 }
          cleanup
  %588 = extractvalue { ptr, i32 } %587, 0
  store ptr %588, ptr %16, align 8
  %589 = extractvalue { ptr, i32 } %587, 1
  store i32 %589, ptr %17, align 4
  br label %594

590:                                              ; preds = %526
  %591 = landingpad { ptr, i32 }
          cleanup
  %592 = extractvalue { ptr, i32 } %591, 0
  store ptr %592, ptr %16, align 8
  %593 = extractvalue { ptr, i32 } %591, 1
  store i32 %593, ptr %17, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #10
  br label %594

594:                                              ; preds = %590, %586
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #10
  %595 = load i1, ptr %39, align 1
  br i1 %595, label %596, label %597

596:                                              ; preds = %594
  call void @_ZdlPvm(ptr noundef %522, i64 noundef 10288) #12
  br label %597

597:                                              ; preds = %596, %594
  br label %1580

598:                                              ; preds = %544, %445
  %599 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %600 = getelementptr inbounds %class.CoreParameters, ptr %599, i32 0, i32 39
  %601 = load double, ptr %600, align 8, !tbaa !71
  %602 = fcmp ogt double %601, 0.000000e+00
  br i1 %602, label %603, label %709

603:                                              ; preds = %598
  %604 = load i32, ptr @_ZN14McPATComponent15data_path_widthE, align 4, !tbaa !51
  %605 = sitofp i32 %604 to double
  %606 = fdiv double %605, 3.200000e+01
  %607 = call double @llvm.ceil.f64(double %606)
  %608 = fmul double %607, 3.200000e+01
  %609 = fmul double %608, 1.500000e+00
  %610 = fptosi double %609 to i32
  store i32 %610, ptr %26, align 4, !tbaa !51
  %611 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 1
  %612 = load ptr, ptr %611, align 8, !tbaa !15
  %613 = getelementptr inbounds %class.RegFU, ptr %612, i32 0, i32 11
  %614 = load double, ptr %613, align 8, !tbaa !94
  %615 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 3
  %616 = load ptr, ptr %615, align 8, !tbaa !41
  %617 = getelementptr inbounds %class.FunctionalUnit, ptr %616, i32 0, i32 4
  %618 = load double, ptr %617, align 8, !tbaa !68
  %619 = fadd double %614, %618
  store double %619, ptr %27, align 8, !tbaa !9
  %620 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 10288) #11
          to label %621 unwind label %546

621:                                              ; preds = %603
  store i1 true, ptr %42, align 1
  %622 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 2
  %623 = load ptr, ptr %622, align 8, !tbaa !65
  call void @llvm.lifetime.start.p0(i64 1, ptr %41) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef @.str.75, ptr noundef nonnull align 1 dereferenceable(1) %41)
          to label %624 unwind label %685

624:                                              ; preds = %621
  %625 = load double, ptr %21, align 8, !tbaa !9
  %626 = load double, ptr %22, align 8, !tbaa !9
  %627 = load i32, ptr %26, align 4, !tbaa !51
  %628 = load double, ptr %27, align 8, !tbaa !9
  %629 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 12
  %630 = load i32, ptr %23, align 4, !tbaa !51
  %631 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 5
  %632 = load double, ptr %631, align 8, !tbaa !64
  %633 = load double, ptr %24, align 8, !tbaa !9
  %634 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %635 = getelementptr inbounds %class.CoreParameters, ptr %634, i32 0, i32 0
  %636 = load i8, ptr %635, align 8, !tbaa !92, !range !60, !noundef !61
  %637 = trunc i8 %636 to i1
  %638 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %639 = getelementptr inbounds %class.CoreParameters, ptr %638, i32 0, i32 3
  %640 = load i32, ptr %639, align 4, !tbaa !66
  %641 = load i32, ptr %25, align 4, !tbaa !52
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %620, ptr noundef %623, ptr noundef %40, i32 noundef 0, double noundef %625, double noundef %626, i32 noundef %627, double noundef %628, ptr noundef %629, i32 noundef %630, double noundef %632, i1 noundef zeroext false, double noundef %633, i1 noundef zeroext %637, i32 noundef %640, i32 noundef %641, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef getelementptr inbounds (%class.TechnologyParameter, ptr @g_tp, i32 0, i32 48))
          to label %642 unwind label %689

642:                                              ; preds = %624
  store i1 false, ptr %42, align 1
  %643 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 10
  store ptr %620, ptr %643, align 8, !tbaa !48
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #10
  %644 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %645 = getelementptr inbounds %class.CoreParameters, ptr %644, i32 0, i32 26
  %646 = load i32, ptr %645, align 4, !tbaa !93
  store i32 %646, ptr %26, align 4, !tbaa !51
  %647 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 1
  %648 = load ptr, ptr %647, align 8, !tbaa !15
  %649 = getelementptr inbounds %class.RegFU, ptr %648, i32 0, i32 11
  %650 = load double, ptr %649, align 8, !tbaa !94
  %651 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 3
  %652 = load ptr, ptr %651, align 8, !tbaa !41
  %653 = getelementptr inbounds %class.FunctionalUnit, ptr %652, i32 0, i32 4
  %654 = load double, ptr %653, align 8, !tbaa !68
  %655 = fadd double %650, %654
  %656 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 16
  %657 = load double, ptr %656, align 8, !tbaa !53
  %658 = fadd double %655, %657
  %659 = load double, ptr %18, align 8, !tbaa !9
  %660 = fadd double %658, %659
  store double %660, ptr %27, align 8, !tbaa !9
  %661 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 10288) #11
          to label %662 unwind label %546

662:                                              ; preds = %642
  store i1 true, ptr %45, align 1
  %663 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 2
  %664 = load ptr, ptr %663, align 8, !tbaa !65
  call void @llvm.lifetime.start.p0(i64 1, ptr %44) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef @.str.76, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %665 unwind label %697

665:                                              ; preds = %662
  %666 = load double, ptr %21, align 8, !tbaa !9
  %667 = load double, ptr %22, align 8, !tbaa !9
  %668 = load i32, ptr %26, align 4, !tbaa !51
  %669 = load double, ptr %27, align 8, !tbaa !9
  %670 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 12
  %671 = load i32, ptr %23, align 4, !tbaa !51
  %672 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 5
  %673 = load double, ptr %672, align 8, !tbaa !64
  %674 = load double, ptr %24, align 8, !tbaa !9
  %675 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %676 = getelementptr inbounds %class.CoreParameters, ptr %675, i32 0, i32 0
  %677 = load i8, ptr %676, align 8, !tbaa !92, !range !60, !noundef !61
  %678 = trunc i8 %677 to i1
  %679 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %680 = getelementptr inbounds %class.CoreParameters, ptr %679, i32 0, i32 3
  %681 = load i32, ptr %680, align 4, !tbaa !66
  %682 = load i32, ptr %25, align 4, !tbaa !52
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %661, ptr noundef %664, ptr noundef %43, i32 noundef 0, double noundef %666, double noundef %667, i32 noundef %668, double noundef %669, ptr noundef %670, i32 noundef %671, double noundef %673, i1 noundef zeroext false, double noundef %674, i1 noundef zeroext %678, i32 noundef %681, i32 noundef %682, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef getelementptr inbounds (%class.TechnologyParameter, ptr @g_tp, i32 0, i32 48))
          to label %683 unwind label %701

683:                                              ; preds = %665
  store i1 false, ptr %45, align 1
  %684 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 11
  store ptr %661, ptr %684, align 8, !tbaa !49
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #10
  br label %709

685:                                              ; preds = %621
  %686 = landingpad { ptr, i32 }
          cleanup
  %687 = extractvalue { ptr, i32 } %686, 0
  store ptr %687, ptr %16, align 8
  %688 = extractvalue { ptr, i32 } %686, 1
  store i32 %688, ptr %17, align 4
  br label %693

689:                                              ; preds = %624
  %690 = landingpad { ptr, i32 }
          cleanup
  %691 = extractvalue { ptr, i32 } %690, 0
  store ptr %691, ptr %16, align 8
  %692 = extractvalue { ptr, i32 } %690, 1
  store i32 %692, ptr %17, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  br label %693

693:                                              ; preds = %689, %685
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #10
  %694 = load i1, ptr %42, align 1
  br i1 %694, label %695, label %696

695:                                              ; preds = %693
  call void @_ZdlPvm(ptr noundef %620, i64 noundef 10288) #12
  br label %696

696:                                              ; preds = %695, %693
  br label %1580

697:                                              ; preds = %662
  %698 = landingpad { ptr, i32 }
          cleanup
  %699 = extractvalue { ptr, i32 } %698, 0
  store ptr %699, ptr %16, align 8
  %700 = extractvalue { ptr, i32 } %698, 1
  store i32 %700, ptr %17, align 4
  br label %705

701:                                              ; preds = %665
  %702 = landingpad { ptr, i32 }
          cleanup
  %703 = extractvalue { ptr, i32 } %702, 0
  store ptr %703, ptr %16, align 8
  %704 = extractvalue { ptr, i32 } %702, 1
  store i32 %704, ptr %17, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #10
  br label %705

705:                                              ; preds = %701, %697
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #10
  %706 = load i1, ptr %45, align 1
  br i1 %706, label %707, label %708

707:                                              ; preds = %705
  call void @_ZdlPvm(ptr noundef %661, i64 noundef 10288) #12
  br label %708

708:                                              ; preds = %707, %705
  br label %1580

709:                                              ; preds = %683, %598
  br label %1425

710:                                              ; preds = %343
  %711 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %712 = getelementptr inbounds %class.CoreParameters, ptr %711, i32 0, i32 5
  %713 = load i32, ptr %712, align 4, !tbaa !95
  %714 = icmp eq i32 %713, 0
  br i1 %714, label %715, label %1062

715:                                              ; preds = %710
  %716 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %717 = getelementptr inbounds %class.CoreParameters, ptr %716, i32 0, i32 40
  %718 = load i32, ptr %717, align 8, !tbaa !96
  %719 = invoke noundef double @_ZSt4ceilIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_(i32 noundef %718)
          to label %720 unwind label %546

720:                                              ; preds = %715
  %721 = fptosi double %719 to i32
  store i32 %721, ptr %26, align 4, !tbaa !51
  %722 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 1
  %723 = load ptr, ptr %722, align 8, !tbaa !15
  %724 = getelementptr inbounds %class.RegFU, ptr %723, i32 0, i32 10
  %725 = load double, ptr %724, align 8, !tbaa !90
  %726 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 4
  %727 = load ptr, ptr %726, align 8, !tbaa !42
  %728 = getelementptr inbounds %class.FunctionalUnit, ptr %727, i32 0, i32 4
  %729 = load double, ptr %728, align 8, !tbaa !68
  %730 = fadd double %725, %729
  %731 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 16
  %732 = load double, ptr %731, align 8, !tbaa !53
  %733 = fadd double %730, %732
  store double %733, ptr %27, align 8, !tbaa !9
  %734 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 10288) #11
          to label %735 unwind label %546

735:                                              ; preds = %720
  store i1 true, ptr %48, align 1
  %736 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 2
  %737 = load ptr, ptr %736, align 8, !tbaa !65
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef @.str.71, ptr noundef nonnull align 1 dereferenceable(1) %47)
          to label %738 unwind label %901

738:                                              ; preds = %735
  %739 = load double, ptr %21, align 8, !tbaa !9
  %740 = load double, ptr %22, align 8, !tbaa !9
  %741 = load i32, ptr %26, align 4, !tbaa !51
  %742 = load double, ptr %27, align 8, !tbaa !9
  %743 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 12
  %744 = load i32, ptr %23, align 4, !tbaa !51
  %745 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 5
  %746 = load double, ptr %745, align 8, !tbaa !64
  %747 = load double, ptr %24, align 8, !tbaa !9
  %748 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %749 = getelementptr inbounds %class.CoreParameters, ptr %748, i32 0, i32 0
  %750 = load i8, ptr %749, align 8, !tbaa !92, !range !60, !noundef !61
  %751 = trunc i8 %750 to i1
  %752 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %753 = getelementptr inbounds %class.CoreParameters, ptr %752, i32 0, i32 3
  %754 = load i32, ptr %753, align 4, !tbaa !66
  %755 = load i32, ptr %25, align 4, !tbaa !52
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %734, ptr noundef %737, ptr noundef %46, i32 noundef 0, double noundef %739, double noundef %740, i32 noundef %741, double noundef %742, ptr noundef %743, i32 noundef %744, double noundef %746, i1 noundef zeroext false, double noundef %747, i1 noundef zeroext %751, i32 noundef %754, i32 noundef %755, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef getelementptr inbounds (%class.TechnologyParameter, ptr @g_tp, i32 0, i32 48))
          to label %756 unwind label %905

756:                                              ; preds = %738
  store i1 false, ptr %48, align 1
  %757 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 6
  store ptr %734, ptr %757, align 8, !tbaa !44
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #10
  %758 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %759 = getelementptr inbounds %class.CoreParameters, ptr %758, i32 0, i32 11
  %760 = load i32, ptr %759, align 8, !tbaa !97
  store i32 %760, ptr %26, align 4, !tbaa !51
  %761 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 1
  %762 = load ptr, ptr %761, align 8, !tbaa !15
  %763 = getelementptr inbounds %class.RegFU, ptr %762, i32 0, i32 10
  %764 = load double, ptr %763, align 8, !tbaa !90
  %765 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 4
  %766 = load ptr, ptr %765, align 8, !tbaa !42
  %767 = getelementptr inbounds %class.FunctionalUnit, ptr %766, i32 0, i32 4
  %768 = load double, ptr %767, align 8, !tbaa !68
  %769 = fadd double %764, %768
  %770 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 16
  %771 = load double, ptr %770, align 8, !tbaa !53
  %772 = fadd double %769, %771
  %773 = load double, ptr %18, align 8, !tbaa !9
  %774 = fadd double %772, %773
  %775 = load double, ptr %19, align 8, !tbaa !9
  %776 = fadd double %774, %775
  store double %776, ptr %27, align 8, !tbaa !9
  %777 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 10288) #11
          to label %778 unwind label %546

778:                                              ; preds = %756
  store i1 true, ptr %51, align 1
  %779 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 2
  %780 = load ptr, ptr %779, align 8, !tbaa !65
  call void @llvm.lifetime.start.p0(i64 1, ptr %50) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef @.str.72, ptr noundef nonnull align 1 dereferenceable(1) %50)
          to label %781 unwind label %913

781:                                              ; preds = %778
  %782 = load double, ptr %21, align 8, !tbaa !9
  %783 = load double, ptr %22, align 8, !tbaa !9
  %784 = load i32, ptr %26, align 4, !tbaa !51
  %785 = load double, ptr %27, align 8, !tbaa !9
  %786 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 12
  %787 = load i32, ptr %23, align 4, !tbaa !51
  %788 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 5
  %789 = load double, ptr %788, align 8, !tbaa !64
  %790 = load double, ptr %24, align 8, !tbaa !9
  %791 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %792 = getelementptr inbounds %class.CoreParameters, ptr %791, i32 0, i32 0
  %793 = load i8, ptr %792, align 8, !tbaa !92, !range !60, !noundef !61
  %794 = trunc i8 %793 to i1
  %795 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %796 = getelementptr inbounds %class.CoreParameters, ptr %795, i32 0, i32 3
  %797 = load i32, ptr %796, align 4, !tbaa !66
  %798 = load i32, ptr %25, align 4, !tbaa !52
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %777, ptr noundef %780, ptr noundef %49, i32 noundef 0, double noundef %782, double noundef %783, i32 noundef %784, double noundef %785, ptr noundef %786, i32 noundef %787, double noundef %789, i1 noundef zeroext false, double noundef %790, i1 noundef zeroext %794, i32 noundef %797, i32 noundef %798, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef getelementptr inbounds (%class.TechnologyParameter, ptr @g_tp, i32 0, i32 48))
          to label %799 unwind label %917

799:                                              ; preds = %781
  store i1 false, ptr %51, align 1
  %800 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 7
  store ptr %777, ptr %800, align 8, !tbaa !45
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %50) #10
  %801 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %802 = getelementptr inbounds %class.CoreParameters, ptr %801, i32 0, i32 38
  %803 = load i32, ptr %802, align 4, !tbaa !72
  %804 = icmp sgt i32 %803, 0
  br i1 %804, label %805, label %949

805:                                              ; preds = %799
  %806 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %807 = getelementptr inbounds %class.CoreParameters, ptr %806, i32 0, i32 40
  %808 = load i32, ptr %807, align 8, !tbaa !96
  %809 = invoke noundef double @_ZSt4ceilIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_(i32 noundef %808)
          to label %810 unwind label %546

810:                                              ; preds = %805
  %811 = fptosi double %809 to i32
  store i32 %811, ptr %26, align 4, !tbaa !51
  %812 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 1
  %813 = load ptr, ptr %812, align 8, !tbaa !15
  %814 = getelementptr inbounds %class.RegFU, ptr %813, i32 0, i32 10
  %815 = load double, ptr %814, align 8, !tbaa !90
  %816 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 4
  %817 = load ptr, ptr %816, align 8, !tbaa !42
  %818 = getelementptr inbounds %class.FunctionalUnit, ptr %817, i32 0, i32 4
  %819 = load double, ptr %818, align 8, !tbaa !68
  %820 = fadd double %815, %819
  %821 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 5
  %822 = load ptr, ptr %821, align 8, !tbaa !43
  %823 = getelementptr inbounds %class.FunctionalUnit, ptr %822, i32 0, i32 4
  %824 = load double, ptr %823, align 8, !tbaa !68
  %825 = fadd double %820, %824
  %826 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 16
  %827 = load double, ptr %826, align 8, !tbaa !53
  %828 = fadd double %825, %827
  store double %828, ptr %27, align 8, !tbaa !9
  %829 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 10288) #11
          to label %830 unwind label %546

830:                                              ; preds = %810
  store i1 true, ptr %54, align 1
  %831 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 2
  %832 = load ptr, ptr %831, align 8, !tbaa !65
  call void @llvm.lifetime.start.p0(i64 1, ptr %53) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef @.str.73, ptr noundef nonnull align 1 dereferenceable(1) %53)
          to label %833 unwind label %925

833:                                              ; preds = %830
  %834 = load double, ptr %21, align 8, !tbaa !9
  %835 = load double, ptr %22, align 8, !tbaa !9
  %836 = load i32, ptr %26, align 4, !tbaa !51
  %837 = load double, ptr %27, align 8, !tbaa !9
  %838 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 12
  %839 = load i32, ptr %23, align 4, !tbaa !51
  %840 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 5
  %841 = load double, ptr %840, align 8, !tbaa !64
  %842 = load double, ptr %24, align 8, !tbaa !9
  %843 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %844 = getelementptr inbounds %class.CoreParameters, ptr %843, i32 0, i32 0
  %845 = load i8, ptr %844, align 8, !tbaa !92, !range !60, !noundef !61
  %846 = trunc i8 %845 to i1
  %847 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %848 = getelementptr inbounds %class.CoreParameters, ptr %847, i32 0, i32 3
  %849 = load i32, ptr %848, align 4, !tbaa !66
  %850 = load i32, ptr %25, align 4, !tbaa !52
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %829, ptr noundef %832, ptr noundef %52, i32 noundef 0, double noundef %834, double noundef %835, i32 noundef %836, double noundef %837, ptr noundef %838, i32 noundef %839, double noundef %841, i1 noundef zeroext false, double noundef %842, i1 noundef zeroext %846, i32 noundef %849, i32 noundef %850, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef getelementptr inbounds (%class.TechnologyParameter, ptr @g_tp, i32 0, i32 48))
          to label %851 unwind label %929

851:                                              ; preds = %833
  store i1 false, ptr %54, align 1
  %852 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 8
  store ptr %829, ptr %852, align 8, !tbaa !46
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #10
  %853 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %854 = getelementptr inbounds %class.CoreParameters, ptr %853, i32 0, i32 11
  %855 = load i32, ptr %854, align 8, !tbaa !97
  store i32 %855, ptr %26, align 4, !tbaa !51
  %856 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 1
  %857 = load ptr, ptr %856, align 8, !tbaa !15
  %858 = getelementptr inbounds %class.RegFU, ptr %857, i32 0, i32 10
  %859 = load double, ptr %858, align 8, !tbaa !90
  %860 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 4
  %861 = load ptr, ptr %860, align 8, !tbaa !42
  %862 = getelementptr inbounds %class.FunctionalUnit, ptr %861, i32 0, i32 4
  %863 = load double, ptr %862, align 8, !tbaa !68
  %864 = fadd double %859, %863
  %865 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 5
  %866 = load ptr, ptr %865, align 8, !tbaa !43
  %867 = getelementptr inbounds %class.FunctionalUnit, ptr %866, i32 0, i32 4
  %868 = load double, ptr %867, align 8, !tbaa !68
  %869 = fadd double %864, %868
  %870 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 16
  %871 = load double, ptr %870, align 8, !tbaa !53
  %872 = fadd double %869, %871
  %873 = load double, ptr %18, align 8, !tbaa !9
  %874 = fadd double %872, %873
  %875 = load double, ptr %19, align 8, !tbaa !9
  %876 = fadd double %874, %875
  store double %876, ptr %27, align 8, !tbaa !9
  %877 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 10288) #11
          to label %878 unwind label %546

878:                                              ; preds = %851
  store i1 true, ptr %57, align 1
  %879 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 2
  %880 = load ptr, ptr %879, align 8, !tbaa !65
  call void @llvm.lifetime.start.p0(i64 1, ptr %56) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef @.str.74, ptr noundef nonnull align 1 dereferenceable(1) %56)
          to label %881 unwind label %937

881:                                              ; preds = %878
  %882 = load double, ptr %21, align 8, !tbaa !9
  %883 = load double, ptr %22, align 8, !tbaa !9
  %884 = load i32, ptr %26, align 4, !tbaa !51
  %885 = load double, ptr %27, align 8, !tbaa !9
  %886 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 12
  %887 = load i32, ptr %23, align 4, !tbaa !51
  %888 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 5
  %889 = load double, ptr %888, align 8, !tbaa !64
  %890 = load double, ptr %24, align 8, !tbaa !9
  %891 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %892 = getelementptr inbounds %class.CoreParameters, ptr %891, i32 0, i32 0
  %893 = load i8, ptr %892, align 8, !tbaa !92, !range !60, !noundef !61
  %894 = trunc i8 %893 to i1
  %895 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %896 = getelementptr inbounds %class.CoreParameters, ptr %895, i32 0, i32 3
  %897 = load i32, ptr %896, align 4, !tbaa !66
  %898 = load i32, ptr %25, align 4, !tbaa !52
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %877, ptr noundef %880, ptr noundef %55, i32 noundef 0, double noundef %882, double noundef %883, i32 noundef %884, double noundef %885, ptr noundef %886, i32 noundef %887, double noundef %889, i1 noundef zeroext false, double noundef %890, i1 noundef zeroext %894, i32 noundef %897, i32 noundef %898, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef getelementptr inbounds (%class.TechnologyParameter, ptr @g_tp, i32 0, i32 48))
          to label %899 unwind label %941

899:                                              ; preds = %881
  store i1 false, ptr %57, align 1
  %900 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 9
  store ptr %877, ptr %900, align 8, !tbaa !47
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #10
  br label %949

901:                                              ; preds = %735
  %902 = landingpad { ptr, i32 }
          cleanup
  %903 = extractvalue { ptr, i32 } %902, 0
  store ptr %903, ptr %16, align 8
  %904 = extractvalue { ptr, i32 } %902, 1
  store i32 %904, ptr %17, align 4
  br label %909

905:                                              ; preds = %738
  %906 = landingpad { ptr, i32 }
          cleanup
  %907 = extractvalue { ptr, i32 } %906, 0
  store ptr %907, ptr %16, align 8
  %908 = extractvalue { ptr, i32 } %906, 1
  store i32 %908, ptr %17, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #10
  br label %909

909:                                              ; preds = %905, %901
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #10
  %910 = load i1, ptr %48, align 1
  br i1 %910, label %911, label %912

911:                                              ; preds = %909
  call void @_ZdlPvm(ptr noundef %734, i64 noundef 10288) #12
  br label %912

912:                                              ; preds = %911, %909
  br label %1580

913:                                              ; preds = %778
  %914 = landingpad { ptr, i32 }
          cleanup
  %915 = extractvalue { ptr, i32 } %914, 0
  store ptr %915, ptr %16, align 8
  %916 = extractvalue { ptr, i32 } %914, 1
  store i32 %916, ptr %17, align 4
  br label %921

917:                                              ; preds = %781
  %918 = landingpad { ptr, i32 }
          cleanup
  %919 = extractvalue { ptr, i32 } %918, 0
  store ptr %919, ptr %16, align 8
  %920 = extractvalue { ptr, i32 } %918, 1
  store i32 %920, ptr %17, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #10
  br label %921

921:                                              ; preds = %917, %913
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %50) #10
  %922 = load i1, ptr %51, align 1
  br i1 %922, label %923, label %924

923:                                              ; preds = %921
  call void @_ZdlPvm(ptr noundef %777, i64 noundef 10288) #12
  br label %924

924:                                              ; preds = %923, %921
  br label %1580

925:                                              ; preds = %830
  %926 = landingpad { ptr, i32 }
          cleanup
  %927 = extractvalue { ptr, i32 } %926, 0
  store ptr %927, ptr %16, align 8
  %928 = extractvalue { ptr, i32 } %926, 1
  store i32 %928, ptr %17, align 4
  br label %933

929:                                              ; preds = %833
  %930 = landingpad { ptr, i32 }
          cleanup
  %931 = extractvalue { ptr, i32 } %930, 0
  store ptr %931, ptr %16, align 8
  %932 = extractvalue { ptr, i32 } %930, 1
  store i32 %932, ptr %17, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #10
  br label %933

933:                                              ; preds = %929, %925
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #10
  %934 = load i1, ptr %54, align 1
  br i1 %934, label %935, label %936

935:                                              ; preds = %933
  call void @_ZdlPvm(ptr noundef %829, i64 noundef 10288) #12
  br label %936

936:                                              ; preds = %935, %933
  br label %1580

937:                                              ; preds = %878
  %938 = landingpad { ptr, i32 }
          cleanup
  %939 = extractvalue { ptr, i32 } %938, 0
  store ptr %939, ptr %16, align 8
  %940 = extractvalue { ptr, i32 } %938, 1
  store i32 %940, ptr %17, align 4
  br label %945

941:                                              ; preds = %881
  %942 = landingpad { ptr, i32 }
          cleanup
  %943 = extractvalue { ptr, i32 } %942, 0
  store ptr %943, ptr %16, align 8
  %944 = extractvalue { ptr, i32 } %942, 1
  store i32 %944, ptr %17, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #10
  br label %945

945:                                              ; preds = %941, %937
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #10
  %946 = load i1, ptr %57, align 1
  br i1 %946, label %947, label %948

947:                                              ; preds = %945
  call void @_ZdlPvm(ptr noundef %877, i64 noundef 10288) #12
  br label %948

948:                                              ; preds = %947, %945
  br label %1580

949:                                              ; preds = %899, %799
  %950 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %951 = getelementptr inbounds %class.CoreParameters, ptr %950, i32 0, i32 39
  %952 = load double, ptr %951, align 8, !tbaa !71
  %953 = fcmp ogt double %952, 0.000000e+00
  br i1 %953, label %954, label %1061

954:                                              ; preds = %949
  %955 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %956 = getelementptr inbounds %class.CoreParameters, ptr %955, i32 0, i32 41
  %957 = load i32, ptr %956, align 4, !tbaa !98
  %958 = invoke noundef double @_ZSt4ceilIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_(i32 noundef %957)
          to label %959 unwind label %546

959:                                              ; preds = %954
  %960 = fptosi double %958 to i32
  store i32 %960, ptr %26, align 4, !tbaa !51
  %961 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 1
  %962 = load ptr, ptr %961, align 8, !tbaa !15
  %963 = getelementptr inbounds %class.RegFU, ptr %962, i32 0, i32 11
  %964 = load double, ptr %963, align 8, !tbaa !94
  %965 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 3
  %966 = load ptr, ptr %965, align 8, !tbaa !41
  %967 = getelementptr inbounds %class.FunctionalUnit, ptr %966, i32 0, i32 4
  %968 = load double, ptr %967, align 8, !tbaa !68
  %969 = fadd double %964, %968
  store double %969, ptr %27, align 8, !tbaa !9
  %970 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 10288) #11
          to label %971 unwind label %546

971:                                              ; preds = %959
  store i1 true, ptr %60, align 1
  %972 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 2
  %973 = load ptr, ptr %972, align 8, !tbaa !65
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef @.str.75, ptr noundef nonnull align 1 dereferenceable(1) %59)
          to label %974 unwind label %1037

974:                                              ; preds = %971
  %975 = load double, ptr %21, align 8, !tbaa !9
  %976 = load double, ptr %22, align 8, !tbaa !9
  %977 = load i32, ptr %26, align 4, !tbaa !51
  %978 = load double, ptr %27, align 8, !tbaa !9
  %979 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 12
  %980 = load i32, ptr %23, align 4, !tbaa !51
  %981 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 5
  %982 = load double, ptr %981, align 8, !tbaa !64
  %983 = load double, ptr %24, align 8, !tbaa !9
  %984 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %985 = getelementptr inbounds %class.CoreParameters, ptr %984, i32 0, i32 0
  %986 = load i8, ptr %985, align 8, !tbaa !92, !range !60, !noundef !61
  %987 = trunc i8 %986 to i1
  %988 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %989 = getelementptr inbounds %class.CoreParameters, ptr %988, i32 0, i32 3
  %990 = load i32, ptr %989, align 4, !tbaa !66
  %991 = load i32, ptr %25, align 4, !tbaa !52
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %970, ptr noundef %973, ptr noundef %58, i32 noundef 0, double noundef %975, double noundef %976, i32 noundef %977, double noundef %978, ptr noundef %979, i32 noundef %980, double noundef %982, i1 noundef zeroext false, double noundef %983, i1 noundef zeroext %987, i32 noundef %990, i32 noundef %991, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef getelementptr inbounds (%class.TechnologyParameter, ptr @g_tp, i32 0, i32 48))
          to label %992 unwind label %1041

992:                                              ; preds = %974
  store i1 false, ptr %60, align 1
  %993 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 10
  store ptr %970, ptr %993, align 8, !tbaa !48
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #10
  %994 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %995 = getelementptr inbounds %class.CoreParameters, ptr %994, i32 0, i32 12
  %996 = load i32, ptr %995, align 4, !tbaa !99
  store i32 %996, ptr %26, align 4, !tbaa !51
  %997 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 1
  %998 = load ptr, ptr %997, align 8, !tbaa !15
  %999 = getelementptr inbounds %class.RegFU, ptr %998, i32 0, i32 11
  %1000 = load double, ptr %999, align 8, !tbaa !94
  %1001 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 3
  %1002 = load ptr, ptr %1001, align 8, !tbaa !41
  %1003 = getelementptr inbounds %class.FunctionalUnit, ptr %1002, i32 0, i32 4
  %1004 = load double, ptr %1003, align 8, !tbaa !68
  %1005 = fadd double %1000, %1004
  %1006 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 16
  %1007 = load double, ptr %1006, align 8, !tbaa !53
  %1008 = fadd double %1005, %1007
  %1009 = load double, ptr %20, align 8, !tbaa !9
  %1010 = fadd double %1008, %1009
  %1011 = load double, ptr %19, align 8, !tbaa !9
  %1012 = fadd double %1010, %1011
  store double %1012, ptr %27, align 8, !tbaa !9
  %1013 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 10288) #11
          to label %1014 unwind label %546

1014:                                             ; preds = %992
  store i1 true, ptr %63, align 1
  %1015 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 2
  %1016 = load ptr, ptr %1015, align 8, !tbaa !65
  call void @llvm.lifetime.start.p0(i64 1, ptr %62) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef @.str.76, ptr noundef nonnull align 1 dereferenceable(1) %62)
          to label %1017 unwind label %1049

1017:                                             ; preds = %1014
  %1018 = load double, ptr %21, align 8, !tbaa !9
  %1019 = load double, ptr %22, align 8, !tbaa !9
  %1020 = load i32, ptr %26, align 4, !tbaa !51
  %1021 = load double, ptr %27, align 8, !tbaa !9
  %1022 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 12
  %1023 = load i32, ptr %23, align 4, !tbaa !51
  %1024 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 5
  %1025 = load double, ptr %1024, align 8, !tbaa !64
  %1026 = load double, ptr %24, align 8, !tbaa !9
  %1027 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %1028 = getelementptr inbounds %class.CoreParameters, ptr %1027, i32 0, i32 0
  %1029 = load i8, ptr %1028, align 8, !tbaa !92, !range !60, !noundef !61
  %1030 = trunc i8 %1029 to i1
  %1031 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %1032 = getelementptr inbounds %class.CoreParameters, ptr %1031, i32 0, i32 3
  %1033 = load i32, ptr %1032, align 4, !tbaa !66
  %1034 = load i32, ptr %25, align 4, !tbaa !52
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %1013, ptr noundef %1016, ptr noundef %61, i32 noundef 0, double noundef %1018, double noundef %1019, i32 noundef %1020, double noundef %1021, ptr noundef %1022, i32 noundef %1023, double noundef %1025, i1 noundef zeroext false, double noundef %1026, i1 noundef zeroext %1030, i32 noundef %1033, i32 noundef %1034, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef getelementptr inbounds (%class.TechnologyParameter, ptr @g_tp, i32 0, i32 48))
          to label %1035 unwind label %1053

1035:                                             ; preds = %1017
  store i1 false, ptr %63, align 1
  %1036 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 11
  store ptr %1013, ptr %1036, align 8, !tbaa !49
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #10
  br label %1061

1037:                                             ; preds = %971
  %1038 = landingpad { ptr, i32 }
          cleanup
  %1039 = extractvalue { ptr, i32 } %1038, 0
  store ptr %1039, ptr %16, align 8
  %1040 = extractvalue { ptr, i32 } %1038, 1
  store i32 %1040, ptr %17, align 4
  br label %1045

1041:                                             ; preds = %974
  %1042 = landingpad { ptr, i32 }
          cleanup
  %1043 = extractvalue { ptr, i32 } %1042, 0
  store ptr %1043, ptr %16, align 8
  %1044 = extractvalue { ptr, i32 } %1042, 1
  store i32 %1044, ptr %17, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #10
  br label %1045

1045:                                             ; preds = %1041, %1037
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #10
  %1046 = load i1, ptr %60, align 1
  br i1 %1046, label %1047, label %1048

1047:                                             ; preds = %1045
  call void @_ZdlPvm(ptr noundef %970, i64 noundef 10288) #12
  br label %1048

1048:                                             ; preds = %1047, %1045
  br label %1580

1049:                                             ; preds = %1014
  %1050 = landingpad { ptr, i32 }
          cleanup
  %1051 = extractvalue { ptr, i32 } %1050, 0
  store ptr %1051, ptr %16, align 8
  %1052 = extractvalue { ptr, i32 } %1050, 1
  store i32 %1052, ptr %17, align 4
  br label %1057

1053:                                             ; preds = %1017
  %1054 = landingpad { ptr, i32 }
          cleanup
  %1055 = extractvalue { ptr, i32 } %1054, 0
  store ptr %1055, ptr %16, align 8
  %1056 = extractvalue { ptr, i32 } %1054, 1
  store i32 %1056, ptr %17, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #10
  br label %1057

1057:                                             ; preds = %1053, %1049
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #10
  %1058 = load i1, ptr %63, align 1
  br i1 %1058, label %1059, label %1060

1059:                                             ; preds = %1057
  call void @_ZdlPvm(ptr noundef %1013, i64 noundef 10288) #12
  br label %1060

1060:                                             ; preds = %1059, %1057
  br label %1580

1061:                                             ; preds = %1035, %949
  br label %1424

1062:                                             ; preds = %710
  %1063 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %1064 = getelementptr inbounds %class.CoreParameters, ptr %1063, i32 0, i32 40
  %1065 = load i32, ptr %1064, align 8, !tbaa !96
  %1066 = invoke noundef double @_ZSt4ceilIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_(i32 noundef %1065)
          to label %1067 unwind label %546

1067:                                             ; preds = %1062
  %1068 = fptosi double %1066 to i32
  store i32 %1068, ptr %26, align 4, !tbaa !51
  %1069 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 1
  %1070 = load ptr, ptr %1069, align 8, !tbaa !15
  %1071 = getelementptr inbounds %class.RegFU, ptr %1070, i32 0, i32 10
  %1072 = load double, ptr %1071, align 8, !tbaa !90
  %1073 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 4
  %1074 = load ptr, ptr %1073, align 8, !tbaa !42
  %1075 = getelementptr inbounds %class.FunctionalUnit, ptr %1074, i32 0, i32 4
  %1076 = load double, ptr %1075, align 8, !tbaa !68
  %1077 = fadd double %1072, %1076
  %1078 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 16
  %1079 = load double, ptr %1078, align 8, !tbaa !53
  %1080 = fadd double %1077, %1079
  %1081 = load double, ptr %18, align 8, !tbaa !9
  %1082 = fadd double %1080, %1081
  %1083 = load double, ptr %19, align 8, !tbaa !9
  %1084 = fadd double %1082, %1083
  store double %1084, ptr %27, align 8, !tbaa !9
  %1085 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 10288) #11
          to label %1086 unwind label %546

1086:                                             ; preds = %1067
  store i1 true, ptr %66, align 1
  %1087 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 2
  %1088 = load ptr, ptr %1087, align 8, !tbaa !65
  call void @llvm.lifetime.start.p0(i64 1, ptr %65) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef @.str.71, ptr noundef nonnull align 1 dereferenceable(1) %65)
          to label %1089 unwind label %1256

1089:                                             ; preds = %1086
  %1090 = load double, ptr %21, align 8, !tbaa !9
  %1091 = load double, ptr %22, align 8, !tbaa !9
  %1092 = load i32, ptr %26, align 4, !tbaa !51
  %1093 = load double, ptr %27, align 8, !tbaa !9
  %1094 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 12
  %1095 = load i32, ptr %23, align 4, !tbaa !51
  %1096 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 5
  %1097 = load double, ptr %1096, align 8, !tbaa !64
  %1098 = load double, ptr %24, align 8, !tbaa !9
  %1099 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %1100 = getelementptr inbounds %class.CoreParameters, ptr %1099, i32 0, i32 0
  %1101 = load i8, ptr %1100, align 8, !tbaa !92, !range !60, !noundef !61
  %1102 = trunc i8 %1101 to i1
  %1103 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %1104 = getelementptr inbounds %class.CoreParameters, ptr %1103, i32 0, i32 3
  %1105 = load i32, ptr %1104, align 4, !tbaa !66
  %1106 = load i32, ptr %25, align 4, !tbaa !52
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %1085, ptr noundef %1088, ptr noundef %64, i32 noundef 0, double noundef %1090, double noundef %1091, i32 noundef %1092, double noundef %1093, ptr noundef %1094, i32 noundef %1095, double noundef %1097, i1 noundef zeroext false, double noundef %1098, i1 noundef zeroext %1102, i32 noundef %1105, i32 noundef %1106, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef getelementptr inbounds (%class.TechnologyParameter, ptr @g_tp, i32 0, i32 48))
          to label %1107 unwind label %1260

1107:                                             ; preds = %1089
  store i1 false, ptr %66, align 1
  %1108 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 6
  store ptr %1085, ptr %1108, align 8, !tbaa !44
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #10
  %1109 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %1110 = getelementptr inbounds %class.CoreParameters, ptr %1109, i32 0, i32 11
  %1111 = load i32, ptr %1110, align 8, !tbaa !97
  store i32 %1111, ptr %26, align 4, !tbaa !51
  %1112 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 1
  %1113 = load ptr, ptr %1112, align 8, !tbaa !15
  %1114 = getelementptr inbounds %class.RegFU, ptr %1113, i32 0, i32 10
  %1115 = load double, ptr %1114, align 8, !tbaa !90
  %1116 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 4
  %1117 = load ptr, ptr %1116, align 8, !tbaa !42
  %1118 = getelementptr inbounds %class.FunctionalUnit, ptr %1117, i32 0, i32 4
  %1119 = load double, ptr %1118, align 8, !tbaa !68
  %1120 = fadd double %1115, %1119
  %1121 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 16
  %1122 = load double, ptr %1121, align 8, !tbaa !53
  %1123 = fadd double %1120, %1122
  %1124 = load double, ptr %18, align 8, !tbaa !9
  %1125 = fadd double %1123, %1124
  %1126 = load double, ptr %19, align 8, !tbaa !9
  %1127 = fadd double %1125, %1126
  store double %1127, ptr %27, align 8, !tbaa !9
  %1128 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 10288) #11
          to label %1129 unwind label %546

1129:                                             ; preds = %1107
  store i1 true, ptr %69, align 1
  %1130 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 2
  %1131 = load ptr, ptr %1130, align 8, !tbaa !65
  call void @llvm.lifetime.start.p0(i64 1, ptr %68) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef @.str.72, ptr noundef nonnull align 1 dereferenceable(1) %68)
          to label %1132 unwind label %1268

1132:                                             ; preds = %1129
  %1133 = load double, ptr %21, align 8, !tbaa !9
  %1134 = load double, ptr %22, align 8, !tbaa !9
  %1135 = load i32, ptr %26, align 4, !tbaa !51
  %1136 = load double, ptr %27, align 8, !tbaa !9
  %1137 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 12
  %1138 = load i32, ptr %23, align 4, !tbaa !51
  %1139 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 5
  %1140 = load double, ptr %1139, align 8, !tbaa !64
  %1141 = load double, ptr %24, align 8, !tbaa !9
  %1142 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %1143 = getelementptr inbounds %class.CoreParameters, ptr %1142, i32 0, i32 0
  %1144 = load i8, ptr %1143, align 8, !tbaa !92, !range !60, !noundef !61
  %1145 = trunc i8 %1144 to i1
  %1146 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %1147 = getelementptr inbounds %class.CoreParameters, ptr %1146, i32 0, i32 3
  %1148 = load i32, ptr %1147, align 4, !tbaa !66
  %1149 = load i32, ptr %25, align 4, !tbaa !52
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %1128, ptr noundef %1131, ptr noundef %67, i32 noundef 0, double noundef %1133, double noundef %1134, i32 noundef %1135, double noundef %1136, ptr noundef %1137, i32 noundef %1138, double noundef %1140, i1 noundef zeroext false, double noundef %1141, i1 noundef zeroext %1145, i32 noundef %1148, i32 noundef %1149, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef getelementptr inbounds (%class.TechnologyParameter, ptr @g_tp, i32 0, i32 48))
          to label %1150 unwind label %1272

1150:                                             ; preds = %1132
  store i1 false, ptr %69, align 1
  %1151 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 7
  store ptr %1128, ptr %1151, align 8, !tbaa !45
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %68) #10
  %1152 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %1153 = getelementptr inbounds %class.CoreParameters, ptr %1152, i32 0, i32 38
  %1154 = load i32, ptr %1153, align 4, !tbaa !72
  %1155 = icmp sgt i32 %1154, 0
  br i1 %1155, label %1156, label %1304

1156:                                             ; preds = %1150
  %1157 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %1158 = getelementptr inbounds %class.CoreParameters, ptr %1157, i32 0, i32 40
  %1159 = load i32, ptr %1158, align 8, !tbaa !96
  %1160 = invoke noundef double @_ZSt4ceilIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_(i32 noundef %1159)
          to label %1161 unwind label %546

1161:                                             ; preds = %1156
  %1162 = fptosi double %1160 to i32
  store i32 %1162, ptr %26, align 4, !tbaa !51
  %1163 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 1
  %1164 = load ptr, ptr %1163, align 8, !tbaa !15
  %1165 = getelementptr inbounds %class.RegFU, ptr %1164, i32 0, i32 10
  %1166 = load double, ptr %1165, align 8, !tbaa !90
  %1167 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 4
  %1168 = load ptr, ptr %1167, align 8, !tbaa !42
  %1169 = getelementptr inbounds %class.FunctionalUnit, ptr %1168, i32 0, i32 4
  %1170 = load double, ptr %1169, align 8, !tbaa !68
  %1171 = fadd double %1166, %1170
  %1172 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 5
  %1173 = load ptr, ptr %1172, align 8, !tbaa !43
  %1174 = getelementptr inbounds %class.FunctionalUnit, ptr %1173, i32 0, i32 4
  %1175 = load double, ptr %1174, align 8, !tbaa !68
  %1176 = fadd double %1171, %1175
  %1177 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 16
  %1178 = load double, ptr %1177, align 8, !tbaa !53
  %1179 = fadd double %1176, %1178
  %1180 = load double, ptr %18, align 8, !tbaa !9
  %1181 = fadd double %1179, %1180
  %1182 = load double, ptr %19, align 8, !tbaa !9
  %1183 = fadd double %1181, %1182
  store double %1183, ptr %27, align 8, !tbaa !9
  %1184 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 10288) #11
          to label %1185 unwind label %546

1185:                                             ; preds = %1161
  store i1 true, ptr %72, align 1
  %1186 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 2
  %1187 = load ptr, ptr %1186, align 8, !tbaa !65
  call void @llvm.lifetime.start.p0(i64 1, ptr %71) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef @.str.73, ptr noundef nonnull align 1 dereferenceable(1) %71)
          to label %1188 unwind label %1280

1188:                                             ; preds = %1185
  %1189 = load double, ptr %21, align 8, !tbaa !9
  %1190 = load double, ptr %22, align 8, !tbaa !9
  %1191 = load i32, ptr %26, align 4, !tbaa !51
  %1192 = load double, ptr %27, align 8, !tbaa !9
  %1193 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 12
  %1194 = load i32, ptr %23, align 4, !tbaa !51
  %1195 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 5
  %1196 = load double, ptr %1195, align 8, !tbaa !64
  %1197 = load double, ptr %24, align 8, !tbaa !9
  %1198 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %1199 = getelementptr inbounds %class.CoreParameters, ptr %1198, i32 0, i32 0
  %1200 = load i8, ptr %1199, align 8, !tbaa !92, !range !60, !noundef !61
  %1201 = trunc i8 %1200 to i1
  %1202 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %1203 = getelementptr inbounds %class.CoreParameters, ptr %1202, i32 0, i32 3
  %1204 = load i32, ptr %1203, align 4, !tbaa !66
  %1205 = load i32, ptr %25, align 4, !tbaa !52
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %1184, ptr noundef %1187, ptr noundef %70, i32 noundef 0, double noundef %1189, double noundef %1190, i32 noundef %1191, double noundef %1192, ptr noundef %1193, i32 noundef %1194, double noundef %1196, i1 noundef zeroext false, double noundef %1197, i1 noundef zeroext %1201, i32 noundef %1204, i32 noundef %1205, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef getelementptr inbounds (%class.TechnologyParameter, ptr @g_tp, i32 0, i32 48))
          to label %1206 unwind label %1284

1206:                                             ; preds = %1188
  store i1 false, ptr %72, align 1
  %1207 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 8
  store ptr %1184, ptr %1207, align 8, !tbaa !46
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #10
  %1208 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %1209 = getelementptr inbounds %class.CoreParameters, ptr %1208, i32 0, i32 11
  %1210 = load i32, ptr %1209, align 8, !tbaa !97
  store i32 %1210, ptr %26, align 4, !tbaa !51
  %1211 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 1
  %1212 = load ptr, ptr %1211, align 8, !tbaa !15
  %1213 = getelementptr inbounds %class.RegFU, ptr %1212, i32 0, i32 10
  %1214 = load double, ptr %1213, align 8, !tbaa !90
  %1215 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 4
  %1216 = load ptr, ptr %1215, align 8, !tbaa !42
  %1217 = getelementptr inbounds %class.FunctionalUnit, ptr %1216, i32 0, i32 4
  %1218 = load double, ptr %1217, align 8, !tbaa !68
  %1219 = fadd double %1214, %1218
  %1220 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 5
  %1221 = load ptr, ptr %1220, align 8, !tbaa !43
  %1222 = getelementptr inbounds %class.FunctionalUnit, ptr %1221, i32 0, i32 4
  %1223 = load double, ptr %1222, align 8, !tbaa !68
  %1224 = fadd double %1219, %1223
  %1225 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 16
  %1226 = load double, ptr %1225, align 8, !tbaa !53
  %1227 = fadd double %1224, %1226
  %1228 = load double, ptr %18, align 8, !tbaa !9
  %1229 = fadd double %1227, %1228
  %1230 = load double, ptr %19, align 8, !tbaa !9
  %1231 = fadd double %1229, %1230
  store double %1231, ptr %27, align 8, !tbaa !9
  %1232 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 10288) #11
          to label %1233 unwind label %546

1233:                                             ; preds = %1206
  store i1 true, ptr %75, align 1
  %1234 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 2
  %1235 = load ptr, ptr %1234, align 8, !tbaa !65
  call void @llvm.lifetime.start.p0(i64 1, ptr %74) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef @.str.74, ptr noundef nonnull align 1 dereferenceable(1) %74)
          to label %1236 unwind label %1292

1236:                                             ; preds = %1233
  %1237 = load double, ptr %21, align 8, !tbaa !9
  %1238 = load double, ptr %22, align 8, !tbaa !9
  %1239 = load i32, ptr %26, align 4, !tbaa !51
  %1240 = load double, ptr %27, align 8, !tbaa !9
  %1241 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 12
  %1242 = load i32, ptr %23, align 4, !tbaa !51
  %1243 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 5
  %1244 = load double, ptr %1243, align 8, !tbaa !64
  %1245 = load double, ptr %24, align 8, !tbaa !9
  %1246 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %1247 = getelementptr inbounds %class.CoreParameters, ptr %1246, i32 0, i32 0
  %1248 = load i8, ptr %1247, align 8, !tbaa !92, !range !60, !noundef !61
  %1249 = trunc i8 %1248 to i1
  %1250 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %1251 = getelementptr inbounds %class.CoreParameters, ptr %1250, i32 0, i32 3
  %1252 = load i32, ptr %1251, align 4, !tbaa !66
  %1253 = load i32, ptr %25, align 4, !tbaa !52
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %1232, ptr noundef %1235, ptr noundef %73, i32 noundef 0, double noundef %1237, double noundef %1238, i32 noundef %1239, double noundef %1240, ptr noundef %1241, i32 noundef %1242, double noundef %1244, i1 noundef zeroext false, double noundef %1245, i1 noundef zeroext %1249, i32 noundef %1252, i32 noundef %1253, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef getelementptr inbounds (%class.TechnologyParameter, ptr @g_tp, i32 0, i32 48))
          to label %1254 unwind label %1296

1254:                                             ; preds = %1236
  store i1 false, ptr %75, align 1
  %1255 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 9
  store ptr %1232, ptr %1255, align 8, !tbaa !47
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %74) #10
  br label %1304

1256:                                             ; preds = %1086
  %1257 = landingpad { ptr, i32 }
          cleanup
  %1258 = extractvalue { ptr, i32 } %1257, 0
  store ptr %1258, ptr %16, align 8
  %1259 = extractvalue { ptr, i32 } %1257, 1
  store i32 %1259, ptr %17, align 4
  br label %1264

1260:                                             ; preds = %1089
  %1261 = landingpad { ptr, i32 }
          cleanup
  %1262 = extractvalue { ptr, i32 } %1261, 0
  store ptr %1262, ptr %16, align 8
  %1263 = extractvalue { ptr, i32 } %1261, 1
  store i32 %1263, ptr %17, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #10
  br label %1264

1264:                                             ; preds = %1260, %1256
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #10
  %1265 = load i1, ptr %66, align 1
  br i1 %1265, label %1266, label %1267

1266:                                             ; preds = %1264
  call void @_ZdlPvm(ptr noundef %1085, i64 noundef 10288) #12
  br label %1267

1267:                                             ; preds = %1266, %1264
  br label %1580

1268:                                             ; preds = %1129
  %1269 = landingpad { ptr, i32 }
          cleanup
  %1270 = extractvalue { ptr, i32 } %1269, 0
  store ptr %1270, ptr %16, align 8
  %1271 = extractvalue { ptr, i32 } %1269, 1
  store i32 %1271, ptr %17, align 4
  br label %1276

1272:                                             ; preds = %1132
  %1273 = landingpad { ptr, i32 }
          cleanup
  %1274 = extractvalue { ptr, i32 } %1273, 0
  store ptr %1274, ptr %16, align 8
  %1275 = extractvalue { ptr, i32 } %1273, 1
  store i32 %1275, ptr %17, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #10
  br label %1276

1276:                                             ; preds = %1272, %1268
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %68) #10
  %1277 = load i1, ptr %69, align 1
  br i1 %1277, label %1278, label %1279

1278:                                             ; preds = %1276
  call void @_ZdlPvm(ptr noundef %1128, i64 noundef 10288) #12
  br label %1279

1279:                                             ; preds = %1278, %1276
  br label %1580

1280:                                             ; preds = %1185
  %1281 = landingpad { ptr, i32 }
          cleanup
  %1282 = extractvalue { ptr, i32 } %1281, 0
  store ptr %1282, ptr %16, align 8
  %1283 = extractvalue { ptr, i32 } %1281, 1
  store i32 %1283, ptr %17, align 4
  br label %1288

1284:                                             ; preds = %1188
  %1285 = landingpad { ptr, i32 }
          cleanup
  %1286 = extractvalue { ptr, i32 } %1285, 0
  store ptr %1286, ptr %16, align 8
  %1287 = extractvalue { ptr, i32 } %1285, 1
  store i32 %1287, ptr %17, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #10
  br label %1288

1288:                                             ; preds = %1284, %1280
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #10
  %1289 = load i1, ptr %72, align 1
  br i1 %1289, label %1290, label %1291

1290:                                             ; preds = %1288
  call void @_ZdlPvm(ptr noundef %1184, i64 noundef 10288) #12
  br label %1291

1291:                                             ; preds = %1290, %1288
  br label %1580

1292:                                             ; preds = %1233
  %1293 = landingpad { ptr, i32 }
          cleanup
  %1294 = extractvalue { ptr, i32 } %1293, 0
  store ptr %1294, ptr %16, align 8
  %1295 = extractvalue { ptr, i32 } %1293, 1
  store i32 %1295, ptr %17, align 4
  br label %1300

1296:                                             ; preds = %1236
  %1297 = landingpad { ptr, i32 }
          cleanup
  %1298 = extractvalue { ptr, i32 } %1297, 0
  store ptr %1298, ptr %16, align 8
  %1299 = extractvalue { ptr, i32 } %1297, 1
  store i32 %1299, ptr %17, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #10
  br label %1300

1300:                                             ; preds = %1296, %1292
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %74) #10
  %1301 = load i1, ptr %75, align 1
  br i1 %1301, label %1302, label %1303

1302:                                             ; preds = %1300
  call void @_ZdlPvm(ptr noundef %1232, i64 noundef 10288) #12
  br label %1303

1303:                                             ; preds = %1302, %1300
  br label %1580

1304:                                             ; preds = %1254, %1150
  %1305 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %1306 = getelementptr inbounds %class.CoreParameters, ptr %1305, i32 0, i32 39
  %1307 = load double, ptr %1306, align 8, !tbaa !71
  %1308 = fcmp ogt double %1307, 0.000000e+00
  br i1 %1308, label %1309, label %1423

1309:                                             ; preds = %1304
  %1310 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %1311 = getelementptr inbounds %class.CoreParameters, ptr %1310, i32 0, i32 41
  %1312 = load i32, ptr %1311, align 4, !tbaa !98
  %1313 = invoke noundef double @_ZSt4ceilIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_(i32 noundef %1312)
          to label %1314 unwind label %546

1314:                                             ; preds = %1309
  %1315 = fptosi double %1313 to i32
  store i32 %1315, ptr %26, align 4, !tbaa !51
  %1316 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 1
  %1317 = load ptr, ptr %1316, align 8, !tbaa !15
  %1318 = getelementptr inbounds %class.RegFU, ptr %1317, i32 0, i32 11
  %1319 = load double, ptr %1318, align 8, !tbaa !94
  %1320 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 3
  %1321 = load ptr, ptr %1320, align 8, !tbaa !41
  %1322 = getelementptr inbounds %class.FunctionalUnit, ptr %1321, i32 0, i32 4
  %1323 = load double, ptr %1322, align 8, !tbaa !68
  %1324 = fadd double %1319, %1323
  %1325 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 16
  %1326 = load double, ptr %1325, align 8, !tbaa !53
  %1327 = fadd double %1324, %1326
  %1328 = load double, ptr %20, align 8, !tbaa !9
  %1329 = fadd double %1327, %1328
  %1330 = load double, ptr %19, align 8, !tbaa !9
  %1331 = fadd double %1329, %1330
  store double %1331, ptr %27, align 8, !tbaa !9
  %1332 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 10288) #11
          to label %1333 unwind label %546

1333:                                             ; preds = %1314
  store i1 true, ptr %78, align 1
  %1334 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 2
  %1335 = load ptr, ptr %1334, align 8, !tbaa !65
  call void @llvm.lifetime.start.p0(i64 1, ptr %77) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef @.str.75, ptr noundef nonnull align 1 dereferenceable(1) %77)
          to label %1336 unwind label %1399

1336:                                             ; preds = %1333
  %1337 = load double, ptr %21, align 8, !tbaa !9
  %1338 = load double, ptr %22, align 8, !tbaa !9
  %1339 = load i32, ptr %26, align 4, !tbaa !51
  %1340 = load double, ptr %27, align 8, !tbaa !9
  %1341 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 12
  %1342 = load i32, ptr %23, align 4, !tbaa !51
  %1343 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 5
  %1344 = load double, ptr %1343, align 8, !tbaa !64
  %1345 = load double, ptr %24, align 8, !tbaa !9
  %1346 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %1347 = getelementptr inbounds %class.CoreParameters, ptr %1346, i32 0, i32 0
  %1348 = load i8, ptr %1347, align 8, !tbaa !92, !range !60, !noundef !61
  %1349 = trunc i8 %1348 to i1
  %1350 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %1351 = getelementptr inbounds %class.CoreParameters, ptr %1350, i32 0, i32 3
  %1352 = load i32, ptr %1351, align 4, !tbaa !66
  %1353 = load i32, ptr %25, align 4, !tbaa !52
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %1332, ptr noundef %1335, ptr noundef %76, i32 noundef 0, double noundef %1337, double noundef %1338, i32 noundef %1339, double noundef %1340, ptr noundef %1341, i32 noundef %1342, double noundef %1344, i1 noundef zeroext false, double noundef %1345, i1 noundef zeroext %1349, i32 noundef %1352, i32 noundef %1353, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef getelementptr inbounds (%class.TechnologyParameter, ptr @g_tp, i32 0, i32 48))
          to label %1354 unwind label %1403

1354:                                             ; preds = %1336
  store i1 false, ptr %78, align 1
  %1355 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 10
  store ptr %1332, ptr %1355, align 8, !tbaa !48
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %77) #10
  %1356 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %1357 = getelementptr inbounds %class.CoreParameters, ptr %1356, i32 0, i32 12
  %1358 = load i32, ptr %1357, align 4, !tbaa !99
  store i32 %1358, ptr %26, align 4, !tbaa !51
  %1359 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 1
  %1360 = load ptr, ptr %1359, align 8, !tbaa !15
  %1361 = getelementptr inbounds %class.RegFU, ptr %1360, i32 0, i32 11
  %1362 = load double, ptr %1361, align 8, !tbaa !94
  %1363 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 3
  %1364 = load ptr, ptr %1363, align 8, !tbaa !41
  %1365 = getelementptr inbounds %class.FunctionalUnit, ptr %1364, i32 0, i32 4
  %1366 = load double, ptr %1365, align 8, !tbaa !68
  %1367 = fadd double %1362, %1366
  %1368 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 16
  %1369 = load double, ptr %1368, align 8, !tbaa !53
  %1370 = fadd double %1367, %1369
  %1371 = load double, ptr %20, align 8, !tbaa !9
  %1372 = fadd double %1370, %1371
  %1373 = load double, ptr %19, align 8, !tbaa !9
  %1374 = fadd double %1372, %1373
  store double %1374, ptr %27, align 8, !tbaa !9
  %1375 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 10288) #11
          to label %1376 unwind label %546

1376:                                             ; preds = %1354
  store i1 true, ptr %81, align 1
  %1377 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 2
  %1378 = load ptr, ptr %1377, align 8, !tbaa !65
  call void @llvm.lifetime.start.p0(i64 1, ptr %80) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef @.str.76, ptr noundef nonnull align 1 dereferenceable(1) %80)
          to label %1379 unwind label %1411

1379:                                             ; preds = %1376
  %1380 = load double, ptr %21, align 8, !tbaa !9
  %1381 = load double, ptr %22, align 8, !tbaa !9
  %1382 = load i32, ptr %26, align 4, !tbaa !51
  %1383 = load double, ptr %27, align 8, !tbaa !9
  %1384 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 12
  %1385 = load i32, ptr %23, align 4, !tbaa !51
  %1386 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 5
  %1387 = load double, ptr %1386, align 8, !tbaa !64
  %1388 = load double, ptr %24, align 8, !tbaa !9
  %1389 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %1390 = getelementptr inbounds %class.CoreParameters, ptr %1389, i32 0, i32 0
  %1391 = load i8, ptr %1390, align 8, !tbaa !92, !range !60, !noundef !61
  %1392 = trunc i8 %1391 to i1
  %1393 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %1394 = getelementptr inbounds %class.CoreParameters, ptr %1393, i32 0, i32 3
  %1395 = load i32, ptr %1394, align 4, !tbaa !66
  %1396 = load i32, ptr %25, align 4, !tbaa !52
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %1375, ptr noundef %1378, ptr noundef %79, i32 noundef 0, double noundef %1380, double noundef %1381, i32 noundef %1382, double noundef %1383, ptr noundef %1384, i32 noundef %1385, double noundef %1387, i1 noundef zeroext false, double noundef %1388, i1 noundef zeroext %1392, i32 noundef %1395, i32 noundef %1396, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef getelementptr inbounds (%class.TechnologyParameter, ptr @g_tp, i32 0, i32 48))
          to label %1397 unwind label %1415

1397:                                             ; preds = %1379
  store i1 false, ptr %81, align 1
  %1398 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 11
  store ptr %1375, ptr %1398, align 8, !tbaa !49
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %80) #10
  br label %1423

1399:                                             ; preds = %1333
  %1400 = landingpad { ptr, i32 }
          cleanup
  %1401 = extractvalue { ptr, i32 } %1400, 0
  store ptr %1401, ptr %16, align 8
  %1402 = extractvalue { ptr, i32 } %1400, 1
  store i32 %1402, ptr %17, align 4
  br label %1407

1403:                                             ; preds = %1336
  %1404 = landingpad { ptr, i32 }
          cleanup
  %1405 = extractvalue { ptr, i32 } %1404, 0
  store ptr %1405, ptr %16, align 8
  %1406 = extractvalue { ptr, i32 } %1404, 1
  store i32 %1406, ptr %17, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #10
  br label %1407

1407:                                             ; preds = %1403, %1399
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %77) #10
  %1408 = load i1, ptr %78, align 1
  br i1 %1408, label %1409, label %1410

1409:                                             ; preds = %1407
  call void @_ZdlPvm(ptr noundef %1332, i64 noundef 10288) #12
  br label %1410

1410:                                             ; preds = %1409, %1407
  br label %1580

1411:                                             ; preds = %1376
  %1412 = landingpad { ptr, i32 }
          cleanup
  %1413 = extractvalue { ptr, i32 } %1412, 0
  store ptr %1413, ptr %16, align 8
  %1414 = extractvalue { ptr, i32 } %1412, 1
  store i32 %1414, ptr %17, align 4
  br label %1419

1415:                                             ; preds = %1379
  %1416 = landingpad { ptr, i32 }
          cleanup
  %1417 = extractvalue { ptr, i32 } %1416, 0
  store ptr %1417, ptr %16, align 8
  %1418 = extractvalue { ptr, i32 } %1416, 1
  store i32 %1418, ptr %17, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #10
  br label %1419

1419:                                             ; preds = %1415, %1411
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %80) #10
  %1420 = load i1, ptr %81, align 1
  br i1 %1420, label %1421, label %1422

1421:                                             ; preds = %1419
  call void @_ZdlPvm(ptr noundef %1375, i64 noundef 10288) #12
  br label %1422

1422:                                             ; preds = %1421, %1419
  br label %1580

1423:                                             ; preds = %1397, %1304
  br label %1424

1424:                                             ; preds = %1423, %1061
  br label %1425

1425:                                             ; preds = %1424, %709
  %1426 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 6
  %1427 = load ptr, ptr %1426, align 8, !tbaa !44
  %1428 = icmp ne ptr %1427, null
  br i1 %1428, label %1429, label %1438

1429:                                             ; preds = %1425
  %1430 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #10
  %1431 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 6
  %1432 = load ptr, ptr %1431, align 8, !tbaa !44
  store ptr %1432, ptr %82, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIP14McPATComponentSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %1430, ptr noundef nonnull align 8 dereferenceable(8) %82)
          to label %1433 unwind label %1434

1433:                                             ; preds = %1429
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #10
  br label %1438

1434:                                             ; preds = %1429
  %1435 = landingpad { ptr, i32 }
          cleanup
  %1436 = extractvalue { ptr, i32 } %1435, 0
  store ptr %1436, ptr %16, align 8
  %1437 = extractvalue { ptr, i32 } %1435, 1
  store i32 %1437, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #10
  br label %1580

1438:                                             ; preds = %1433, %1425
  %1439 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 7
  %1440 = load ptr, ptr %1439, align 8, !tbaa !45
  %1441 = icmp ne ptr %1440, null
  br i1 %1441, label %1442, label %1451

1442:                                             ; preds = %1438
  %1443 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #10
  %1444 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 7
  %1445 = load ptr, ptr %1444, align 8, !tbaa !45
  store ptr %1445, ptr %83, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIP14McPATComponentSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %1443, ptr noundef nonnull align 8 dereferenceable(8) %83)
          to label %1446 unwind label %1447

1446:                                             ; preds = %1442
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #10
  br label %1451

1447:                                             ; preds = %1442
  %1448 = landingpad { ptr, i32 }
          cleanup
  %1449 = extractvalue { ptr, i32 } %1448, 0
  store ptr %1449, ptr %16, align 8
  %1450 = extractvalue { ptr, i32 } %1448, 1
  store i32 %1450, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #10
  br label %1580

1451:                                             ; preds = %1446, %1438
  %1452 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 8
  %1453 = load ptr, ptr %1452, align 8, !tbaa !46
  %1454 = icmp ne ptr %1453, null
  br i1 %1454, label %1455, label %1464

1455:                                             ; preds = %1451
  %1456 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #10
  %1457 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 8
  %1458 = load ptr, ptr %1457, align 8, !tbaa !46
  store ptr %1458, ptr %84, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIP14McPATComponentSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %1456, ptr noundef nonnull align 8 dereferenceable(8) %84)
          to label %1459 unwind label %1460

1459:                                             ; preds = %1455
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #10
  br label %1464

1460:                                             ; preds = %1455
  %1461 = landingpad { ptr, i32 }
          cleanup
  %1462 = extractvalue { ptr, i32 } %1461, 0
  store ptr %1462, ptr %16, align 8
  %1463 = extractvalue { ptr, i32 } %1461, 1
  store i32 %1463, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #10
  br label %1580

1464:                                             ; preds = %1459, %1451
  %1465 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 9
  %1466 = load ptr, ptr %1465, align 8, !tbaa !47
  %1467 = icmp ne ptr %1466, null
  br i1 %1467, label %1468, label %1477

1468:                                             ; preds = %1464
  %1469 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #10
  %1470 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 9
  %1471 = load ptr, ptr %1470, align 8, !tbaa !47
  store ptr %1471, ptr %85, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIP14McPATComponentSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %1469, ptr noundef nonnull align 8 dereferenceable(8) %85)
          to label %1472 unwind label %1473

1472:                                             ; preds = %1468
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #10
  br label %1477

1473:                                             ; preds = %1468
  %1474 = landingpad { ptr, i32 }
          cleanup
  %1475 = extractvalue { ptr, i32 } %1474, 0
  store ptr %1475, ptr %16, align 8
  %1476 = extractvalue { ptr, i32 } %1474, 1
  store i32 %1476, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #10
  br label %1580

1477:                                             ; preds = %1472, %1464
  %1478 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 10
  %1479 = load ptr, ptr %1478, align 8, !tbaa !48
  %1480 = icmp ne ptr %1479, null
  br i1 %1480, label %1481, label %1490

1481:                                             ; preds = %1477
  %1482 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #10
  %1483 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 10
  %1484 = load ptr, ptr %1483, align 8, !tbaa !48
  store ptr %1484, ptr %86, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIP14McPATComponentSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %1482, ptr noundef nonnull align 8 dereferenceable(8) %86)
          to label %1485 unwind label %1486

1485:                                             ; preds = %1481
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #10
  br label %1490

1486:                                             ; preds = %1481
  %1487 = landingpad { ptr, i32 }
          cleanup
  %1488 = extractvalue { ptr, i32 } %1487, 0
  store ptr %1488, ptr %16, align 8
  %1489 = extractvalue { ptr, i32 } %1487, 1
  store i32 %1489, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #10
  br label %1580

1490:                                             ; preds = %1485, %1477
  %1491 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 11
  %1492 = load ptr, ptr %1491, align 8, !tbaa !49
  %1493 = icmp ne ptr %1492, null
  br i1 %1493, label %1494, label %1503

1494:                                             ; preds = %1490
  %1495 = getelementptr inbounds %class.McPATComponent, ptr %89, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #10
  %1496 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 11
  %1497 = load ptr, ptr %1496, align 8, !tbaa !49
  store ptr %1497, ptr %87, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIP14McPATComponentSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %1495, ptr noundef nonnull align 8 dereferenceable(8) %87)
          to label %1498 unwind label %1499

1498:                                             ; preds = %1494
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #10
  br label %1503

1499:                                             ; preds = %1494
  %1500 = landingpad { ptr, i32 }
          cleanup
  %1501 = extractvalue { ptr, i32 } %1500, 0
  store ptr %1501, ptr %16, align 8
  %1502 = extractvalue { ptr, i32 } %1500, 1
  store i32 %1502, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #10
  br label %1580

1503:                                             ; preds = %1498, %1490
  %1504 = getelementptr inbounds i8, ptr %89, i64 8
  %1505 = getelementptr inbounds %class.Component, ptr %1504, i32 0, i32 0
  %1506 = getelementptr inbounds i8, ptr %89, i64 8
  %1507 = getelementptr inbounds %class.Component, ptr %1506, i32 0, i32 0
  %1508 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %1507)
          to label %1509 unwind label %546

1509:                                             ; preds = %1503
  %1510 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 6
  %1511 = load ptr, ptr %1510, align 8, !tbaa !44
  %1512 = getelementptr inbounds i8, ptr %1511, i64 8
  %1513 = getelementptr inbounds %class.Component, ptr %1512, i32 0, i32 0
  %1514 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %1513)
          to label %1515 unwind label %546

1515:                                             ; preds = %1509
  %1516 = fadd double %1508, %1514
  %1517 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 7
  %1518 = load ptr, ptr %1517, align 8, !tbaa !45
  %1519 = getelementptr inbounds i8, ptr %1518, i64 8
  %1520 = getelementptr inbounds %class.Component, ptr %1519, i32 0, i32 0
  %1521 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %1520)
          to label %1522 unwind label %546

1522:                                             ; preds = %1515
  %1523 = fadd double %1516, %1521
  invoke void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %1505, double noundef %1523)
          to label %1524 unwind label %546

1524:                                             ; preds = %1522
  %1525 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %1526 = getelementptr inbounds %class.CoreParameters, ptr %1525, i32 0, i32 38
  %1527 = load i32, ptr %1526, align 4, !tbaa !72
  %1528 = icmp sgt i32 %1527, 0
  br i1 %1528, label %1529, label %1551

1529:                                             ; preds = %1524
  %1530 = getelementptr inbounds i8, ptr %89, i64 8
  %1531 = getelementptr inbounds %class.Component, ptr %1530, i32 0, i32 0
  %1532 = getelementptr inbounds i8, ptr %89, i64 8
  %1533 = getelementptr inbounds %class.Component, ptr %1532, i32 0, i32 0
  %1534 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %1533)
          to label %1535 unwind label %546

1535:                                             ; preds = %1529
  %1536 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 8
  %1537 = load ptr, ptr %1536, align 8, !tbaa !46
  %1538 = getelementptr inbounds i8, ptr %1537, i64 8
  %1539 = getelementptr inbounds %class.Component, ptr %1538, i32 0, i32 0
  %1540 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %1539)
          to label %1541 unwind label %546

1541:                                             ; preds = %1535
  %1542 = fadd double %1534, %1540
  %1543 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 9
  %1544 = load ptr, ptr %1543, align 8, !tbaa !47
  %1545 = getelementptr inbounds i8, ptr %1544, i64 8
  %1546 = getelementptr inbounds %class.Component, ptr %1545, i32 0, i32 0
  %1547 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %1546)
          to label %1548 unwind label %546

1548:                                             ; preds = %1541
  %1549 = fadd double %1542, %1547
  invoke void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %1531, double noundef %1549)
          to label %1550 unwind label %546

1550:                                             ; preds = %1548
  br label %1551

1551:                                             ; preds = %1550, %1524
  %1552 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 17
  %1553 = getelementptr inbounds %class.CoreParameters, ptr %1552, i32 0, i32 39
  %1554 = load double, ptr %1553, align 8, !tbaa !71
  %1555 = fcmp ogt double %1554, 0.000000e+00
  br i1 %1555, label %1556, label %1578

1556:                                             ; preds = %1551
  %1557 = getelementptr inbounds i8, ptr %89, i64 8
  %1558 = getelementptr inbounds %class.Component, ptr %1557, i32 0, i32 0
  %1559 = getelementptr inbounds i8, ptr %89, i64 8
  %1560 = getelementptr inbounds %class.Component, ptr %1559, i32 0, i32 0
  %1561 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %1560)
          to label %1562 unwind label %546

1562:                                             ; preds = %1556
  %1563 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 10
  %1564 = load ptr, ptr %1563, align 8, !tbaa !48
  %1565 = getelementptr inbounds i8, ptr %1564, i64 8
  %1566 = getelementptr inbounds %class.Component, ptr %1565, i32 0, i32 0
  %1567 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %1566)
          to label %1568 unwind label %546

1568:                                             ; preds = %1562
  %1569 = fadd double %1561, %1567
  %1570 = getelementptr inbounds %class.EXECU, ptr %89, i32 0, i32 11
  %1571 = load ptr, ptr %1570, align 8, !tbaa !49
  %1572 = getelementptr inbounds i8, ptr %1571, i64 8
  %1573 = getelementptr inbounds %class.Component, ptr %1572, i32 0, i32 0
  %1574 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %1573)
          to label %1575 unwind label %546

1575:                                             ; preds = %1568
  %1576 = fadd double %1569, %1574
  invoke void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %1558, double noundef %1576)
          to label %1577 unwind label %546

1577:                                             ; preds = %1575
  br label %1578

1578:                                             ; preds = %1577, %1551
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #10
  br label %1579

1579:                                             ; preds = %1578, %117
  ret void

1580:                                             ; preds = %1499, %1486, %1473, %1460, %1447, %1434, %1422, %1410, %1303, %1291, %1279, %1267, %1060, %1048, %948, %936, %924, %912, %708, %696, %597, %585, %573, %561, %546
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #10
  br label %1581

1581:                                             ; preds = %1580, %291, %252, %248, %181, %177, %173
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #10
  call void @_ZN14McPATComponentD2Ev(ptr noundef nonnull align 8 dereferenceable(1352) %89) #10
  br label %1582

1582:                                             ; preds = %1581
  %1583 = load ptr, ptr %16, align 8
  %1584 = load i32, ptr %17, align 4
  %1585 = insertvalue { ptr, i32 } poison, ptr %1583, 0
  %1586 = insertvalue { ptr, i32 } %1585, i32 %1584, 1
  resume { ptr, i32 } %1586
}

declare void @_ZN14FunctionalUnitC1EP7XMLNodeP14InputParameterRK14CoreParametersRK14CoreStatistics7FU_type(ptr noundef nonnull align 8 dereferenceable(2808), ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(480), ptr noundef nonnull align 8 dereferenceable(392), i32 noundef) unnamed_addr #0

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt4ceilIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_(i32 noundef) #8

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

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

declare void @_ZN10SchedulerUC1EP7XMLNodeP14InputParameterRK14CoreParametersRK14CoreStatisticsb(ptr, ptr, ptr, ptr, ptr, i1)

declare void @_ZN5RegFUC1EP7XMLNodeP14InputParameterRK14CoreParametersRK14CoreStatisticsb(ptr, ptr, ptr, ptr, ptr, i1)

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 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { 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 #4 = { 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 #5 = { 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 #6 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
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 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { nounwind }
attributes #11 = { builtin allocsize(0) }
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 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"bool", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"vtable pointer", !8, i64 0}
!15 = !{!16, !6, i64 1352}
!16 = !{!"_ZTS5EXECU", !17, i64 0, !6, i64 1352, !6, i64 1360, !6, i64 1368, !6, i64 1376, !6, i64 1384, !6, i64 1392, !6, i64 1400, !6, i64 1408, !6, i64 1416, !6, i64 1424, !6, i64 1432, !22, i64 1440, !10, i64 1808, !10, i64 1816, !10, i64 1824, !10, i64 1832, !35, i64 1840, !39, i64 2320, !12, i64 2712}
!17 = !{!"_ZTS14McPATComponent", !18, i64 8, !6, i64 288, !22, i64 296, !25, i64 664, !10, i64 696, !28, i64 704, !32, i64 728, !33, i64 776, !33, i64 944, !20, i64 1112, !20, i64 1232}
!18 = !{!"_ZTS9Component", !19, i64 0, !20, i64 24, !20, i64 144, !10, i64 264, !10, i64 272}
!19 = !{!"_ZTS4Area", !10, i64 0, !10, i64 8, !10, i64 16}
!20 = !{!"_ZTS8powerDef", !21, i64 0, !21, i64 40, !21, i64 80}
!21 = !{!"_ZTS15powerComponents", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!22 = !{!"_ZTS14InputParameter", !23, i64 0, !23, i64 4, !23, i64 8, !23, i64 12, !23, i64 16, !12, i64 20, !23, i64 24, !23, i64 28, !23, i64 32, !23, i64 36, !23, i64 40, !23, i64 44, !10, i64 48, !10, i64 56, !23, i64 64, !23, i64 68, !23, i64 72, !23, i64 76, !23, i64 80, !12, i64 84, !12, i64 85, !12, i64 86, !12, i64 87, !12, i64 88, !23, i64 92, !23, i64 96, !23, i64 100, !23, i64 104, !23, i64 108, !23, i64 112, !23, i64 116, !23, i64 120, !23, i64 124, !23, i64 128, !23, i64 132, !23, i64 136, !23, i64 140, !23, i64 144, !23, i64 148, !24, i64 152, !23, i64 156, !12, i64 160, !23, i64 164, !23, i64 168, !23, i64 172, !23, i64 176, !23, i64 180, !23, i64 184, !23, i64 188, !12, i64 192, !23, i64 196, !23, i64 200, !23, i64 204, !23, i64 208, !23, i64 212, !23, i64 216, !23, i64 220, !23, i64 224, !23, i64 228, !23, i64 232, !23, i64 236, !23, i64 240, !23, i64 244, !23, i64 248, !23, i64 252, !23, i64 256, !23, i64 260, !23, i64 264, !23, i64 268, !23, i64 272, !23, i64 276, !23, i64 280, !23, i64 284, !23, i64 288, !23, i64 292, !23, i64 296, !12, i64 300, !23, i64 304, !23, i64 308, !23, i64 312, !12, i64 316, !12, i64 317, !23, i64 320, !23, i64 324, !12, i64 328, !10, i64 336, !10, i64 344, !12, i64 352, !23, i64 356, !23, i64 360, !12, i64 364}
!23 = !{!"int", !7, i64 0}
!24 = !{!"_ZTS9Wire_type", !7, i64 0}
!25 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !26, i64 0, !27, i64 8, !7, i64 16}
!26 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!27 = !{!"long", !7, i64 0}
!28 = !{!"_ZTSSt6vectorIP14McPATComponentSaIS1_EE", !29, i64 0}
!29 = !{!"_ZTSSt12_Vector_baseIP14McPATComponentSaIS1_EE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseIP14McPATComponentSaIS1_EE12_Vector_implE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseIP14McPATComponentSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!32 = !{!"_ZTS11McPATOutput", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!33 = !{!"_ZTS8statsDef", !34, i64 0, !34, i64 24, !34, i64 48, !34, i64 72, !34, i64 96, !34, i64 120, !34, i64 144}
!34 = !{!"_ZTS15statsComponents", !10, i64 0, !10, i64 8, !10, i64 16}
!35 = !{!"_ZTS14CoreParameters", !12, i64 0, !12, i64 1, !12, i64 2, !36, i64 4, !37, i64 8, !38, i64 12, !10, i64 16, !23, i64 24, !23, i64 28, !23, i64 32, !23, i64 36, !23, i64 40, !23, i64 44, !23, i64 48, !23, i64 52, !23, i64 56, !23, i64 60, !23, i64 64, !23, i64 68, !23, i64 72, !23, i64 76, !23, i64 80, !23, i64 84, !23, i64 88, !23, i64 92, !23, i64 96, !23, i64 100, !23, i64 104, !23, i64 108, !23, i64 112, !23, i64 116, !23, i64 120, !23, i64 124, !23, i64 128, !23, i64 132, !23, i64 136, !23, i64 140, !23, i64 144, !23, i64 148, !10, i64 152, !23, i64 160, !23, i64 164, !23, i64 168, !23, i64 172, !12, i64 176, !12, i64 177, !7, i64 184, !23, i64 216, !23, i64 220, !23, i64 224, !23, i64 228, !23, i64 232, !23, i64 236, !23, i64 240, !10, i64 248, !10, i64 256, !23, i64 264, !23, i64 268, !23, i64 272, !23, i64 276, !23, i64 280, !23, i64 284, !23, i64 288, !23, i64 292, !23, i64 296, !23, i64 300, !23, i64 304, !23, i64 308, !23, i64 312, !23, i64 316, !23, i64 320, !23, i64 324, !23, i64 328, !23, i64 332, !23, i64 336, !23, i64 340, !23, i64 344, !23, i64 348, !23, i64 352, !23, i64 356, !23, i64 360, !23, i64 364, !23, i64 368, !23, i64 372, !23, i64 376, !23, i64 380, !23, i64 384, !23, i64 388, !23, i64 392, !23, i64 396, !23, i64 400, !23, i64 404, !23, i64 408, !23, i64 412, !23, i64 416, !23, i64 420, !24, i64 424, !24, i64 428, !23, i64 432, !10, i64 440, !10, i64 448, !23, i64 456, !10, i64 464, !10, i64 472}
!36 = !{!"_ZTS9Core_type", !7, i64 0}
!37 = !{!"_ZTS13Renaming_type", !7, i64 0}
!38 = !{!"_ZTS14Scheduler_type", !7, i64 0}
!39 = !{!"_ZTS14CoreStatistics", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !10, i64 88, !10, i64 96, !10, i64 104, !10, i64 112, !10, i64 120, !10, i64 128, !10, i64 136, !10, i64 144, !10, i64 152, !10, i64 160, !10, i64 168, !10, i64 176, !10, i64 184, !10, i64 192, !10, i64 200, !10, i64 208, !10, i64 216, !10, i64 224, !10, i64 232, !10, i64 240, !10, i64 248, !10, i64 256, !10, i64 264, !10, i64 272, !10, i64 280, !10, i64 288, !10, i64 296, !10, i64 304, !10, i64 312, !10, i64 320, !10, i64 328, !10, i64 336, !10, i64 344, !10, i64 352, !10, i64 360, !10, i64 368, !10, i64 376, !10, i64 384}
!40 = !{!16, !6, i64 1360}
!41 = !{!16, !6, i64 1368}
!42 = !{!16, !6, i64 1376}
!43 = !{!16, !6, i64 1384}
!44 = !{!16, !6, i64 1392}
!45 = !{!16, !6, i64 1400}
!46 = !{!16, !6, i64 1408}
!47 = !{!16, !6, i64 1416}
!48 = !{!16, !6, i64 1424}
!49 = !{!16, !6, i64 1432}
!50 = !{i64 0, i64 4, !51, i64 4, i64 4, !51, i64 8, i64 4, !51, i64 12, i64 4, !51, i64 16, i64 4, !51, i64 20, i64 1, !11, i64 24, i64 4, !51, i64 28, i64 4, !51, i64 32, i64 4, !51, i64 36, i64 4, !51, i64 40, i64 4, !51, i64 44, i64 4, !51, i64 48, i64 8, !9, i64 56, i64 8, !9, i64 64, i64 4, !51, i64 68, i64 4, !51, i64 72, i64 4, !51, i64 76, i64 4, !51, i64 80, i64 4, !51, i64 84, i64 1, !11, i64 85, i64 1, !11, i64 86, i64 1, !11, i64 87, i64 1, !11, i64 88, i64 1, !11, i64 92, i64 4, !51, i64 96, i64 4, !51, i64 100, i64 4, !51, i64 104, i64 4, !51, i64 108, i64 4, !51, i64 112, i64 4, !51, i64 116, i64 4, !51, i64 120, i64 4, !51, i64 124, i64 4, !51, i64 128, i64 4, !51, i64 132, i64 4, !51, i64 136, i64 4, !51, i64 140, i64 4, !51, i64 144, i64 4, !51, i64 148, i64 4, !51, i64 152, i64 4, !52, i64 156, i64 4, !51, i64 160, i64 1, !11, i64 164, i64 4, !51, i64 168, i64 4, !51, i64 172, i64 4, !51, i64 176, i64 4, !51, i64 180, i64 4, !51, i64 184, i64 4, !51, i64 188, i64 4, !51, i64 192, i64 1, !11, i64 196, i64 4, !51, i64 200, i64 4, !51, i64 204, i64 4, !51, i64 208, i64 4, !51, i64 212, i64 4, !51, i64 216, i64 4, !51, i64 220, i64 4, !51, i64 224, i64 4, !51, i64 228, i64 4, !51, i64 232, i64 4, !51, i64 236, i64 4, !51, i64 240, i64 4, !51, i64 244, i64 4, !51, i64 248, i64 4, !51, i64 252, i64 4, !51, i64 256, i64 4, !51, i64 260, i64 4, !51, i64 264, i64 4, !51, i64 268, i64 4, !51, i64 272, i64 4, !51, i64 276, i64 4, !51, i64 280, i64 4, !51, i64 284, i64 4, !51, i64 288, i64 4, !51, i64 292, i64 4, !51, i64 296, i64 4, !51, i64 300, i64 1, !11, i64 304, i64 4, !51, i64 308, i64 4, !51, i64 312, i64 4, !51, i64 316, i64 1, !11, i64 317, i64 1, !11, i64 320, i64 4, !51, i64 324, i64 4, !51, i64 328, i64 1, !11, i64 336, i64 8, !9, i64 344, i64 8, !9, i64 352, i64 1, !11, i64 356, i64 4, !51, i64 360, i64 4, !51, i64 364, i64 1, !11}
!51 = !{!23, !23, i64 0}
!52 = !{!24, !24, i64 0}
!53 = !{!16, !10, i64 1832}
!54 = !{i64 0, i64 1, !11, i64 1, i64 1, !11, i64 2, i64 1, !11, i64 4, i64 4, !55, i64 8, i64 4, !56, i64 12, i64 4, !57, i64 16, i64 8, !9, i64 24, i64 4, !51, i64 28, i64 4, !51, i64 32, i64 4, !51, i64 36, i64 4, !51, i64 40, i64 4, !51, i64 44, i64 4, !51, i64 48, i64 4, !51, i64 52, i64 4, !51, i64 56, i64 4, !51, i64 60, i64 4, !51, i64 64, i64 4, !51, i64 68, i64 4, !51, i64 72, i64 4, !51, i64 76, i64 4, !51, i64 80, i64 4, !51, i64 84, i64 4, !51, i64 88, i64 4, !51, i64 92, i64 4, !51, i64 96, i64 4, !51, i64 100, i64 4, !51, i64 104, i64 4, !51, i64 108, i64 4, !51, i64 112, i64 4, !51, i64 116, i64 4, !51, i64 120, i64 4, !51, i64 124, i64 4, !51, i64 128, i64 4, !51, i64 132, i64 4, !51, i64 136, i64 4, !51, i64 140, i64 4, !51, i64 144, i64 4, !51, i64 148, i64 4, !51, i64 152, i64 8, !9, i64 160, i64 4, !51, i64 164, i64 4, !51, i64 168, i64 4, !51, i64 172, i64 4, !51, i64 176, i64 1, !11, i64 177, i64 1, !11, i64 184, i64 32, !58, i64 216, i64 4, !51, i64 220, i64 4, !51, i64 224, i64 4, !51, i64 228, i64 4, !51, i64 232, i64 4, !51, i64 236, i64 4, !51, i64 240, i64 4, !51, i64 248, i64 8, !9, i64 256, i64 8, !9, i64 264, i64 4, !51, i64 268, i64 4, !51, i64 272, i64 4, !51, i64 276, i64 4, !51, i64 280, i64 4, !51, i64 284, i64 4, !51, i64 288, i64 4, !51, i64 292, i64 4, !51, i64 296, i64 4, !51, i64 300, i64 4, !51, i64 304, i64 4, !51, i64 308, i64 4, !51, i64 312, i64 4, !51, i64 316, i64 4, !51, i64 320, i64 4, !51, i64 324, i64 4, !51, i64 328, i64 4, !51, i64 332, i64 4, !51, i64 336, i64 4, !51, i64 340, i64 4, !51, i64 344, i64 4, !51, i64 348, i64 4, !51, i64 352, i64 4, !51, i64 356, i64 4, !51, i64 360, i64 4, !51, i64 364, i64 4, !51, i64 368, i64 4, !51, i64 372, i64 4, !51, i64 376, i64 4, !51, i64 380, i64 4, !51, i64 384, i64 4, !51, i64 388, i64 4, !51, i64 392, i64 4, !51, i64 396, i64 4, !51, i64 400, i64 4, !51, i64 404, i64 4, !51, i64 408, i64 4, !51, i64 412, i64 4, !51, i64 416, i64 4, !51, i64 420, i64 4, !51, i64 424, i64 4, !52, i64 428, i64 4, !52, i64 432, i64 4, !51, i64 440, i64 8, !9, i64 448, i64 8, !9, i64 456, i64 4, !51, i64 464, i64 8, !9, i64 472, i64 8, !9}
!55 = !{!36, !36, i64 0}
!56 = !{!37, !37, i64 0}
!57 = !{!38, !38, i64 0}
!58 = !{!7, !7, i64 0}
!59 = !{i64 0, i64 8, !9, i64 8, i64 8, !9, i64 16, i64 8, !9, i64 24, i64 8, !9, i64 32, i64 8, !9, i64 40, i64 8, !9, i64 48, i64 8, !9, i64 56, i64 8, !9, i64 64, i64 8, !9, i64 72, i64 8, !9, i64 80, i64 8, !9, i64 88, i64 8, !9, i64 96, i64 8, !9, i64 104, i64 8, !9, i64 112, i64 8, !9, i64 120, i64 8, !9, i64 128, i64 8, !9, i64 136, i64 8, !9, i64 144, i64 8, !9, i64 152, i64 8, !9, i64 160, i64 8, !9, i64 168, i64 8, !9, i64 176, i64 8, !9, i64 184, i64 8, !9, i64 192, i64 8, !9, i64 200, i64 8, !9, i64 208, i64 8, !9, i64 216, i64 8, !9, i64 224, i64 8, !9, i64 232, i64 8, !9, i64 240, i64 8, !9, i64 248, i64 8, !9, i64 256, i64 8, !9, i64 264, i64 8, !9, i64 272, i64 8, !9, i64 280, i64 8, !9, i64 288, i64 8, !9, i64 296, i64 8, !9, i64 304, i64 8, !9, i64 312, i64 8, !9, i64 320, i64 8, !9, i64 328, i64 8, !9, i64 336, i64 8, !9, i64 344, i64 8, !9, i64 352, i64 8, !9, i64 360, i64 8, !9, i64 368, i64 8, !9, i64 376, i64 8, !9, i64 384, i64 8, !9}
!60 = !{i8 0, i8 2}
!61 = !{}
!62 = !{!16, !12, i64 2712}
!63 = !{!16, !10, i64 1856}
!64 = !{!17, !10, i64 696}
!65 = !{!17, !6, i64 288}
!66 = !{!16, !36, i64 1844}
!67 = !{!16, !12, i64 2017}
!68 = !{!69, !10, i64 2592}
!69 = !{!"_ZTS14FunctionalUnit", !17, i64 0, !22, i64 1352, !35, i64 1720, !39, i64 2200, !10, i64 2592, !10, i64 2600, !10, i64 2608, !10, i64 2616, !10, i64 2624, !12, i64 2632, !70, i64 2636, !33, i64 2640}
!70 = !{!"_ZTS7FU_type", !7, i64 0}
!71 = !{!16, !10, i64 1992}
!72 = !{!16, !23, i64 1988}
!73 = !{!16, !24, i64 2268}
!74 = !{!16, !24, i64 1592}
!75 = !{!16, !23, i64 2272}
!76 = !{!16, !23, i64 1584}
!77 = !{!16, !23, i64 1588}
!78 = !{!16, !10, i64 2312}
!79 = !{!16, !10, i64 1776}
!80 = !{!16, !10, i64 1784}
!81 = !{!82, !10, i64 2656}
!82 = !{!"_ZTS10SchedulerU", !17, i64 0, !6, i64 1352, !6, i64 1360, !6, i64 1368, !6, i64 1376, !6, i64 1384, !22, i64 1392, !35, i64 1760, !39, i64 2240, !10, i64 2632, !10, i64 2640, !10, i64 2648, !10, i64 2656, !10, i64 2664, !10, i64 2672, !12, i64 2680}
!83 = !{!82, !10, i64 2672}
!84 = !{!82, !10, i64 2664}
!85 = !{!16, !10, i64 2280}
!86 = !{!16, !10, i64 2288}
!87 = !{!16, !23, i64 2296}
!88 = !{!16, !10, i64 2304}
!89 = !{!16, !24, i64 2264}
!90 = !{!91, !10, i64 2640}
!91 = !{!"_ZTS5RegFU", !17, i64 0, !6, i64 1352, !6, i64 1360, !6, i64 1368, !22, i64 1376, !35, i64 1744, !39, i64 2224, !10, i64 2616, !10, i64 2624, !10, i64 2632, !10, i64 2640, !10, i64 2648, !12, i64 2656}
!92 = !{!16, !12, i64 1840}
!93 = !{!16, !23, i64 1940}
!94 = !{!91, !10, i64 2648}
!95 = !{!16, !38, i64 1852}
!96 = !{!16, !23, i64 2000}
!97 = !{!16, !23, i64 1880}
!98 = !{!16, !23, i64 2004}
!99 = !{!16, !23, i64 1884}


; 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.TechnologyParameter = type { 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, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, i64, %"class.TechnologyParameter::DeviceType", %"class.TechnologyParameter::DeviceType", %"class.TechnologyParameter::DeviceType", %"class.TechnologyParameter::DeviceType", %"class.TechnologyParameter::DeviceType", %"class.TechnologyParameter::InterconnectType", %"class.TechnologyParameter::InterconnectType", %"class.TechnologyParameter::InterconnectType", %"class.TechnologyParameter::ScalingFactor", %"class.TechnologyParameter::MemoryType", %"class.TechnologyParameter::MemoryType", %"class.TechnologyParameter::MemoryType" }
%"class.TechnologyParameter::DeviceType" = type { double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double }
%"class.TechnologyParameter::InterconnectType" = type { double, double, double, double, double, double, double, double }
%"class.TechnologyParameter::ScalingFactor" = type { double, double, double }
%"class.TechnologyParameter::MemoryType" = type { double, double, double, double, double, double }
%"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 }

@_ZN14McPATComponent15data_path_widthE = external local_unnamed_addr global i32, align 4
@_ZTV5EXECU = external dso_local unnamed_addr constant { [6 x ptr] }, align 8
@.str.70 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [16 x i8], align 1
@g_tp = external global %class.TechnologyParameter, align 8
@.str.72 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [14 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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.ceil.f64(double) #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 #3 align 2

; 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: mustprogress nounwind uwtable
declare dso_local void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24), double noundef) local_unnamed_addr #7 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5EXECUC2EP7XMLNodeP14InputParameterdRK14CoreParametersRK14CoreStatisticsb(ptr noundef nonnull align 8 dereferenceable(2713) %0, ptr noundef %1, ptr nocapture noundef readonly %2, double noundef %3, ptr nocapture noundef nonnull readonly align 8 dereferenceable(480) %4, ptr nocapture noundef nonnull readonly align 8 dereferenceable(392) %5, i1 noundef zeroext %6) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::allocator", align 1
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::allocator", align 1
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::allocator", align 1
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::allocator", align 1
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::allocator", align 1
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::allocator", align 1
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::allocator", align 1
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator", align 1
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::allocator", align 1
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::allocator", align 1
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::allocator", align 1
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::allocator", align 1
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::allocator", align 1
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::allocator", align 1
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::allocator", align 1
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::allocator", align 1
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::allocator", align 1
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::allocator", align 1
  %44 = alloca ptr, align 8
  %45 = alloca ptr, align 8
  %46 = alloca ptr, align 8
  %47 = alloca ptr, align 8
  %48 = alloca ptr, align 8
  %49 = alloca ptr, align 8
  %50 = zext i1 %6 to i8
  tail call void @_ZN14McPATComponentC2EP7XMLNode(ptr noundef nonnull align 8 dereferenceable(1352) %0, ptr noundef %1)
  store ptr getelementptr inbounds inrange(-16, 32) (i8, ptr @_ZTV5EXECU, i64 16), ptr %0, align 8, !tbaa !5
  %51 = getelementptr inbounds i8, ptr %0, i64 1352
  %52 = getelementptr inbounds i8, ptr %0, i64 1360
  %53 = getelementptr inbounds i8, ptr %0, i64 1368
  %54 = getelementptr inbounds i8, ptr %0, i64 1376
  %55 = getelementptr inbounds i8, ptr %0, i64 1384
  %56 = getelementptr inbounds i8, ptr %0, i64 1392
  %57 = getelementptr inbounds i8, ptr %0, i64 1400
  %58 = getelementptr inbounds i8, ptr %0, i64 1408
  %59 = getelementptr inbounds i8, ptr %0, i64 1416
  %60 = getelementptr inbounds i8, ptr %0, i64 1424
  %61 = getelementptr inbounds i8, ptr %0, i64 1432
  %62 = getelementptr inbounds i8, ptr %0, i64 1440
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(88) %51, i8 0, i64 88, i1 false)
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(368) %62, ptr noundef nonnull align 8 dereferenceable(368) %2, i64 368, i1 false), !tbaa.struct !8
  %63 = getelementptr inbounds i8, ptr %0, i64 1832
  store double %3, ptr %63, align 8, !tbaa !18
  %64 = getelementptr inbounds i8, ptr %0, i64 1840
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(480) %64, ptr noundef nonnull align 8 dereferenceable(480) %4, i64 480, i1 false), !tbaa.struct !42
  %65 = getelementptr inbounds i8, ptr %0, i64 2320
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(392) %65, ptr noundef nonnull align 8 dereferenceable(392) %5, i64 392, i1 false), !tbaa.struct !47
  %66 = getelementptr inbounds i8, ptr %0, i64 2712
  store i8 %50, ptr %66, align 8, !tbaa !48
  br i1 %6, label %67, label %790

67:                                               ; preds = %7
  %68 = getelementptr inbounds i8, ptr %0, i64 1856
  %69 = load double, ptr %68, align 8, !tbaa !49
  %70 = getelementptr inbounds i8, ptr %0, i64 696
  store double %69, ptr %70, align 8, !tbaa !50
  %71 = getelementptr inbounds i8, ptr %0, i64 664
  %72 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef nonnull @.str.70)
          to label %73 unwind label %96

73:                                               ; preds = %67
  %74 = invoke noalias noundef nonnull dereferenceable(2664) ptr @_Znwm(i64 noundef 2664) #11
          to label %75 unwind label %96

75:                                               ; preds = %73
  %76 = getelementptr inbounds i8, ptr %0, i64 288
  %77 = load ptr, ptr %76, align 8, !tbaa !51
  invoke void @_ZN5RegFUC1EP7XMLNodeP14InputParameterRK14CoreParametersRK14CoreStatisticsb(ptr noundef nonnull align 8 dereferenceable(2657) %74, ptr noundef %77, ptr noundef nonnull %62, ptr noundef nonnull align 8 dereferenceable(480) %64, ptr noundef nonnull align 8 dereferenceable(392) %65, i1 noundef zeroext true)
          to label %78 unwind label %98

78:                                               ; preds = %75
  store ptr %74, ptr %51, align 8, !tbaa !52
  %79 = getelementptr inbounds i8, ptr %0, i64 1844
  %80 = load i32, ptr %79, align 4, !tbaa !53
  switch i32 %80, label %102 [
    i32 0, label %85
    i32 1, label %81
  ]

81:                                               ; preds = %78
  %82 = getelementptr inbounds i8, ptr %0, i64 2017
  %83 = load i8, ptr %82, align 1, !tbaa !54, !range !55, !noundef !56
  %84 = trunc nuw i8 %83 to i1
  br i1 %84, label %85, label %102

85:                                               ; preds = %78, %81
  %86 = invoke noalias noundef nonnull dereferenceable(2688) ptr @_Znwm(i64 noundef 2688) #11
          to label %87 unwind label %96

87:                                               ; preds = %85
  %88 = load ptr, ptr %76, align 8, !tbaa !51
  invoke void @_ZN10SchedulerUC1EP7XMLNodeP14InputParameterRK14CoreParametersRK14CoreStatisticsb(ptr noundef nonnull align 8 dereferenceable(2681) %86, ptr noundef %88, ptr noundef nonnull %62, ptr noundef nonnull align 8 dereferenceable(480) %64, ptr noundef nonnull align 8 dereferenceable(392) %65, i1 noundef zeroext true)
          to label %89 unwind label %100

89:                                               ; preds = %87
  store ptr %86, ptr %52, align 8, !tbaa !57
  %90 = getelementptr inbounds i8, ptr %0, i64 8
  %91 = tail call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %90)
  %92 = load ptr, ptr %52, align 8, !tbaa !57
  %93 = getelementptr inbounds i8, ptr %92, i64 8
  %94 = tail call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %93)
  %95 = fadd double %91, %94
  tail call void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %90, double noundef %95)
  br label %102

96:                                               ; preds = %138, %120, %102, %85, %73, %67
  %97 = landingpad { ptr, i32 }
          cleanup
  br label %791

98:                                               ; preds = %75
  %99 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %74, i64 noundef 2664) #12
  br label %791

100:                                              ; preds = %87
  %101 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %86, i64 noundef 2688) #12
  br label %791

102:                                              ; preds = %78, %89, %81
  %103 = invoke noalias noundef nonnull dereferenceable(2808) ptr @_Znwm(i64 noundef 2808) #11
          to label %104 unwind label %96

104:                                              ; preds = %102
  %105 = load ptr, ptr %76, align 8, !tbaa !51
  invoke void @_ZN14FunctionalUnitC1EP7XMLNodeP14InputParameterRK14CoreParametersRK14CoreStatistics7FU_type(ptr noundef nonnull align 8 dereferenceable(2808) %103, ptr noundef %105, ptr noundef nonnull %62, ptr noundef nonnull align 8 dereferenceable(480) %64, ptr noundef nonnull align 8 dereferenceable(392) %65, i32 noundef 1)
          to label %106 unwind label %130

106:                                              ; preds = %104
  store ptr %103, ptr %54, align 8, !tbaa !58
  %107 = getelementptr inbounds i8, ptr %0, i64 8
  %108 = tail call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %107)
  %109 = load ptr, ptr %54, align 8, !tbaa !58
  %110 = getelementptr inbounds i8, ptr %109, i64 8
  %111 = tail call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %110)
  %112 = fadd double %108, %111
  %113 = load ptr, ptr %51, align 8, !tbaa !52
  %114 = getelementptr inbounds i8, ptr %113, i64 8
  %115 = tail call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %114)
  %116 = fadd double %112, %115
  tail call void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %107, double noundef %116)
  %117 = getelementptr inbounds i8, ptr %0, i64 1992
  %118 = load double, ptr %117, align 8, !tbaa !59
  %119 = fcmp ogt double %118, 0.000000e+00
  br i1 %119, label %120, label %134

120:                                              ; preds = %106
  %121 = invoke noalias noundef nonnull dereferenceable(2808) ptr @_Znwm(i64 noundef 2808) #11
          to label %122 unwind label %96

122:                                              ; preds = %120
  %123 = load ptr, ptr %76, align 8, !tbaa !51
  invoke void @_ZN14FunctionalUnitC1EP7XMLNodeP14InputParameterRK14CoreParametersRK14CoreStatistics7FU_type(ptr noundef nonnull align 8 dereferenceable(2808) %121, ptr noundef %123, ptr noundef nonnull %62, ptr noundef nonnull align 8 dereferenceable(480) %64, ptr noundef nonnull align 8 dereferenceable(392) %65, i32 noundef 0)
          to label %124 unwind label %132

124:                                              ; preds = %122
  store ptr %121, ptr %53, align 8, !tbaa !60
  %125 = tail call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %107)
  %126 = load ptr, ptr %53, align 8, !tbaa !60
  %127 = getelementptr inbounds i8, ptr %126, i64 8
  %128 = tail call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %127)
  %129 = fadd double %125, %128
  tail call void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %107, double noundef %129)
  br label %134

130:                                              ; preds = %104
  %131 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %103, i64 noundef 2808) #12
  br label %791

132:                                              ; preds = %122
  %133 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %121, i64 noundef 2808) #12
  br label %791

134:                                              ; preds = %124, %106
  %135 = getelementptr inbounds i8, ptr %0, i64 1988
  %136 = load i32, ptr %135, align 4, !tbaa !61
  %137 = icmp sgt i32 %136, 0
  br i1 %137, label %138, label %150

138:                                              ; preds = %134
  %139 = invoke noalias noundef nonnull dereferenceable(2808) ptr @_Znwm(i64 noundef 2808) #11
          to label %140 unwind label %96

140:                                              ; preds = %138
  %141 = load ptr, ptr %76, align 8, !tbaa !51
  invoke void @_ZN14FunctionalUnitC1EP7XMLNodeP14InputParameterRK14CoreParametersRK14CoreStatistics7FU_type(ptr noundef nonnull align 8 dereferenceable(2808) %139, ptr noundef %141, ptr noundef nonnull %62, ptr noundef nonnull align 8 dereferenceable(480) %64, ptr noundef nonnull align 8 dereferenceable(392) %65, i32 noundef 2)
          to label %142 unwind label %148

142:                                              ; preds = %140
  store ptr %139, ptr %55, align 8, !tbaa !62
  %143 = tail call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %107)
  %144 = load ptr, ptr %55, align 8, !tbaa !62
  %145 = getelementptr inbounds i8, ptr %144, i64 8
  %146 = tail call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %145)
  %147 = fadd double %143, %146
  tail call void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %107, double noundef %147)
  br label %150

148:                                              ; preds = %140
  %149 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %139, i64 noundef 2808) #12
  br label %791

150:                                              ; preds = %142, %134
  %151 = getelementptr inbounds i8, ptr %0, i64 2268
  %152 = load i32, ptr %151, align 4, !tbaa !63
  %153 = getelementptr inbounds i8, ptr %0, i64 1592
  store i32 %152, ptr %153, align 8, !tbaa !64
  %154 = getelementptr inbounds i8, ptr %0, i64 2272
  %155 = load i32, ptr %154, align 8, !tbaa !65
  %156 = getelementptr inbounds i8, ptr %0, i64 1584
  store i32 %155, ptr %156, align 8, !tbaa !66
  %157 = getelementptr inbounds i8, ptr %0, i64 1588
  store i32 %155, ptr %157, align 4, !tbaa !67
  %158 = getelementptr inbounds i8, ptr %0, i64 2312
  %159 = load double, ptr %158, align 8, !tbaa !68
  %160 = load double, ptr %70, align 8, !tbaa !50
  %161 = fdiv double %159, %160
  %162 = getelementptr inbounds i8, ptr %0, i64 1776
  store double %161, ptr %162, align 8, !tbaa !69
  %163 = getelementptr inbounds i8, ptr %0, i64 1784
  store double %161, ptr %163, align 8, !tbaa !70
  %164 = load ptr, ptr %52, align 8, !tbaa !57
  %.not = icmp eq ptr %164, null
  br i1 %.not, label %172, label %165

165:                                              ; preds = %150
  %166 = getelementptr inbounds i8, ptr %164, i64 2656
  %167 = load double, ptr %166, align 8, !tbaa !71
  %168 = getelementptr inbounds i8, ptr %164, i64 2672
  %169 = load double, ptr %168, align 8, !tbaa !73
  %170 = getelementptr inbounds i8, ptr %164, i64 2664
  %171 = load double, ptr %170, align 8, !tbaa !74
  br label %172

172:                                              ; preds = %165, %150
  %.0196 = phi double [ %171, %165 ], [ 0.000000e+00, %150 ]
  %.0195 = phi double [ %169, %165 ], [ 0.000000e+00, %150 ]
  %.0194 = phi double [ %167, %165 ], [ 0.000000e+00, %150 ]
  %173 = getelementptr inbounds i8, ptr %0, i64 2280
  %174 = load double, ptr %173, align 8, !tbaa !75
  %175 = getelementptr inbounds i8, ptr %0, i64 2288
  %176 = load double, ptr %175, align 8, !tbaa !76
  %177 = getelementptr inbounds i8, ptr %0, i64 2296
  %178 = load i32, ptr %177, align 8, !tbaa !77
  %179 = getelementptr inbounds i8, ptr %0, i64 2304
  %180 = load double, ptr %179, align 8, !tbaa !78
  %181 = getelementptr inbounds i8, ptr %0, i64 2264
  %182 = load i32, ptr %181, align 8, !tbaa !79
  %183 = load i32, ptr %79, align 4, !tbaa !53
  %184 = icmp eq i32 %183, 1
  br i1 %184, label %185, label %366

185:                                              ; preds = %172
  %186 = load i32, ptr @_ZN14McPATComponent15data_path_widthE, align 4, !tbaa !9
  %187 = sitofp i32 %186 to double
  %188 = fmul double %187, 3.125000e-02
  %189 = tail call double @llvm.ceil.f64(double %188)
  %190 = fmul double %189, 3.200000e+01
  %191 = fptosi double %190 to i32
  %192 = load ptr, ptr %51, align 8, !tbaa !52
  %193 = getelementptr inbounds i8, ptr %192, i64 2640
  %194 = load double, ptr %193, align 8, !tbaa !80
  %195 = load ptr, ptr %54, align 8, !tbaa !58
  %196 = getelementptr inbounds i8, ptr %195, i64 2592
  %197 = load double, ptr %196, align 8, !tbaa !82
  %198 = fadd double %194, %197
  %199 = load double, ptr %63, align 8, !tbaa !18
  %200 = fadd double %198, %199
  %201 = invoke noalias noundef nonnull dereferenceable(10288) ptr @_Znwm(i64 noundef 10288) #11
          to label %202 unwind label %287

202:                                              ; preds = %185
  %203 = load ptr, ptr %76, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.71, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %204 unwind label %289

204:                                              ; preds = %202
  %205 = load double, ptr %70, align 8, !tbaa !50
  %206 = load i8, ptr %64, align 8, !tbaa !85, !range !55, !noundef !56
  %207 = trunc nuw i8 %206 to i1
  %208 = load i32, ptr %79, align 4, !tbaa !53
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %201, ptr noundef %203, ptr noundef nonnull %8, i32 noundef 0, double noundef %174, double noundef %176, i32 noundef %191, double noundef %200, ptr noundef nonnull %62, i32 noundef %178, double noundef %205, i1 noundef zeroext false, double noundef %180, i1 noundef zeroext %207, i32 noundef %208, i32 noundef %182, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef nonnull getelementptr inbounds (i8, ptr @g_tp, i64 864))
          to label %209 unwind label %291

209:                                              ; preds = %204
  store ptr %201, ptr %56, align 8, !tbaa !86
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #13
  %210 = getelementptr inbounds i8, ptr %0, i64 1940
  %211 = load i32, ptr %210, align 4, !tbaa !87
  %212 = load ptr, ptr %51, align 8, !tbaa !52
  %213 = getelementptr inbounds i8, ptr %212, i64 2640
  %214 = load double, ptr %213, align 8, !tbaa !80
  %215 = load ptr, ptr %54, align 8, !tbaa !58
  %216 = getelementptr inbounds i8, ptr %215, i64 2592
  %217 = load double, ptr %216, align 8, !tbaa !82
  %218 = fadd double %214, %217
  %219 = load double, ptr %63, align 8, !tbaa !18
  %220 = fadd double %218, %219
  %221 = fadd double %.0194, %220
  %222 = invoke noalias noundef nonnull dereferenceable(10288) ptr @_Znwm(i64 noundef 10288) #11
          to label %223 unwind label %287

223:                                              ; preds = %209
  %224 = load ptr, ptr %76, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull @.str.72, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %225 unwind label %294

225:                                              ; preds = %223
  %226 = load double, ptr %70, align 8, !tbaa !50
  %227 = load i8, ptr %64, align 8, !tbaa !85, !range !55, !noundef !56
  %228 = trunc nuw i8 %227 to i1
  %229 = load i32, ptr %79, align 4, !tbaa !53
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %222, ptr noundef %224, ptr noundef nonnull %10, i32 noundef 0, double noundef %174, double noundef %176, i32 noundef %211, double noundef %221, ptr noundef nonnull %62, i32 noundef %178, double noundef %226, i1 noundef zeroext false, double noundef %180, i1 noundef zeroext %228, i32 noundef %229, i32 noundef %182, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef nonnull getelementptr inbounds (i8, ptr @g_tp, i64 864))
          to label %230 unwind label %296

230:                                              ; preds = %225
  store ptr %222, ptr %57, align 8, !tbaa !88
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #13
  %231 = load i32, ptr %135, align 4, !tbaa !61
  %232 = icmp sgt i32 %231, 0
  br i1 %232, label %233, label %309

233:                                              ; preds = %230
  %234 = load i32, ptr @_ZN14McPATComponent15data_path_widthE, align 4, !tbaa !9
  %235 = sitofp i32 %234 to double
  %236 = fmul double %235, 3.125000e-02
  %237 = call double @llvm.ceil.f64(double %236)
  %238 = fmul double %237, 3.200000e+01
  %239 = fmul double %238, 1.500000e+00
  %240 = fptosi double %239 to i32
  %241 = load ptr, ptr %51, align 8, !tbaa !52
  %242 = getelementptr inbounds i8, ptr %241, i64 2648
  %243 = load double, ptr %242, align 8, !tbaa !89
  %244 = load ptr, ptr %54, align 8, !tbaa !58
  %245 = getelementptr inbounds i8, ptr %244, i64 2592
  %246 = load double, ptr %245, align 8, !tbaa !82
  %247 = fadd double %243, %246
  %248 = load ptr, ptr %55, align 8, !tbaa !62
  %249 = getelementptr inbounds i8, ptr %248, i64 2592
  %250 = load double, ptr %249, align 8, !tbaa !82
  %251 = fadd double %247, %250
  %252 = load double, ptr %63, align 8, !tbaa !18
  %253 = fadd double %251, %252
  %254 = invoke noalias noundef nonnull dereferenceable(10288) ptr @_Znwm(i64 noundef 10288) #11
          to label %255 unwind label %287

255:                                              ; preds = %233
  %256 = load ptr, ptr %76, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %13) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull @.str.73, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %257 unwind label %299

257:                                              ; preds = %255
  %258 = load double, ptr %70, align 8, !tbaa !50
  %259 = load i8, ptr %64, align 8, !tbaa !85, !range !55, !noundef !56
  %260 = trunc nuw i8 %259 to i1
  %261 = load i32, ptr %79, align 4, !tbaa !53
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %254, ptr noundef %256, ptr noundef nonnull %12, i32 noundef 0, double noundef %174, double noundef %176, i32 noundef %240, double noundef %253, ptr noundef nonnull %62, i32 noundef %178, double noundef %258, i1 noundef zeroext false, double noundef %180, i1 noundef zeroext %260, i32 noundef %261, i32 noundef %182, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef nonnull getelementptr inbounds (i8, ptr @g_tp, i64 864))
          to label %262 unwind label %301

262:                                              ; preds = %257
  store ptr %254, ptr %58, align 8, !tbaa !90
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #13
  %263 = load i32, ptr %210, align 4, !tbaa !87
  %264 = load ptr, ptr %51, align 8, !tbaa !52
  %265 = getelementptr inbounds i8, ptr %264, i64 2648
  %266 = load double, ptr %265, align 8, !tbaa !89
  %267 = load ptr, ptr %54, align 8, !tbaa !58
  %268 = getelementptr inbounds i8, ptr %267, i64 2592
  %269 = load double, ptr %268, align 8, !tbaa !82
  %270 = fadd double %266, %269
  %271 = load ptr, ptr %55, align 8, !tbaa !62
  %272 = getelementptr inbounds i8, ptr %271, i64 2592
  %273 = load double, ptr %272, align 8, !tbaa !82
  %274 = fadd double %270, %273
  %275 = load double, ptr %63, align 8, !tbaa !18
  %276 = fadd double %274, %275
  %277 = fadd double %.0194, %276
  %278 = invoke noalias noundef nonnull dereferenceable(10288) ptr @_Znwm(i64 noundef 10288) #11
          to label %279 unwind label %287

279:                                              ; preds = %262
  %280 = load ptr, ptr %76, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %15) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.74, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %281 unwind label %304

281:                                              ; preds = %279
  %282 = load double, ptr %70, align 8, !tbaa !50
  %283 = load i8, ptr %64, align 8, !tbaa !85, !range !55, !noundef !56
  %284 = trunc nuw i8 %283 to i1
  %285 = load i32, ptr %79, align 4, !tbaa !53
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %278, ptr noundef %280, ptr noundef nonnull %14, i32 noundef 0, double noundef %174, double noundef %176, i32 noundef %263, double noundef %277, ptr noundef nonnull %62, i32 noundef %178, double noundef %282, i1 noundef zeroext false, double noundef %180, i1 noundef zeroext %284, i32 noundef %285, i32 noundef %182, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef nonnull getelementptr inbounds (i8, ptr @g_tp, i64 864))
          to label %286 unwind label %306

286:                                              ; preds = %281
  store ptr %278, ptr %59, align 8, !tbaa !91
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #13
  br label %309

287:                                              ; preds = %680, %656, %607, %580, %555, %544, %511, %491, %442, %417, %392, %383, %335, %312, %262, %233, %209, %185
  %288 = landingpad { ptr, i32 }
          cleanup
  br label %791

289:                                              ; preds = %202
  %290 = landingpad { ptr, i32 }
          cleanup
  br label %293

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

293:                                              ; preds = %291, %289
  %.pn222 = phi { ptr, i32 } [ %292, %291 ], [ %290, %289 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #13
  call void @_ZdlPvm(ptr noundef nonnull %201, i64 noundef 10288) #12
  br label %791

294:                                              ; preds = %223
  %295 = landingpad { ptr, i32 }
          cleanup
  br label %298

296:                                              ; preds = %225
  %297 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #13
  br label %298

298:                                              ; preds = %296, %294
  %.pn224 = phi { ptr, i32 } [ %297, %296 ], [ %295, %294 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #13
  call void @_ZdlPvm(ptr noundef nonnull %222, i64 noundef 10288) #12
  br label %791

299:                                              ; preds = %255
  %300 = landingpad { ptr, i32 }
          cleanup
  br label %303

301:                                              ; preds = %257
  %302 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #13
  br label %303

303:                                              ; preds = %301, %299
  %.pn226 = phi { ptr, i32 } [ %302, %301 ], [ %300, %299 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #13
  call void @_ZdlPvm(ptr noundef nonnull %254, i64 noundef 10288) #12
  br label %791

304:                                              ; preds = %279
  %305 = landingpad { ptr, i32 }
          cleanup
  br label %308

306:                                              ; preds = %281
  %307 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #13
  br label %308

308:                                              ; preds = %306, %304
  %.pn228 = phi { ptr, i32 } [ %307, %306 ], [ %305, %304 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #13
  call void @_ZdlPvm(ptr noundef nonnull %278, i64 noundef 10288) #12
  br label %791

309:                                              ; preds = %286, %230
  %310 = load double, ptr %117, align 8, !tbaa !59
  %311 = fcmp ogt double %310, 0.000000e+00
  br i1 %311, label %312, label %713

312:                                              ; preds = %309
  %313 = load i32, ptr @_ZN14McPATComponent15data_path_widthE, align 4, !tbaa !9
  %314 = sitofp i32 %313 to double
  %315 = fmul double %314, 3.125000e-02
  %316 = call double @llvm.ceil.f64(double %315)
  %317 = fmul double %316, 3.200000e+01
  %318 = fmul double %317, 1.500000e+00
  %319 = fptosi double %318 to i32
  %320 = load ptr, ptr %51, align 8, !tbaa !52
  %321 = getelementptr inbounds i8, ptr %320, i64 2648
  %322 = load double, ptr %321, align 8, !tbaa !89
  %323 = load ptr, ptr %53, align 8, !tbaa !60
  %324 = getelementptr inbounds i8, ptr %323, i64 2592
  %325 = load double, ptr %324, align 8, !tbaa !82
  %326 = fadd double %322, %325
  %327 = invoke noalias noundef nonnull dereferenceable(10288) ptr @_Znwm(i64 noundef 10288) #11
          to label %328 unwind label %287

328:                                              ; preds = %312
  %329 = load ptr, ptr %76, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull @.str.75, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %330 unwind label %356

330:                                              ; preds = %328
  %331 = load double, ptr %70, align 8, !tbaa !50
  %332 = load i8, ptr %64, align 8, !tbaa !85, !range !55, !noundef !56
  %333 = trunc nuw i8 %332 to i1
  %334 = load i32, ptr %79, align 4, !tbaa !53
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %327, ptr noundef %329, ptr noundef nonnull %16, i32 noundef 0, double noundef %174, double noundef %176, i32 noundef %319, double noundef %326, ptr noundef nonnull %62, i32 noundef %178, double noundef %331, i1 noundef zeroext false, double noundef %180, i1 noundef zeroext %333, i32 noundef %334, i32 noundef %182, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef nonnull getelementptr inbounds (i8, ptr @g_tp, i64 864))
          to label %335 unwind label %358

335:                                              ; preds = %330
  store ptr %327, ptr %60, align 8, !tbaa !92
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #13
  %336 = load i32, ptr %210, align 4, !tbaa !87
  %337 = load ptr, ptr %51, align 8, !tbaa !52
  %338 = getelementptr inbounds i8, ptr %337, i64 2648
  %339 = load double, ptr %338, align 8, !tbaa !89
  %340 = load ptr, ptr %53, align 8, !tbaa !60
  %341 = getelementptr inbounds i8, ptr %340, i64 2592
  %342 = load double, ptr %341, align 8, !tbaa !82
  %343 = fadd double %339, %342
  %344 = load double, ptr %63, align 8, !tbaa !18
  %345 = fadd double %343, %344
  %346 = fadd double %.0194, %345
  %347 = invoke noalias noundef nonnull dereferenceable(10288) ptr @_Znwm(i64 noundef 10288) #11
          to label %348 unwind label %287

348:                                              ; preds = %335
  %349 = load ptr, ptr %76, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull @.str.76, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %350 unwind label %361

350:                                              ; preds = %348
  %351 = load double, ptr %70, align 8, !tbaa !50
  %352 = load i8, ptr %64, align 8, !tbaa !85, !range !55, !noundef !56
  %353 = trunc nuw i8 %352 to i1
  %354 = load i32, ptr %79, align 4, !tbaa !53
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %347, ptr noundef %349, ptr noundef nonnull %18, i32 noundef 0, double noundef %174, double noundef %176, i32 noundef %336, double noundef %346, ptr noundef nonnull %62, i32 noundef %178, double noundef %351, i1 noundef zeroext false, double noundef %180, i1 noundef zeroext %353, i32 noundef %354, i32 noundef %182, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef nonnull getelementptr inbounds (i8, ptr @g_tp, i64 864))
          to label %355 unwind label %363

355:                                              ; preds = %350
  store ptr %347, ptr %61, align 8, !tbaa !93
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #13
  br label %713

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

358:                                              ; preds = %330
  %359 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #13
  br label %360

360:                                              ; preds = %358, %356
  %.pn230 = phi { ptr, i32 } [ %359, %358 ], [ %357, %356 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #13
  call void @_ZdlPvm(ptr noundef nonnull %327, i64 noundef 10288) #12
  br label %791

361:                                              ; preds = %348
  %362 = landingpad { ptr, i32 }
          cleanup
  br label %365

363:                                              ; preds = %350
  %364 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #13
  br label %365

365:                                              ; preds = %363, %361
  %.pn232 = phi { ptr, i32 } [ %364, %363 ], [ %362, %361 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #13
  call void @_ZdlPvm(ptr noundef nonnull %347, i64 noundef 10288) #12
  br label %791

366:                                              ; preds = %172
  %367 = getelementptr inbounds i8, ptr %0, i64 1852
  %368 = load i32, ptr %367, align 4, !tbaa !94
  %369 = icmp eq i32 %368, 0
  %370 = getelementptr inbounds i8, ptr %0, i64 2000
  %371 = load i32, ptr %370, align 8, !tbaa !95
  %372 = tail call noundef double @_ZSt4ceilIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_(i32 noundef %371)
  %373 = fptosi double %372 to i32
  %374 = load ptr, ptr %51, align 8, !tbaa !52
  %375 = getelementptr inbounds i8, ptr %374, i64 2640
  %376 = load double, ptr %375, align 8, !tbaa !80
  %377 = load ptr, ptr %54, align 8, !tbaa !58
  %378 = getelementptr inbounds i8, ptr %377, i64 2592
  %379 = load double, ptr %378, align 8, !tbaa !82
  %380 = fadd double %376, %379
  %381 = load double, ptr %63, align 8, !tbaa !18
  %382 = fadd double %380, %381
  br i1 %369, label %383, label %544

383:                                              ; preds = %366
  %384 = invoke noalias noundef nonnull dereferenceable(10288) ptr @_Znwm(i64 noundef 10288) #11
          to label %385 unwind label %287

385:                                              ; preds = %383
  %386 = load ptr, ptr %76, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %21) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull @.str.71, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %387 unwind label %468

387:                                              ; preds = %385
  %388 = load double, ptr %70, align 8, !tbaa !50
  %389 = load i8, ptr %64, align 8, !tbaa !85, !range !55, !noundef !56
  %390 = trunc nuw i8 %389 to i1
  %391 = load i32, ptr %79, align 4, !tbaa !53
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %384, ptr noundef %386, ptr noundef nonnull %20, i32 noundef 0, double noundef %174, double noundef %176, i32 noundef %373, double noundef %382, ptr noundef nonnull %62, i32 noundef %178, double noundef %388, i1 noundef zeroext false, double noundef %180, i1 noundef zeroext %390, i32 noundef %391, i32 noundef %182, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef nonnull getelementptr inbounds (i8, ptr @g_tp, i64 864))
          to label %392 unwind label %470

392:                                              ; preds = %387
  store ptr %384, ptr %56, align 8, !tbaa !86
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #13
  %393 = getelementptr inbounds i8, ptr %0, i64 1880
  %394 = load i32, ptr %393, align 8, !tbaa !96
  %395 = load ptr, ptr %51, align 8, !tbaa !52
  %396 = getelementptr inbounds i8, ptr %395, i64 2640
  %397 = load double, ptr %396, align 8, !tbaa !80
  %398 = load ptr, ptr %54, align 8, !tbaa !58
  %399 = getelementptr inbounds i8, ptr %398, i64 2592
  %400 = load double, ptr %399, align 8, !tbaa !82
  %401 = fadd double %397, %400
  %402 = load double, ptr %63, align 8, !tbaa !18
  %403 = fadd double %401, %402
  %404 = fadd double %.0194, %403
  %405 = fadd double %.0195, %404
  %406 = invoke noalias noundef nonnull dereferenceable(10288) ptr @_Znwm(i64 noundef 10288) #11
          to label %407 unwind label %287

407:                                              ; preds = %392
  %408 = load ptr, ptr %76, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %23) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull @.str.72, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %409 unwind label %473

409:                                              ; preds = %407
  %410 = load double, ptr %70, align 8, !tbaa !50
  %411 = load i8, ptr %64, align 8, !tbaa !85, !range !55, !noundef !56
  %412 = trunc nuw i8 %411 to i1
  %413 = load i32, ptr %79, align 4, !tbaa !53
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %406, ptr noundef %408, ptr noundef nonnull %22, i32 noundef 0, double noundef %174, double noundef %176, i32 noundef %394, double noundef %405, ptr noundef nonnull %62, i32 noundef %178, double noundef %410, i1 noundef zeroext false, double noundef %180, i1 noundef zeroext %412, i32 noundef %413, i32 noundef %182, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef nonnull getelementptr inbounds (i8, ptr @g_tp, i64 864))
          to label %414 unwind label %475

414:                                              ; preds = %409
  store ptr %406, ptr %57, align 8, !tbaa !88
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #13
  %415 = load i32, ptr %135, align 4, !tbaa !61
  %416 = icmp sgt i32 %415, 0
  br i1 %416, label %417, label %488

417:                                              ; preds = %414
  %418 = load i32, ptr %370, align 8, !tbaa !95
  %419 = call noundef double @_ZSt4ceilIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_(i32 noundef %418)
  %420 = fptosi double %419 to i32
  %421 = load ptr, ptr %51, align 8, !tbaa !52
  %422 = getelementptr inbounds i8, ptr %421, i64 2640
  %423 = load double, ptr %422, align 8, !tbaa !80
  %424 = load ptr, ptr %54, align 8, !tbaa !58
  %425 = getelementptr inbounds i8, ptr %424, i64 2592
  %426 = load double, ptr %425, align 8, !tbaa !82
  %427 = fadd double %423, %426
  %428 = load ptr, ptr %55, align 8, !tbaa !62
  %429 = getelementptr inbounds i8, ptr %428, i64 2592
  %430 = load double, ptr %429, align 8, !tbaa !82
  %431 = fadd double %427, %430
  %432 = load double, ptr %63, align 8, !tbaa !18
  %433 = fadd double %431, %432
  %434 = invoke noalias noundef nonnull dereferenceable(10288) ptr @_Znwm(i64 noundef 10288) #11
          to label %435 unwind label %287

435:                                              ; preds = %417
  %436 = load ptr, ptr %76, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %25) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull @.str.73, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %437 unwind label %478

437:                                              ; preds = %435
  %438 = load double, ptr %70, align 8, !tbaa !50
  %439 = load i8, ptr %64, align 8, !tbaa !85, !range !55, !noundef !56
  %440 = trunc nuw i8 %439 to i1
  %441 = load i32, ptr %79, align 4, !tbaa !53
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %434, ptr noundef %436, ptr noundef nonnull %24, i32 noundef 0, double noundef %174, double noundef %176, i32 noundef %420, double noundef %433, ptr noundef nonnull %62, i32 noundef %178, double noundef %438, i1 noundef zeroext false, double noundef %180, i1 noundef zeroext %440, i32 noundef %441, i32 noundef %182, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef nonnull getelementptr inbounds (i8, ptr @g_tp, i64 864))
          to label %442 unwind label %480

442:                                              ; preds = %437
  store ptr %434, ptr %58, align 8, !tbaa !90
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #13
  %443 = load i32, ptr %393, align 8, !tbaa !96
  %444 = load ptr, ptr %51, align 8, !tbaa !52
  %445 = getelementptr inbounds i8, ptr %444, i64 2640
  %446 = load double, ptr %445, align 8, !tbaa !80
  %447 = load ptr, ptr %54, align 8, !tbaa !58
  %448 = getelementptr inbounds i8, ptr %447, i64 2592
  %449 = load double, ptr %448, align 8, !tbaa !82
  %450 = fadd double %446, %449
  %451 = load ptr, ptr %55, align 8, !tbaa !62
  %452 = getelementptr inbounds i8, ptr %451, i64 2592
  %453 = load double, ptr %452, align 8, !tbaa !82
  %454 = fadd double %450, %453
  %455 = load double, ptr %63, align 8, !tbaa !18
  %456 = fadd double %454, %455
  %457 = fadd double %.0194, %456
  %458 = fadd double %.0195, %457
  %459 = invoke noalias noundef nonnull dereferenceable(10288) ptr @_Znwm(i64 noundef 10288) #11
          to label %460 unwind label %287

460:                                              ; preds = %442
  %461 = load ptr, ptr %76, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %27) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull @.str.74, ptr noundef nonnull align 1 dereferenceable(1) %27)
          to label %462 unwind label %483

462:                                              ; preds = %460
  %463 = load double, ptr %70, align 8, !tbaa !50
  %464 = load i8, ptr %64, align 8, !tbaa !85, !range !55, !noundef !56
  %465 = trunc nuw i8 %464 to i1
  %466 = load i32, ptr %79, align 4, !tbaa !53
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %459, ptr noundef %461, ptr noundef nonnull %26, i32 noundef 0, double noundef %174, double noundef %176, i32 noundef %443, double noundef %458, ptr noundef nonnull %62, i32 noundef %178, double noundef %463, i1 noundef zeroext false, double noundef %180, i1 noundef zeroext %465, i32 noundef %466, i32 noundef %182, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef nonnull getelementptr inbounds (i8, ptr @g_tp, i64 864))
          to label %467 unwind label %485

467:                                              ; preds = %462
  store ptr %459, ptr %59, align 8, !tbaa !91
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %27) #13
  br label %488

468:                                              ; preds = %385
  %469 = landingpad { ptr, i32 }
          cleanup
  br label %472

470:                                              ; preds = %387
  %471 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #13
  br label %472

472:                                              ; preds = %470, %468
  %.pn210 = phi { ptr, i32 } [ %471, %470 ], [ %469, %468 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #13
  call void @_ZdlPvm(ptr noundef nonnull %384, i64 noundef 10288) #12
  br label %791

473:                                              ; preds = %407
  %474 = landingpad { ptr, i32 }
          cleanup
  br label %477

475:                                              ; preds = %409
  %476 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #13
  br label %477

477:                                              ; preds = %475, %473
  %.pn212 = phi { ptr, i32 } [ %476, %475 ], [ %474, %473 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #13
  call void @_ZdlPvm(ptr noundef nonnull %406, i64 noundef 10288) #12
  br label %791

478:                                              ; preds = %435
  %479 = landingpad { ptr, i32 }
          cleanup
  br label %482

480:                                              ; preds = %437
  %481 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #13
  br label %482

482:                                              ; preds = %480, %478
  %.pn214 = phi { ptr, i32 } [ %481, %480 ], [ %479, %478 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #13
  call void @_ZdlPvm(ptr noundef nonnull %434, i64 noundef 10288) #12
  br label %791

483:                                              ; preds = %460
  %484 = landingpad { ptr, i32 }
          cleanup
  br label %487

485:                                              ; preds = %462
  %486 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #13
  br label %487

487:                                              ; preds = %485, %483
  %.pn216 = phi { ptr, i32 } [ %486, %485 ], [ %484, %483 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %27) #13
  call void @_ZdlPvm(ptr noundef nonnull %459, i64 noundef 10288) #12
  br label %791

488:                                              ; preds = %467, %414
  %489 = load double, ptr %117, align 8, !tbaa !59
  %490 = fcmp ogt double %489, 0.000000e+00
  br i1 %490, label %491, label %713

491:                                              ; preds = %488
  %492 = getelementptr inbounds i8, ptr %0, i64 2004
  %493 = load i32, ptr %492, align 4, !tbaa !97
  %494 = call noundef double @_ZSt4ceilIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_(i32 noundef %493)
  %495 = fptosi double %494 to i32
  %496 = load ptr, ptr %51, align 8, !tbaa !52
  %497 = getelementptr inbounds i8, ptr %496, i64 2648
  %498 = load double, ptr %497, align 8, !tbaa !89
  %499 = load ptr, ptr %53, align 8, !tbaa !60
  %500 = getelementptr inbounds i8, ptr %499, i64 2592
  %501 = load double, ptr %500, align 8, !tbaa !82
  %502 = fadd double %498, %501
  %503 = invoke noalias noundef nonnull dereferenceable(10288) ptr @_Znwm(i64 noundef 10288) #11
          to label %504 unwind label %287

504:                                              ; preds = %491
  %505 = load ptr, ptr %76, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %29) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull @.str.75, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %506 unwind label %534

506:                                              ; preds = %504
  %507 = load double, ptr %70, align 8, !tbaa !50
  %508 = load i8, ptr %64, align 8, !tbaa !85, !range !55, !noundef !56
  %509 = trunc nuw i8 %508 to i1
  %510 = load i32, ptr %79, align 4, !tbaa !53
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %503, ptr noundef %505, ptr noundef nonnull %28, i32 noundef 0, double noundef %174, double noundef %176, i32 noundef %495, double noundef %502, ptr noundef nonnull %62, i32 noundef %178, double noundef %507, i1 noundef zeroext false, double noundef %180, i1 noundef zeroext %509, i32 noundef %510, i32 noundef %182, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef nonnull getelementptr inbounds (i8, ptr @g_tp, i64 864))
          to label %511 unwind label %536

511:                                              ; preds = %506
  store ptr %503, ptr %60, align 8, !tbaa !92
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %29) #13
  %512 = getelementptr inbounds i8, ptr %0, i64 1884
  %513 = load i32, ptr %512, align 4, !tbaa !98
  %514 = load ptr, ptr %51, align 8, !tbaa !52
  %515 = getelementptr inbounds i8, ptr %514, i64 2648
  %516 = load double, ptr %515, align 8, !tbaa !89
  %517 = load ptr, ptr %53, align 8, !tbaa !60
  %518 = getelementptr inbounds i8, ptr %517, i64 2592
  %519 = load double, ptr %518, align 8, !tbaa !82
  %520 = fadd double %516, %519
  %521 = load double, ptr %63, align 8, !tbaa !18
  %522 = fadd double %520, %521
  %523 = fadd double %.0196, %522
  %524 = fadd double %.0195, %523
  %525 = invoke noalias noundef nonnull dereferenceable(10288) ptr @_Znwm(i64 noundef 10288) #11
          to label %526 unwind label %287

526:                                              ; preds = %511
  %527 = load ptr, ptr %76, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %31) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull @.str.76, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %528 unwind label %539

528:                                              ; preds = %526
  %529 = load double, ptr %70, align 8, !tbaa !50
  %530 = load i8, ptr %64, align 8, !tbaa !85, !range !55, !noundef !56
  %531 = trunc nuw i8 %530 to i1
  %532 = load i32, ptr %79, align 4, !tbaa !53
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %525, ptr noundef %527, ptr noundef nonnull %30, i32 noundef 0, double noundef %174, double noundef %176, i32 noundef %513, double noundef %524, ptr noundef nonnull %62, i32 noundef %178, double noundef %529, i1 noundef zeroext false, double noundef %180, i1 noundef zeroext %531, i32 noundef %532, i32 noundef %182, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef nonnull getelementptr inbounds (i8, ptr @g_tp, i64 864))
          to label %533 unwind label %541

533:                                              ; preds = %528
  store ptr %525, ptr %61, align 8, !tbaa !93
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #13
  br label %713

534:                                              ; preds = %504
  %535 = landingpad { ptr, i32 }
          cleanup
  br label %538

536:                                              ; preds = %506
  %537 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #13
  br label %538

538:                                              ; preds = %536, %534
  %.pn218 = phi { ptr, i32 } [ %537, %536 ], [ %535, %534 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %29) #13
  call void @_ZdlPvm(ptr noundef nonnull %503, i64 noundef 10288) #12
  br label %791

539:                                              ; preds = %526
  %540 = landingpad { ptr, i32 }
          cleanup
  br label %543

541:                                              ; preds = %528
  %542 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #13
  br label %543

543:                                              ; preds = %541, %539
  %.pn220 = phi { ptr, i32 } [ %542, %541 ], [ %540, %539 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #13
  call void @_ZdlPvm(ptr noundef nonnull %525, i64 noundef 10288) #12
  br label %791

544:                                              ; preds = %366
  %545 = fadd double %.0194, %382
  %546 = fadd double %.0195, %545
  %547 = invoke noalias noundef nonnull dereferenceable(10288) ptr @_Znwm(i64 noundef 10288) #11
          to label %548 unwind label %287

548:                                              ; preds = %544
  %549 = load ptr, ptr %76, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %33) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull @.str.71, ptr noundef nonnull align 1 dereferenceable(1) %33)
          to label %550 unwind label %633

550:                                              ; preds = %548
  %551 = load double, ptr %70, align 8, !tbaa !50
  %552 = load i8, ptr %64, align 8, !tbaa !85, !range !55, !noundef !56
  %553 = trunc nuw i8 %552 to i1
  %554 = load i32, ptr %79, align 4, !tbaa !53
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %547, ptr noundef %549, ptr noundef nonnull %32, i32 noundef 0, double noundef %174, double noundef %176, i32 noundef %373, double noundef %546, ptr noundef nonnull %62, i32 noundef %178, double noundef %551, i1 noundef zeroext false, double noundef %180, i1 noundef zeroext %553, i32 noundef %554, i32 noundef %182, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef nonnull getelementptr inbounds (i8, ptr @g_tp, i64 864))
          to label %555 unwind label %635

555:                                              ; preds = %550
  store ptr %547, ptr %56, align 8, !tbaa !86
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #13
  %556 = getelementptr inbounds i8, ptr %0, i64 1880
  %557 = load i32, ptr %556, align 8, !tbaa !96
  %558 = load ptr, ptr %51, align 8, !tbaa !52
  %559 = getelementptr inbounds i8, ptr %558, i64 2640
  %560 = load double, ptr %559, align 8, !tbaa !80
  %561 = load ptr, ptr %54, align 8, !tbaa !58
  %562 = getelementptr inbounds i8, ptr %561, i64 2592
  %563 = load double, ptr %562, align 8, !tbaa !82
  %564 = fadd double %560, %563
  %565 = load double, ptr %63, align 8, !tbaa !18
  %566 = fadd double %564, %565
  %567 = fadd double %.0194, %566
  %568 = fadd double %.0195, %567
  %569 = invoke noalias noundef nonnull dereferenceable(10288) ptr @_Znwm(i64 noundef 10288) #11
          to label %570 unwind label %287

570:                                              ; preds = %555
  %571 = load ptr, ptr %76, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %35) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull @.str.72, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %572 unwind label %638

572:                                              ; preds = %570
  %573 = load double, ptr %70, align 8, !tbaa !50
  %574 = load i8, ptr %64, align 8, !tbaa !85, !range !55, !noundef !56
  %575 = trunc nuw i8 %574 to i1
  %576 = load i32, ptr %79, align 4, !tbaa !53
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %569, ptr noundef %571, ptr noundef nonnull %34, i32 noundef 0, double noundef %174, double noundef %176, i32 noundef %557, double noundef %568, ptr noundef nonnull %62, i32 noundef %178, double noundef %573, i1 noundef zeroext false, double noundef %180, i1 noundef zeroext %575, i32 noundef %576, i32 noundef %182, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef nonnull getelementptr inbounds (i8, ptr @g_tp, i64 864))
          to label %577 unwind label %640

577:                                              ; preds = %572
  store ptr %569, ptr %57, align 8, !tbaa !88
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #13
  %578 = load i32, ptr %135, align 4, !tbaa !61
  %579 = icmp sgt i32 %578, 0
  br i1 %579, label %580, label %653

580:                                              ; preds = %577
  %581 = load i32, ptr %370, align 8, !tbaa !95
  %582 = call noundef double @_ZSt4ceilIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_(i32 noundef %581)
  %583 = fptosi double %582 to i32
  %584 = load ptr, ptr %51, align 8, !tbaa !52
  %585 = getelementptr inbounds i8, ptr %584, i64 2640
  %586 = load double, ptr %585, align 8, !tbaa !80
  %587 = load ptr, ptr %54, align 8, !tbaa !58
  %588 = getelementptr inbounds i8, ptr %587, i64 2592
  %589 = load double, ptr %588, align 8, !tbaa !82
  %590 = fadd double %586, %589
  %591 = load ptr, ptr %55, align 8, !tbaa !62
  %592 = getelementptr inbounds i8, ptr %591, i64 2592
  %593 = load double, ptr %592, align 8, !tbaa !82
  %594 = fadd double %590, %593
  %595 = load double, ptr %63, align 8, !tbaa !18
  %596 = fadd double %594, %595
  %597 = fadd double %.0194, %596
  %598 = fadd double %.0195, %597
  %599 = invoke noalias noundef nonnull dereferenceable(10288) ptr @_Znwm(i64 noundef 10288) #11
          to label %600 unwind label %287

600:                                              ; preds = %580
  %601 = load ptr, ptr %76, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %37) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull @.str.73, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %602 unwind label %643

602:                                              ; preds = %600
  %603 = load double, ptr %70, align 8, !tbaa !50
  %604 = load i8, ptr %64, align 8, !tbaa !85, !range !55, !noundef !56
  %605 = trunc nuw i8 %604 to i1
  %606 = load i32, ptr %79, align 4, !tbaa !53
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %599, ptr noundef %601, ptr noundef nonnull %36, i32 noundef 0, double noundef %174, double noundef %176, i32 noundef %583, double noundef %598, ptr noundef nonnull %62, i32 noundef %178, double noundef %603, i1 noundef zeroext false, double noundef %180, i1 noundef zeroext %605, i32 noundef %606, i32 noundef %182, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef nonnull getelementptr inbounds (i8, ptr @g_tp, i64 864))
          to label %607 unwind label %645

607:                                              ; preds = %602
  store ptr %599, ptr %58, align 8, !tbaa !90
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %37) #13
  %608 = load i32, ptr %556, align 8, !tbaa !96
  %609 = load ptr, ptr %51, align 8, !tbaa !52
  %610 = getelementptr inbounds i8, ptr %609, i64 2640
  %611 = load double, ptr %610, align 8, !tbaa !80
  %612 = load ptr, ptr %54, align 8, !tbaa !58
  %613 = getelementptr inbounds i8, ptr %612, i64 2592
  %614 = load double, ptr %613, align 8, !tbaa !82
  %615 = fadd double %611, %614
  %616 = load ptr, ptr %55, align 8, !tbaa !62
  %617 = getelementptr inbounds i8, ptr %616, i64 2592
  %618 = load double, ptr %617, align 8, !tbaa !82
  %619 = fadd double %615, %618
  %620 = load double, ptr %63, align 8, !tbaa !18
  %621 = fadd double %619, %620
  %622 = fadd double %.0194, %621
  %623 = fadd double %.0195, %622
  %624 = invoke noalias noundef nonnull dereferenceable(10288) ptr @_Znwm(i64 noundef 10288) #11
          to label %625 unwind label %287

625:                                              ; preds = %607
  %626 = load ptr, ptr %76, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %39) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull @.str.74, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %627 unwind label %648

627:                                              ; preds = %625
  %628 = load double, ptr %70, align 8, !tbaa !50
  %629 = load i8, ptr %64, align 8, !tbaa !85, !range !55, !noundef !56
  %630 = trunc nuw i8 %629 to i1
  %631 = load i32, ptr %79, align 4, !tbaa !53
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %624, ptr noundef %626, ptr noundef nonnull %38, i32 noundef 0, double noundef %174, double noundef %176, i32 noundef %608, double noundef %623, ptr noundef nonnull %62, i32 noundef %178, double noundef %628, i1 noundef zeroext false, double noundef %180, i1 noundef zeroext %630, i32 noundef %631, i32 noundef %182, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef nonnull getelementptr inbounds (i8, ptr @g_tp, i64 864))
          to label %632 unwind label %650

632:                                              ; preds = %627
  store ptr %624, ptr %59, align 8, !tbaa !91
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %39) #13
  br label %653

633:                                              ; preds = %548
  %634 = landingpad { ptr, i32 }
          cleanup
  br label %637

635:                                              ; preds = %550
  %636 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #13
  br label %637

637:                                              ; preds = %635, %633
  %.pn = phi { ptr, i32 } [ %636, %635 ], [ %634, %633 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #13
  call void @_ZdlPvm(ptr noundef nonnull %547, i64 noundef 10288) #12
  br label %791

638:                                              ; preds = %570
  %639 = landingpad { ptr, i32 }
          cleanup
  br label %642

640:                                              ; preds = %572
  %641 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #13
  br label %642

642:                                              ; preds = %640, %638
  %.pn200 = phi { ptr, i32 } [ %641, %640 ], [ %639, %638 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #13
  call void @_ZdlPvm(ptr noundef nonnull %569, i64 noundef 10288) #12
  br label %791

643:                                              ; preds = %600
  %644 = landingpad { ptr, i32 }
          cleanup
  br label %647

645:                                              ; preds = %602
  %646 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #13
  br label %647

647:                                              ; preds = %645, %643
  %.pn202 = phi { ptr, i32 } [ %646, %645 ], [ %644, %643 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %37) #13
  call void @_ZdlPvm(ptr noundef nonnull %599, i64 noundef 10288) #12
  br label %791

648:                                              ; preds = %625
  %649 = landingpad { ptr, i32 }
          cleanup
  br label %652

650:                                              ; preds = %627
  %651 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #13
  br label %652

652:                                              ; preds = %650, %648
  %.pn204 = phi { ptr, i32 } [ %651, %650 ], [ %649, %648 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %39) #13
  call void @_ZdlPvm(ptr noundef nonnull %624, i64 noundef 10288) #12
  br label %791

653:                                              ; preds = %632, %577
  %654 = load double, ptr %117, align 8, !tbaa !59
  %655 = fcmp ogt double %654, 0.000000e+00
  br i1 %655, label %656, label %713

656:                                              ; preds = %653
  %657 = getelementptr inbounds i8, ptr %0, i64 2004
  %658 = load i32, ptr %657, align 4, !tbaa !97
  %659 = call noundef double @_ZSt4ceilIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_(i32 noundef %658)
  %660 = fptosi double %659 to i32
  %661 = load ptr, ptr %51, align 8, !tbaa !52
  %662 = getelementptr inbounds i8, ptr %661, i64 2648
  %663 = load double, ptr %662, align 8, !tbaa !89
  %664 = load ptr, ptr %53, align 8, !tbaa !60
  %665 = getelementptr inbounds i8, ptr %664, i64 2592
  %666 = load double, ptr %665, align 8, !tbaa !82
  %667 = fadd double %663, %666
  %668 = load double, ptr %63, align 8, !tbaa !18
  %669 = fadd double %667, %668
  %670 = fadd double %.0196, %669
  %671 = fadd double %.0195, %670
  %672 = invoke noalias noundef nonnull dereferenceable(10288) ptr @_Znwm(i64 noundef 10288) #11
          to label %673 unwind label %287

673:                                              ; preds = %656
  %674 = load ptr, ptr %76, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %41) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull @.str.75, ptr noundef nonnull align 1 dereferenceable(1) %41)
          to label %675 unwind label %703

675:                                              ; preds = %673
  %676 = load double, ptr %70, align 8, !tbaa !50
  %677 = load i8, ptr %64, align 8, !tbaa !85, !range !55, !noundef !56
  %678 = trunc nuw i8 %677 to i1
  %679 = load i32, ptr %79, align 4, !tbaa !53
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %672, ptr noundef %674, ptr noundef nonnull %40, i32 noundef 0, double noundef %174, double noundef %176, i32 noundef %660, double noundef %671, ptr noundef nonnull %62, i32 noundef %178, double noundef %676, i1 noundef zeroext false, double noundef %180, i1 noundef zeroext %678, i32 noundef %679, i32 noundef %182, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef nonnull getelementptr inbounds (i8, ptr @g_tp, i64 864))
          to label %680 unwind label %705

680:                                              ; preds = %675
  store ptr %672, ptr %60, align 8, !tbaa !92
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %41) #13
  %681 = getelementptr inbounds i8, ptr %0, i64 1884
  %682 = load i32, ptr %681, align 4, !tbaa !98
  %683 = load ptr, ptr %51, align 8, !tbaa !52
  %684 = getelementptr inbounds i8, ptr %683, i64 2648
  %685 = load double, ptr %684, align 8, !tbaa !89
  %686 = load ptr, ptr %53, align 8, !tbaa !60
  %687 = getelementptr inbounds i8, ptr %686, i64 2592
  %688 = load double, ptr %687, align 8, !tbaa !82
  %689 = fadd double %685, %688
  %690 = load double, ptr %63, align 8, !tbaa !18
  %691 = fadd double %689, %690
  %692 = fadd double %.0196, %691
  %693 = fadd double %.0195, %692
  %694 = invoke noalias noundef nonnull dereferenceable(10288) ptr @_Znwm(i64 noundef 10288) #11
          to label %695 unwind label %287

695:                                              ; preds = %680
  %696 = load ptr, ptr %76, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %43) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull @.str.76, ptr noundef nonnull align 1 dereferenceable(1) %43)
          to label %697 unwind label %708

697:                                              ; preds = %695
  %698 = load double, ptr %70, align 8, !tbaa !50
  %699 = load i8, ptr %64, align 8, !tbaa !85, !range !55, !noundef !56
  %700 = trunc nuw i8 %699 to i1
  %701 = load i32, ptr %79, align 4, !tbaa !53
  invoke void @_ZN12InterconnectC1EP7XMLNodeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE9Device_tyddidPK14InputParameteridbdb9Core_type9Wire_typeddPN19TechnologyParameter10DeviceTypeE(ptr noundef nonnull align 8 dereferenceable(10288) %694, ptr noundef %696, ptr noundef nonnull %42, i32 noundef 0, double noundef %174, double noundef %176, i32 noundef %682, double noundef %693, ptr noundef nonnull %62, i32 noundef %178, double noundef %698, i1 noundef zeroext false, double noundef %180, i1 noundef zeroext %700, i32 noundef %701, i32 noundef %182, double noundef 1.000000e+00, double noundef 1.000000e+00, ptr noundef nonnull getelementptr inbounds (i8, ptr @g_tp, i64 864))
          to label %702 unwind label %710

702:                                              ; preds = %697
  store ptr %694, ptr %61, align 8, !tbaa !93
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %43) #13
  br label %713

703:                                              ; preds = %673
  %704 = landingpad { ptr, i32 }
          cleanup
  br label %707

705:                                              ; preds = %675
  %706 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #13
  br label %707

707:                                              ; preds = %705, %703
  %.pn206 = phi { ptr, i32 } [ %706, %705 ], [ %704, %703 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %41) #13
  call void @_ZdlPvm(ptr noundef nonnull %672, i64 noundef 10288) #12
  br label %791

708:                                              ; preds = %695
  %709 = landingpad { ptr, i32 }
          cleanup
  br label %712

710:                                              ; preds = %697
  %711 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #13
  br label %712

712:                                              ; preds = %710, %708
  %.pn208 = phi { ptr, i32 } [ %711, %710 ], [ %709, %708 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %43) #13
  call void @_ZdlPvm(ptr noundef nonnull %694, i64 noundef 10288) #12
  br label %791

713:                                              ; preds = %533, %488, %702, %653, %309, %355
  %714 = load ptr, ptr %56, align 8, !tbaa !86
  %.not234 = icmp eq ptr %714, null
  br i1 %.not234, label %720, label %715

715:                                              ; preds = %713
  %716 = getelementptr inbounds i8, ptr %0, i64 704
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #13
  store ptr %714, ptr %44, align 8, !tbaa !99
  invoke void @_ZNSt6vectorIP14McPATComponentSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %716, ptr noundef nonnull align 8 dereferenceable(8) %44)
          to label %717 unwind label %718

717:                                              ; preds = %715
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #13
  br label %720

718:                                              ; preds = %715
  %719 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #13
  br label %791

720:                                              ; preds = %717, %713
  %721 = load ptr, ptr %57, align 8, !tbaa !88
  %.not235 = icmp eq ptr %721, null
  br i1 %.not235, label %727, label %722

722:                                              ; preds = %720
  %723 = getelementptr inbounds i8, ptr %0, i64 704
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #13
  store ptr %721, ptr %45, align 8, !tbaa !99
  invoke void @_ZNSt6vectorIP14McPATComponentSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %723, ptr noundef nonnull align 8 dereferenceable(8) %45)
          to label %724 unwind label %725

724:                                              ; preds = %722
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #13
  br label %727

725:                                              ; preds = %722
  %726 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #13
  br label %791

727:                                              ; preds = %724, %720
  %728 = load ptr, ptr %58, align 8, !tbaa !90
  %.not236 = icmp eq ptr %728, null
  br i1 %.not236, label %734, label %729

729:                                              ; preds = %727
  %730 = getelementptr inbounds i8, ptr %0, i64 704
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #13
  store ptr %728, ptr %46, align 8, !tbaa !99
  invoke void @_ZNSt6vectorIP14McPATComponentSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %730, ptr noundef nonnull align 8 dereferenceable(8) %46)
          to label %731 unwind label %732

731:                                              ; preds = %729
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #13
  br label %734

732:                                              ; preds = %729
  %733 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #13
  br label %791

734:                                              ; preds = %731, %727
  %735 = load ptr, ptr %59, align 8, !tbaa !91
  %.not237 = icmp eq ptr %735, null
  br i1 %.not237, label %741, label %736

736:                                              ; preds = %734
  %737 = getelementptr inbounds i8, ptr %0, i64 704
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #13
  store ptr %735, ptr %47, align 8, !tbaa !99
  invoke void @_ZNSt6vectorIP14McPATComponentSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %737, ptr noundef nonnull align 8 dereferenceable(8) %47)
          to label %738 unwind label %739

738:                                              ; preds = %736
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #13
  br label %741

739:                                              ; preds = %736
  %740 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #13
  br label %791

741:                                              ; preds = %738, %734
  %742 = load ptr, ptr %60, align 8, !tbaa !92
  %.not238 = icmp eq ptr %742, null
  br i1 %.not238, label %748, label %743

743:                                              ; preds = %741
  %744 = getelementptr inbounds i8, ptr %0, i64 704
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #13
  store ptr %742, ptr %48, align 8, !tbaa !99
  invoke void @_ZNSt6vectorIP14McPATComponentSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %744, ptr noundef nonnull align 8 dereferenceable(8) %48)
          to label %745 unwind label %746

745:                                              ; preds = %743
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #13
  br label %748

746:                                              ; preds = %743
  %747 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #13
  br label %791

748:                                              ; preds = %745, %741
  %749 = load ptr, ptr %61, align 8, !tbaa !93
  %.not239 = icmp eq ptr %749, null
  br i1 %.not239, label %755, label %750

750:                                              ; preds = %748
  %751 = getelementptr inbounds i8, ptr %0, i64 704
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #13
  store ptr %749, ptr %49, align 8, !tbaa !99
  invoke void @_ZNSt6vectorIP14McPATComponentSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %751, ptr noundef nonnull align 8 dereferenceable(8) %49)
          to label %752 unwind label %753

752:                                              ; preds = %750
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #13
  br label %755

753:                                              ; preds = %750
  %754 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #13
  br label %791

755:                                              ; preds = %752, %748
  %756 = call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %107)
  %757 = load ptr, ptr %56, align 8, !tbaa !86
  %758 = getelementptr inbounds i8, ptr %757, i64 8
  %759 = call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %758)
  %760 = fadd double %756, %759
  %761 = load ptr, ptr %57, align 8, !tbaa !88
  %762 = getelementptr inbounds i8, ptr %761, i64 8
  %763 = call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %762)
  %764 = fadd double %760, %763
  call void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %107, double noundef %764)
  %765 = load i32, ptr %135, align 4, !tbaa !61
  %766 = icmp sgt i32 %765, 0
  br i1 %766, label %767, label %777

767:                                              ; preds = %755
  %768 = call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %107)
  %769 = load ptr, ptr %58, align 8, !tbaa !90
  %770 = getelementptr inbounds i8, ptr %769, i64 8
  %771 = call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %770)
  %772 = fadd double %768, %771
  %773 = load ptr, ptr %59, align 8, !tbaa !91
  %774 = getelementptr inbounds i8, ptr %773, i64 8
  %775 = call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %774)
  %776 = fadd double %772, %775
  call void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %107, double noundef %776)
  br label %777

777:                                              ; preds = %767, %755
  %778 = load double, ptr %117, align 8, !tbaa !59
  %779 = fcmp ogt double %778, 0.000000e+00
  br i1 %779, label %780, label %790

780:                                              ; preds = %777
  %781 = call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %107)
  %782 = load ptr, ptr %60, align 8, !tbaa !92
  %783 = getelementptr inbounds i8, ptr %782, i64 8
  %784 = call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %783)
  %785 = fadd double %781, %784
  %786 = load ptr, ptr %61, align 8, !tbaa !93
  %787 = getelementptr inbounds i8, ptr %786, i64 8
  %788 = call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %787)
  %789 = fadd double %785, %788
  call void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %107, double noundef %789)
  br label %790

790:                                              ; preds = %777, %780, %7
  ret void

791:                                              ; preds = %287, %718, %725, %732, %739, %746, %753, %293, %298, %303, %308, %360, %365, %472, %477, %482, %487, %538, %543, %637, %642, %647, %652, %707, %712, %148, %132, %130, %100, %98, %96
  %.pn240.pn = phi { ptr, i32 } [ %149, %148 ], [ %97, %96 ], [ %133, %132 ], [ %131, %130 ], [ %101, %100 ], [ %99, %98 ], [ %754, %753 ], [ %747, %746 ], [ %740, %739 ], [ %733, %732 ], [ %726, %725 ], [ %719, %718 ], [ %.pn232, %365 ], [ %288, %287 ], [ %.pn230, %360 ], [ %.pn228, %308 ], [ %.pn226, %303 ], [ %.pn224, %298 ], [ %.pn222, %293 ], [ %.pn220, %543 ], [ %.pn218, %538 ], [ %.pn216, %487 ], [ %.pn214, %482 ], [ %.pn212, %477 ], [ %.pn210, %472 ], [ %.pn208, %712 ], [ %.pn206, %707 ], [ %.pn204, %652 ], [ %.pn202, %647 ], [ %.pn200, %642 ], [ %.pn, %637 ]
  call void @_ZN14McPATComponentD2Ev(ptr noundef nonnull align 8 dereferenceable(1352) %0) #13
  resume { ptr, i32 } %.pn240.pn
}

declare void @_ZN14FunctionalUnitC1EP7XMLNodeP14InputParameterRK14CoreParametersRK14CoreStatistics7FU_type(ptr noundef nonnull align 8 dereferenceable(2808), ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(480), ptr noundef nonnull align 8 dereferenceable(392), i32 noundef) unnamed_addr #0

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt4ceilIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_(i32 noundef) local_unnamed_addr #8

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

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

declare void @_ZN10SchedulerUC1EP7XMLNodeP14InputParameterRK14CoreParametersRK14CoreStatisticsb(ptr, ptr, ptr, ptr, ptr, i1) local_unnamed_addr

declare void @_ZN5RegFUC1EP7XMLNodeP14InputParameterRK14CoreParametersRK14CoreStatisticsb(ptr, ptr, ptr, ptr, ptr, i1) local_unnamed_addr

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

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 nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { 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 #4 = { 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 #5 = { 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 #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
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 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #11 = { builtin allocsize(0) }
attributes #12 = { builtin nounwind }
attributes #13 = { 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 = !{!19, !15, i64 1832}
!19 = !{!"_ZTS5EXECU", !20, i64 0, !25, i64 1352, !25, i64 1360, !25, i64 1368, !25, i64 1376, !25, i64 1384, !25, i64 1392, !25, i64 1400, !25, i64 1408, !25, i64 1416, !25, i64 1424, !25, i64 1432, !26, i64 1440, !15, i64 1808, !15, i64 1816, !15, i64 1824, !15, i64 1832, !37, i64 1840, !41, i64 2320, !13, i64 2712}
!20 = !{!"_ZTS14McPATComponent", !21, i64 8, !25, i64 288, !26, i64 296, !27, i64 664, !15, i64 696, !30, i64 704, !34, i64 728, !35, i64 776, !35, i64 944, !23, i64 1112, !23, i64 1232}
!21 = !{!"_ZTS9Component", !22, i64 0, !23, i64 24, !23, i64 144, !15, i64 264, !15, i64 272}
!22 = !{!"_ZTS4Area", !15, i64 0, !15, i64 8, !15, i64 16}
!23 = !{!"_ZTS8powerDef", !24, i64 0, !24, i64 40, !24, i64 80}
!24 = !{!"_ZTS15powerComponents", !15, i64 0, !15, i64 8, !15, i64 16, !15, i64 24, !15, i64 32}
!25 = !{!"any pointer", !11, i64 0}
!26 = !{!"_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}
!27 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !28, i64 0, !29, i64 8, !11, i64 16}
!28 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !25, i64 0}
!29 = !{!"long", !11, i64 0}
!30 = !{!"_ZTSSt6vectorIP14McPATComponentSaIS1_EE", !31, i64 0}
!31 = !{!"_ZTSSt12_Vector_baseIP14McPATComponentSaIS1_EE", !32, i64 0}
!32 = !{!"_ZTSNSt12_Vector_baseIP14McPATComponentSaIS1_EE12_Vector_implE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIP14McPATComponentSaIS1_EE17_Vector_impl_dataE", !25, i64 0, !25, i64 8, !25, i64 16}
!34 = !{!"_ZTS11McPATOutput", !15, i64 0, !15, i64 8, !15, i64 16, !15, i64 24, !15, i64 32, !15, i64 40}
!35 = !{!"_ZTS8statsDef", !36, i64 0, !36, i64 24, !36, i64 48, !36, i64 72, !36, i64 96, !36, i64 120, !36, i64 144}
!36 = !{!"_ZTS15statsComponents", !15, i64 0, !15, i64 8, !15, i64 16}
!37 = !{!"_ZTS14CoreParameters", !13, i64 0, !13, i64 1, !13, i64 2, !38, i64 4, !39, i64 8, !40, i64 12, !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, !10, i64 64, !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, !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, !15, i64 152, !10, i64 160, !10, i64 164, !10, i64 168, !10, i64 172, !13, i64 176, !13, i64 177, !11, i64 184, !10, i64 216, !10, i64 220, !10, i64 224, !10, i64 228, !10, i64 232, !10, i64 236, !10, i64 240, !15, i64 248, !15, i64 256, !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, !10, i64 300, !10, i64 304, !10, i64 308, !10, i64 312, !10, i64 316, !10, i64 320, !10, i64 324, !10, i64 328, !10, i64 332, !10, i64 336, !10, i64 340, !10, i64 344, !10, i64 348, !10, i64 352, !10, i64 356, !10, i64 360, !10, i64 364, !10, i64 368, !10, i64 372, !10, i64 376, !10, i64 380, !10, i64 384, !10, i64 388, !10, i64 392, !10, i64 396, !10, i64 400, !10, i64 404, !10, i64 408, !10, i64 412, !10, i64 416, !10, i64 420, !17, i64 424, !17, i64 428, !10, i64 432, !15, i64 440, !15, i64 448, !10, i64 456, !15, i64 464, !15, i64 472}
!38 = !{!"_ZTS9Core_type", !11, i64 0}
!39 = !{!"_ZTS13Renaming_type", !11, i64 0}
!40 = !{!"_ZTS14Scheduler_type", !11, i64 0}
!41 = !{!"_ZTS14CoreStatistics", !15, i64 0, !15, i64 8, !15, i64 16, !15, i64 24, !15, i64 32, !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, !15, i64 272, !15, i64 280, !15, i64 288, !15, i64 296, !15, i64 304, !15, i64 312, !15, i64 320, !15, i64 328, !15, i64 336, !15, i64 344, !15, i64 352, !15, i64 360, !15, i64 368, !15, i64 376, !15, i64 384}
!42 = !{i64 0, i64 1, !12, i64 1, i64 1, !12, i64 2, i64 1, !12, i64 4, i64 4, !43, i64 8, i64 4, !44, i64 12, i64 4, !45, 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 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 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, 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 8, !14, i64 160, i64 4, !9, i64 164, i64 4, !9, i64 168, i64 4, !9, i64 172, i64 4, !9, i64 176, i64 1, !12, i64 177, i64 1, !12, i64 184, i64 32, !46, 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 248, i64 8, !14, i64 256, i64 8, !14, 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 4, !9, i64 304, i64 4, !9, i64 308, i64 4, !9, i64 312, i64 4, !9, i64 316, i64 4, !9, i64 320, i64 4, !9, i64 324, i64 4, !9, i64 328, i64 4, !9, i64 332, i64 4, !9, i64 336, i64 4, !9, i64 340, i64 4, !9, i64 344, i64 4, !9, i64 348, i64 4, !9, i64 352, i64 4, !9, i64 356, i64 4, !9, i64 360, i64 4, !9, i64 364, i64 4, !9, i64 368, i64 4, !9, i64 372, i64 4, !9, i64 376, i64 4, !9, i64 380, i64 4, !9, i64 384, i64 4, !9, i64 388, i64 4, !9, i64 392, i64 4, !9, i64 396, i64 4, !9, i64 400, i64 4, !9, i64 404, i64 4, !9, i64 408, i64 4, !9, i64 412, i64 4, !9, i64 416, i64 4, !9, i64 420, i64 4, !9, i64 424, i64 4, !16, i64 428, i64 4, !16, i64 432, i64 4, !9, i64 440, i64 8, !14, i64 448, i64 8, !14, i64 456, i64 4, !9, i64 464, i64 8, !14, i64 472, i64 8, !14}
!43 = !{!38, !38, i64 0}
!44 = !{!39, !39, i64 0}
!45 = !{!40, !40, i64 0}
!46 = !{!11, !11, i64 0}
!47 = !{i64 0, i64 8, !14, i64 8, i64 8, !14, i64 16, i64 8, !14, i64 24, i64 8, !14, i64 32, i64 8, !14, i64 40, i64 8, !14, i64 48, i64 8, !14, i64 56, i64 8, !14, i64 64, i64 8, !14, i64 72, i64 8, !14, i64 80, i64 8, !14, i64 88, i64 8, !14, i64 96, i64 8, !14, i64 104, i64 8, !14, i64 112, i64 8, !14, i64 120, i64 8, !14, i64 128, i64 8, !14, i64 136, i64 8, !14, i64 144, i64 8, !14, i64 152, i64 8, !14, i64 160, i64 8, !14, i64 168, i64 8, !14, i64 176, i64 8, !14, i64 184, i64 8, !14, i64 192, i64 8, !14, i64 200, i64 8, !14, i64 208, i64 8, !14, i64 216, i64 8, !14, i64 224, i64 8, !14, i64 232, i64 8, !14, i64 240, i64 8, !14, i64 248, i64 8, !14, i64 256, i64 8, !14, i64 264, i64 8, !14, i64 272, i64 8, !14, i64 280, i64 8, !14, i64 288, i64 8, !14, i64 296, i64 8, !14, i64 304, i64 8, !14, i64 312, i64 8, !14, i64 320, i64 8, !14, i64 328, i64 8, !14, i64 336, i64 8, !14, i64 344, i64 8, !14, i64 352, i64 8, !14, i64 360, i64 8, !14, i64 368, i64 8, !14, i64 376, i64 8, !14, i64 384, i64 8, !14}
!48 = !{!19, !13, i64 2712}
!49 = !{!19, !15, i64 1856}
!50 = !{!20, !15, i64 696}
!51 = !{!20, !25, i64 288}
!52 = !{!19, !25, i64 1352}
!53 = !{!19, !38, i64 1844}
!54 = !{!19, !13, i64 2017}
!55 = !{i8 0, i8 2}
!56 = !{}
!57 = !{!19, !25, i64 1360}
!58 = !{!19, !25, i64 1376}
!59 = !{!19, !15, i64 1992}
!60 = !{!19, !25, i64 1368}
!61 = !{!19, !10, i64 1988}
!62 = !{!19, !25, i64 1384}
!63 = !{!19, !17, i64 2268}
!64 = !{!19, !17, i64 1592}
!65 = !{!19, !10, i64 2272}
!66 = !{!19, !10, i64 1584}
!67 = !{!19, !10, i64 1588}
!68 = !{!19, !15, i64 2312}
!69 = !{!19, !15, i64 1776}
!70 = !{!19, !15, i64 1784}
!71 = !{!72, !15, i64 2656}
!72 = !{!"_ZTS10SchedulerU", !20, i64 0, !25, i64 1352, !25, i64 1360, !25, i64 1368, !25, i64 1376, !25, i64 1384, !26, i64 1392, !37, i64 1760, !41, i64 2240, !15, i64 2632, !15, i64 2640, !15, i64 2648, !15, i64 2656, !15, i64 2664, !15, i64 2672, !13, i64 2680}
!73 = !{!72, !15, i64 2672}
!74 = !{!72, !15, i64 2664}
!75 = !{!19, !15, i64 2280}
!76 = !{!19, !15, i64 2288}
!77 = !{!19, !10, i64 2296}
!78 = !{!19, !15, i64 2304}
!79 = !{!19, !17, i64 2264}
!80 = !{!81, !15, i64 2640}
!81 = !{!"_ZTS5RegFU", !20, i64 0, !25, i64 1352, !25, i64 1360, !25, i64 1368, !26, i64 1376, !37, i64 1744, !41, i64 2224, !15, i64 2616, !15, i64 2624, !15, i64 2632, !15, i64 2640, !15, i64 2648, !13, i64 2656}
!82 = !{!83, !15, i64 2592}
!83 = !{!"_ZTS14FunctionalUnit", !20, i64 0, !26, i64 1352, !37, i64 1720, !41, i64 2200, !15, i64 2592, !15, i64 2600, !15, i64 2608, !15, i64 2616, !15, i64 2624, !13, i64 2632, !84, i64 2636, !35, i64 2640}
!84 = !{!"_ZTS7FU_type", !11, i64 0}
!85 = !{!19, !13, i64 1840}
!86 = !{!19, !25, i64 1392}
!87 = !{!19, !10, i64 1940}
!88 = !{!19, !25, i64 1400}
!89 = !{!81, !15, i64 2648}
!90 = !{!19, !25, i64 1408}
!91 = !{!19, !25, i64 1416}
!92 = !{!19, !25, i64 1424}
!93 = !{!19, !25, i64 1432}
!94 = !{!19, !40, i64 1852}
!95 = !{!19, !10, i64 2000}
!96 = !{!19, !10, i64 1880}
!97 = !{!19, !10, i64 2004}
!98 = !{!19, !10, i64 1884}
!99 = !{!25, !25, i64 0}


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