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

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

%"class.std::__cxx11::basic_ostringstream" = type { %"class.std::basic_ostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"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::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%class.Core = type { %class.McPATComponent, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, %class.InputParameter, double, double, double, %class.CoreParameters, %class.CoreStatistics }
%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.LoadStoreU = type <{ %class.McPATComponent, ptr, ptr, ptr, %class.InputParameter, %class.CoreParameters, %class.CoreStatistics, i32, [4 x i8], double, double, double, double, i8, [7 x i8] }>
%class.RENAMINGU = type <{ %class.McPATComponent, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %class.InputParameter, %class.CoreParameters, %class.CoreStatistics, i8, [7 x i8] }>
%class.InstFetchU = type <{ %class.McPATComponent, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %class.InputParameter, %class.CoreParameters, %class.CoreStatistics, %class.InstFetchParameters, [4 x i8], %class.InstFetchStatistics, double, double, double, i32, i8, [3 x i8] }>
%class.InstFetchParameters = type { i32, i32, i32, i32, i32, i32, i32 }
%class.InstFetchStatistics = type { double, double }
%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.MemManU = type <{ %class.McPATComponent, ptr, ptr, %class.InputParameter, %class.CoreParameters, %class.CoreStatistics, %class.MemoryManagementParams, %class.MemoryManagementStats, double, double, double, i8, [7 x i8] }>
%class.MemoryManagementParams = type { i32, double, double, i32, i32, i32, double, double, i32, i32 }
%class.MemoryManagementStats = type { double, double, double, double, double, double, double, double }
%class.UndiffCore = type <{ %class.McPATComponent, %class.InputParameter, %class.CoreParameters, double, double, double, i32, i8, i8, [2 x i8], double, double, double, i8, i8, [6 x i8] }>

@.str.1 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [10 x i8], align 1
@_ZTV4Core = external dso_local unnamed_addr constant { [6 x ptr] }, align 8
@.str.87 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [11 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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

declare void @_ZN9CacheUnitC1EP7XMLNodeP14InputParameter(ptr noundef nonnull align 8 dereferenceable(1784), ptr noundef, ptr noundef) unnamed_addr #0

; 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)) #6 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: 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 @_ZN4CoreC2EP7XMLNodeiP14InputParameter(ptr noundef nonnull align 8 dereferenceable(2688) %0, ptr noundef %1, i32 noundef %2, ptr noundef %3) unnamed_addr #6 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca ptr, align 8
  %9 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca i32, align 4
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca double, align 8
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store i32 %2, ptr %7, align 4, !tbaa !9
  store ptr %3, ptr %8, align 8, !tbaa !5
  %28 = load ptr, ptr %5, align 8
  %29 = load ptr, ptr %6, align 8, !tbaa !5
  call void @_ZN14McPATComponentC2EP7XMLNode(ptr noundef nonnull align 8 dereferenceable(1352) %28, ptr noundef %29)
  store ptr getelementptr inbounds inrange(-16, 32) ({ [6 x ptr] }, ptr @_ZTV4Core, i32 0, i32 0, i32 2), ptr %28, align 8, !tbaa !11
  %30 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 1
  store ptr null, ptr %30, align 8, !tbaa !13
  %31 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 2
  store ptr null, ptr %31, align 8, !tbaa !39
  %32 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 3
  store ptr null, ptr %32, align 8, !tbaa !40
  %33 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 4
  store ptr null, ptr %33, align 8, !tbaa !41
  %34 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 5
  store ptr null, ptr %34, align 8, !tbaa !42
  %35 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 6
  store ptr null, ptr %35, align 8, !tbaa !43
  %36 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 7
  store ptr null, ptr %36, align 8, !tbaa !44
  %37 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 8
  store ptr null, ptr %37, align 8, !tbaa !45
  %38 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 9
  %39 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %39, ptr %38, align 8, !tbaa !46
  %40 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 10
  %41 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %40, ptr align 8 %41, i64 368, i1 false), !tbaa.struct !47
  %42 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 14
  %43 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 15
  call void @llvm.lifetime.start.p0(i64 376, ptr %9) #10
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %9)
          to label %44 unwind label %75

44:                                               ; preds = %4
  %45 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 9
  %46 = load i32, ptr %45, align 8, !tbaa !46
  %47 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %9, i32 noundef %46)
          to label %48 unwind label %79

48:                                               ; preds = %44
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %13) #10
  invoke void @_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef nonnull align 8 dereferenceable(112) %9)
          to label %49 unwind label %83

49:                                               ; preds = %48
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef @.str.87, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %50 unwind label %87

50:                                               ; preds = %49
  %51 = getelementptr inbounds %class.McPATComponent, ptr %28, i32 0, i32 4
  %52 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull align 8 dereferenceable(32) %12) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #10
  store i32 0, ptr %14, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #10
  store i32 0, ptr %14, align 4, !tbaa !9
  br label %53

53:                                               ; preds = %149, %50
  %54 = load i32, ptr %14, align 4, !tbaa !9
  %55 = getelementptr inbounds %class.McPATComponent, ptr %28, i32 0, i32 2
  %56 = load ptr, ptr %55, align 8, !tbaa !51
  %57 = invoke noundef i32 @_ZNK7XMLNode10nChildNodeEPKc(ptr noundef nonnull align 8 dereferenceable(8) %56, ptr noundef @.str.1)
          to label %58 unwind label %92

58:                                               ; preds = %53
  %59 = icmp slt i32 %54, %57
  br i1 %59, label %60, label %153

60:                                               ; preds = %58
  %61 = getelementptr inbounds %class.McPATComponent, ptr %28, i32 0, i32 2
  %62 = load ptr, ptr %61, align 8, !tbaa !51
  %63 = invoke noundef ptr @_ZNK7XMLNode15getChildNodePtrEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %62, ptr noundef @.str.1, ptr noundef %14)
          to label %64 unwind label %92

64:                                               ; preds = %60
  store ptr %63, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #10
  %65 = load ptr, ptr %15, align 8, !tbaa !5
  %66 = invoke noundef ptr @_ZNK7XMLNode12getAttributeEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %65, ptr noundef @.str.2, ptr noundef null)
          to label %67 unwind label %96

67:                                               ; preds = %64
  store ptr %66, ptr %16, align 8, !tbaa !5
  %68 = load ptr, ptr %16, align 8, !tbaa !5
  %69 = icmp ne ptr %68, null
  br i1 %69, label %100, label %70

70:                                               ; preds = %67
  %71 = load ptr, ptr %15, align 8, !tbaa !5
  %72 = invoke noundef ptr @_ZNK7XMLNode12getAttributeEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %71, ptr noundef @.str.3, ptr noundef null)
          to label %73 unwind label %96

73:                                               ; preds = %70
  invoke void @_ZN14McPATComponent24warnMissingComponentTypeEPKc(ptr noundef nonnull align 8 dereferenceable(1352) %28, ptr noundef %72)
          to label %74 unwind label %96

74:                                               ; preds = %73
  br label %145

75:                                               ; preds = %4
  %76 = landingpad { ptr, i32 }
          cleanup
  %77 = extractvalue { ptr, i32 } %76, 0
  store ptr %77, ptr %10, align 8
  %78 = extractvalue { ptr, i32 } %76, 1
  store i32 %78, ptr %11, align 4
  br label %574

79:                                               ; preds = %44
  %80 = landingpad { ptr, i32 }
          cleanup
  %81 = extractvalue { ptr, i32 } %80, 0
  store ptr %81, ptr %10, align 8
  %82 = extractvalue { ptr, i32 } %80, 1
  store i32 %82, ptr %11, align 4
  br label %573

83:                                               ; preds = %48
  %84 = landingpad { ptr, i32 }
          cleanup
  %85 = extractvalue { ptr, i32 } %84, 0
  store ptr %85, ptr %10, align 8
  %86 = extractvalue { ptr, i32 } %84, 1
  store i32 %86, ptr %11, align 4
  br label %91

87:                                               ; preds = %49
  %88 = landingpad { ptr, i32 }
          cleanup
  %89 = extractvalue { ptr, i32 } %88, 0
  store ptr %89, ptr %10, align 8
  %90 = extractvalue { ptr, i32 } %88, 1
  store i32 %90, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #10
  br label %91

91:                                               ; preds = %87, %83
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #10
  br label %573

92:                                               ; preds = %293, %231, %214, %197, %184, %171, %154, %153, %60, %53
  %93 = landingpad { ptr, i32 }
          cleanup
  %94 = extractvalue { ptr, i32 } %93, 0
  store ptr %94, ptr %10, align 8
  %95 = extractvalue { ptr, i32 } %93, 1
  store i32 %95, ptr %11, align 4
  br label %572

96:                                               ; preds = %73, %70, %64
  %97 = landingpad { ptr, i32 }
          cleanup
  %98 = extractvalue { ptr, i32 } %97, 0
  store ptr %98, ptr %10, align 8
  %99 = extractvalue { ptr, i32 } %97, 1
  store i32 %99, ptr %11, align 4
  br label %152

100:                                              ; preds = %67
  %101 = load ptr, ptr %16, align 8, !tbaa !5
  %102 = call i32 @strcmp(ptr noundef %101, ptr noundef @.str.4) #11
  %103 = icmp eq i32 %102, 0
  br i1 %103, label %104, label %144

104:                                              ; preds = %100
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #10
  %105 = load ptr, ptr %15, align 8, !tbaa !5
  %106 = invoke noundef ptr @_ZNK7XMLNode12getAttributeEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %105, ptr noundef @.str.3, ptr noundef null)
          to label %107 unwind label %111

107:                                              ; preds = %104
  store ptr %106, ptr %17, align 8, !tbaa !5
  %108 = load ptr, ptr %17, align 8, !tbaa !5
  %109 = icmp ne ptr %108, null
  br i1 %109, label %115, label %110

110:                                              ; preds = %107
  store i32 4, ptr %18, align 4
  br label %140

111:                                              ; preds = %119, %104
  %112 = landingpad { ptr, i32 }
          cleanup
  %113 = extractvalue { ptr, i32 } %112, 0
  store ptr %113, ptr %10, align 8
  %114 = extractvalue { ptr, i32 } %112, 1
  store i32 %114, ptr %11, align 4
  br label %143

115:                                              ; preds = %107
  %116 = load ptr, ptr %17, align 8, !tbaa !5
  %117 = call i32 @strcmp(ptr noundef %116, ptr noundef @.str.88) #11
  %118 = icmp eq i32 %117, 0
  br i1 %118, label %119, label %138

119:                                              ; preds = %115
  %120 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 1784) #12
          to label %121 unwind label %111

121:                                              ; preds = %119
  %122 = load ptr, ptr %15, align 8, !tbaa !5
  %123 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 10
  invoke void @_ZN9CacheUnitC1EP7XMLNodeP14InputParameter(ptr noundef nonnull align 8 dereferenceable(1784) %120, ptr noundef %122, ptr noundef %123)
          to label %124 unwind label %130

124:                                              ; preds = %121
  %125 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 8
  store ptr %120, ptr %125, align 8, !tbaa !45
  %126 = getelementptr inbounds %class.McPATComponent, ptr %28, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #10
  %127 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 8
  %128 = load ptr, ptr %127, align 8, !tbaa !45
  store ptr %128, ptr %19, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIP14McPATComponentSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %126, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %129 unwind label %134

129:                                              ; preds = %124
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #10
  br label %138

130:                                              ; preds = %121
  %131 = landingpad { ptr, i32 }
          cleanup
  %132 = extractvalue { ptr, i32 } %131, 0
  store ptr %132, ptr %10, align 8
  %133 = extractvalue { ptr, i32 } %131, 1
  store i32 %133, ptr %11, align 4
  call void @_ZdlPvm(ptr noundef %120, i64 noundef 1784) #13
  br label %143

134:                                              ; preds = %124
  %135 = landingpad { ptr, i32 }
          cleanup
  %136 = extractvalue { ptr, i32 } %135, 0
  store ptr %136, ptr %10, align 8
  %137 = extractvalue { ptr, i32 } %135, 1
  store i32 %137, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #10
  br label %143

138:                                              ; preds = %129, %115
  br label %139

139:                                              ; preds = %138
  store i32 0, ptr %18, align 4
  br label %140

140:                                              ; preds = %139, %110
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #10
  %141 = load i32, ptr %18, align 4
  switch i32 %141, label %146 [
    i32 0, label %142
  ]

142:                                              ; preds = %140
  br label %144

143:                                              ; preds = %134, %130, %111
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #10
  br label %152

144:                                              ; preds = %142, %100
  br label %145

145:                                              ; preds = %144, %74
  store i32 0, ptr %18, align 4
  br label %146

146:                                              ; preds = %145, %140
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #10
  %147 = load i32, ptr %18, align 4
  switch i32 %147, label %580 [
    i32 0, label %148
    i32 4, label %149
  ]

148:                                              ; preds = %146
  br label %149

149:                                              ; preds = %148, %146
  %150 = load i32, ptr %14, align 4, !tbaa !9
  %151 = add nsw i32 %150, 1
  store i32 %151, ptr %14, align 4, !tbaa !9
  br label %53, !llvm.loop !52

152:                                              ; preds = %143, %96
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #10
  br label %572

153:                                              ; preds = %58
  invoke void @_ZN4Core14set_core_paramEv(ptr noundef nonnull align 8 dereferenceable(2688) %28)
          to label %154 unwind label %92

154:                                              ; preds = %153
  %155 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 14
  %156 = getelementptr inbounds %class.CoreParameters, ptr %155, i32 0, i32 6
  %157 = load double, ptr %156, align 8, !tbaa !54
  %158 = getelementptr inbounds %class.McPATComponent, ptr %28, i32 0, i32 5
  store double %157, ptr %158, align 8, !tbaa !55
  %159 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 2728) #12
          to label %160 unwind label %92

160:                                              ; preds = %154
  %161 = getelementptr inbounds %class.McPATComponent, ptr %28, i32 0, i32 2
  %162 = load ptr, ptr %161, align 8, !tbaa !51
  %163 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 10
  %164 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 14
  %165 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 15
  invoke void @_ZN10InstFetchUC1EP7XMLNodeP14InputParameterRK14CoreParametersRK14CoreStatisticsb(ptr noundef nonnull align 8 dereferenceable(2725) %159, ptr noundef %162, ptr noundef %163, ptr noundef nonnull align 8 dereferenceable(480) %164, ptr noundef nonnull align 8 dereferenceable(392) %165, i1 noundef zeroext true)
          to label %166 unwind label %245

166:                                              ; preds = %160
  %167 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 1
  store ptr %159, ptr %167, align 8, !tbaa !13
  %168 = getelementptr inbounds %class.McPATComponent, ptr %28, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #10
  %169 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 1
  %170 = load ptr, ptr %169, align 8, !tbaa !13
  store ptr %170, ptr %20, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIP14McPATComponentSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %168, ptr noundef nonnull align 8 dereferenceable(8) %20)
          to label %171 unwind label %249

171:                                              ; preds = %166
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #10
  %172 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 2664) #12
          to label %173 unwind label %92

173:                                              ; preds = %171
  %174 = getelementptr inbounds %class.McPATComponent, ptr %28, i32 0, i32 2
  %175 = load ptr, ptr %174, align 8, !tbaa !51
  %176 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 10
  %177 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 14
  %178 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 15
  invoke void @_ZN10LoadStoreUC1EP7XMLNodeP14InputParameterRK14CoreParametersRK14CoreStatisticsb(ptr noundef nonnull align 8 dereferenceable(2657) %172, ptr noundef %175, ptr noundef %176, ptr noundef nonnull align 8 dereferenceable(480) %177, ptr noundef nonnull align 8 dereferenceable(392) %178, i1 noundef zeroext true)
          to label %179 unwind label %253

179:                                              ; preds = %173
  %180 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 2
  store ptr %172, ptr %180, align 8, !tbaa !39
  %181 = getelementptr inbounds %class.McPATComponent, ptr %28, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #10
  %182 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 2
  %183 = load ptr, ptr %182, align 8, !tbaa !39
  store ptr %183, ptr %21, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIP14McPATComponentSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %181, ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %184 unwind label %257

184:                                              ; preds = %179
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #10
  %185 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 2768) #12
          to label %186 unwind label %92

186:                                              ; preds = %184
  %187 = getelementptr inbounds %class.McPATComponent, ptr %28, i32 0, i32 2
  %188 = load ptr, ptr %187, align 8, !tbaa !51
  %189 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 10
  %190 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 14
  %191 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 15
  invoke void @_ZN7MemManUC1EP7XMLNodeP14InputParameterRK14CoreParametersRK14CoreStatisticsb(ptr noundef nonnull align 8 dereferenceable(2761) %185, ptr noundef %188, ptr noundef %189, ptr noundef nonnull align 8 dereferenceable(480) %190, ptr noundef nonnull align 8 dereferenceable(392) %191, i1 noundef zeroext true)
          to label %192 unwind label %261

192:                                              ; preds = %186
  %193 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 3
  store ptr %185, ptr %193, align 8, !tbaa !40
  %194 = getelementptr inbounds %class.McPATComponent, ptr %28, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #10
  %195 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 3
  %196 = load ptr, ptr %195, align 8, !tbaa !40
  store ptr %196, ptr %22, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIP14McPATComponentSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %194, ptr noundef nonnull align 8 dereferenceable(8) %22)
          to label %197 unwind label %265

197:                                              ; preds = %192
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #10
  %198 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 2720) #12
          to label %199 unwind label %92

199:                                              ; preds = %197
  %200 = getelementptr inbounds %class.McPATComponent, ptr %28, i32 0, i32 2
  %201 = load ptr, ptr %200, align 8, !tbaa !51
  %202 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 10
  %203 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 2
  %204 = load ptr, ptr %203, align 8, !tbaa !39
  %205 = getelementptr inbounds %class.LoadStoreU, ptr %204, i32 0, i32 12
  %206 = load double, ptr %205, align 8, !tbaa !56
  %207 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 14
  %208 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 15
  invoke void @_ZN5EXECUC1EP7XMLNodeP14InputParameterdRK14CoreParametersRK14CoreStatisticsb(ptr noundef nonnull align 8 dereferenceable(2713) %198, ptr noundef %201, ptr noundef %202, double noundef %206, ptr noundef nonnull align 8 dereferenceable(480) %207, ptr noundef nonnull align 8 dereferenceable(392) %208, i1 noundef zeroext true)
          to label %209 unwind label %269

209:                                              ; preds = %199
  %210 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 4
  store ptr %198, ptr %210, align 8, !tbaa !41
  %211 = getelementptr inbounds %class.McPATComponent, ptr %28, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #10
  %212 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 4
  %213 = load ptr, ptr %212, align 8, !tbaa !41
  store ptr %213, ptr %23, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIP14McPATComponentSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %211, ptr noundef nonnull align 8 dereferenceable(8) %23)
          to label %214 unwind label %273

214:                                              ; preds = %209
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #10
  %215 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 2264) #12
          to label %216 unwind label %92

216:                                              ; preds = %214
  %217 = getelementptr inbounds %class.McPATComponent, ptr %28, i32 0, i32 2
  %218 = load ptr, ptr %217, align 8, !tbaa !51
  %219 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 10
  %220 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 14
  invoke void @_ZN10UndiffCoreC1EP7XMLNodeP14InputParameterRK14CoreParametersb(ptr noundef nonnull align 8 dereferenceable(2258) %215, ptr noundef %218, ptr noundef %219, ptr noundef nonnull align 8 dereferenceable(480) %220, i1 noundef zeroext true)
          to label %221 unwind label %277

221:                                              ; preds = %216
  %222 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 7
  store ptr %215, ptr %222, align 8, !tbaa !44
  %223 = getelementptr inbounds %class.McPATComponent, ptr %28, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #10
  %224 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 7
  %225 = load ptr, ptr %224, align 8, !tbaa !44
  store ptr %225, ptr %24, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIP14McPATComponentSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %223, ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %226 unwind label %281

226:                                              ; preds = %221
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #10
  %227 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 14
  %228 = getelementptr inbounds %class.CoreParameters, ptr %227, i32 0, i32 3
  %229 = load i32, ptr %228, align 4, !tbaa !59
  %230 = icmp eq i32 %229, 0
  br i1 %230, label %231, label %293

231:                                              ; preds = %226
  %232 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 2672) #12
          to label %233 unwind label %92

233:                                              ; preds = %231
  %234 = getelementptr inbounds %class.McPATComponent, ptr %28, i32 0, i32 2
  %235 = load ptr, ptr %234, align 8, !tbaa !51
  %236 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 10
  %237 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 14
  %238 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 15
  invoke void @_ZN9RENAMINGUC1EP7XMLNodeP14InputParameterRK14CoreParametersRK14CoreStatisticsb(ptr noundef nonnull align 8 dereferenceable(2665) %232, ptr noundef %235, ptr noundef %236, ptr noundef nonnull align 8 dereferenceable(480) %237, ptr noundef nonnull align 8 dereferenceable(392) %238, i1 noundef zeroext true)
          to label %239 unwind label %285

239:                                              ; preds = %233
  %240 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 5
  store ptr %232, ptr %240, align 8, !tbaa !42
  %241 = getelementptr inbounds %class.McPATComponent, ptr %28, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #10
  %242 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 5
  %243 = load ptr, ptr %242, align 8, !tbaa !42
  store ptr %243, ptr %25, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIP14McPATComponentSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %241, ptr noundef nonnull align 8 dereferenceable(8) %25)
          to label %244 unwind label %289

244:                                              ; preds = %239
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #10
  br label %293

245:                                              ; preds = %160
  %246 = landingpad { ptr, i32 }
          cleanup
  %247 = extractvalue { ptr, i32 } %246, 0
  store ptr %247, ptr %10, align 8
  %248 = extractvalue { ptr, i32 } %246, 1
  store i32 %248, ptr %11, align 4
  call void @_ZdlPvm(ptr noundef %159, i64 noundef 2728) #13
  br label %572

249:                                              ; preds = %166
  %250 = landingpad { ptr, i32 }
          cleanup
  %251 = extractvalue { ptr, i32 } %250, 0
  store ptr %251, ptr %10, align 8
  %252 = extractvalue { ptr, i32 } %250, 1
  store i32 %252, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #10
  br label %572

253:                                              ; preds = %173
  %254 = landingpad { ptr, i32 }
          cleanup
  %255 = extractvalue { ptr, i32 } %254, 0
  store ptr %255, ptr %10, align 8
  %256 = extractvalue { ptr, i32 } %254, 1
  store i32 %256, ptr %11, align 4
  call void @_ZdlPvm(ptr noundef %172, i64 noundef 2664) #13
  br label %572

257:                                              ; preds = %179
  %258 = landingpad { ptr, i32 }
          cleanup
  %259 = extractvalue { ptr, i32 } %258, 0
  store ptr %259, ptr %10, align 8
  %260 = extractvalue { ptr, i32 } %258, 1
  store i32 %260, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #10
  br label %572

261:                                              ; preds = %186
  %262 = landingpad { ptr, i32 }
          cleanup
  %263 = extractvalue { ptr, i32 } %262, 0
  store ptr %263, ptr %10, align 8
  %264 = extractvalue { ptr, i32 } %262, 1
  store i32 %264, ptr %11, align 4
  call void @_ZdlPvm(ptr noundef %185, i64 noundef 2768) #13
  br label %572

265:                                              ; preds = %192
  %266 = landingpad { ptr, i32 }
          cleanup
  %267 = extractvalue { ptr, i32 } %266, 0
  store ptr %267, ptr %10, align 8
  %268 = extractvalue { ptr, i32 } %266, 1
  store i32 %268, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #10
  br label %572

269:                                              ; preds = %199
  %270 = landingpad { ptr, i32 }
          cleanup
  %271 = extractvalue { ptr, i32 } %270, 0
  store ptr %271, ptr %10, align 8
  %272 = extractvalue { ptr, i32 } %270, 1
  store i32 %272, ptr %11, align 4
  call void @_ZdlPvm(ptr noundef %198, i64 noundef 2720) #13
  br label %572

273:                                              ; preds = %209
  %274 = landingpad { ptr, i32 }
          cleanup
  %275 = extractvalue { ptr, i32 } %274, 0
  store ptr %275, ptr %10, align 8
  %276 = extractvalue { ptr, i32 } %274, 1
  store i32 %276, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #10
  br label %572

277:                                              ; preds = %216
  %278 = landingpad { ptr, i32 }
          cleanup
  %279 = extractvalue { ptr, i32 } %278, 0
  store ptr %279, ptr %10, align 8
  %280 = extractvalue { ptr, i32 } %278, 1
  store i32 %280, ptr %11, align 4
  call void @_ZdlPvm(ptr noundef %215, i64 noundef 2264) #13
  br label %572

281:                                              ; preds = %221
  %282 = landingpad { ptr, i32 }
          cleanup
  %283 = extractvalue { ptr, i32 } %282, 0
  store ptr %283, ptr %10, align 8
  %284 = extractvalue { ptr, i32 } %282, 1
  store i32 %284, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #10
  br label %572

285:                                              ; preds = %233
  %286 = landingpad { ptr, i32 }
          cleanup
  %287 = extractvalue { ptr, i32 } %286, 0
  store ptr %287, ptr %10, align 8
  %288 = extractvalue { ptr, i32 } %286, 1
  store i32 %288, ptr %11, align 4
  call void @_ZdlPvm(ptr noundef %232, i64 noundef 2672) #13
  br label %572

289:                                              ; preds = %239
  %290 = landingpad { ptr, i32 }
          cleanup
  %291 = extractvalue { ptr, i32 } %290, 0
  store ptr %291, ptr %10, align 8
  %292 = extractvalue { ptr, i32 } %290, 1
  store i32 %292, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #10
  br label %572

293:                                              ; preds = %244, %226
  %294 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 10448) #12
          to label %295 unwind label %92

295:                                              ; preds = %293
  %296 = getelementptr inbounds %class.McPATComponent, ptr %28, i32 0, i32 2
  %297 = load ptr, ptr %296, align 8, !tbaa !51
  %298 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 10
  %299 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 14
  invoke void @_ZN8PipelineC1EP7XMLNodePK14InputParameterRK14CoreParameters9Device_tybb(ptr noundef nonnull align 8 dereferenceable(10448) %294, ptr noundef %297, ptr noundef %298, ptr noundef nonnull align 8 dereferenceable(480) %299, i32 noundef 0, i1 noundef zeroext true, i1 noundef zeroext true)
          to label %300 unwind label %342

300:                                              ; preds = %295
  %301 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 6
  store ptr %294, ptr %301, align 8, !tbaa !43
  %302 = getelementptr inbounds %class.McPATComponent, ptr %28, i32 0, i32 6
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #10
  %303 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 6
  %304 = load ptr, ptr %303, align 8, !tbaa !43
  store ptr %304, ptr %26, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIP14McPATComponentSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %302, ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %305 unwind label %346

305:                                              ; preds = %300
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #10
  %306 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 14
  %307 = getelementptr inbounds %class.CoreParameters, ptr %306, i32 0, i32 3
  %308 = load i32, ptr %307, align 4, !tbaa !59
  %309 = icmp eq i32 %308, 0
  br i1 %309, label %310, label %355

310:                                              ; preds = %305
  %311 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 6
  %312 = load ptr, ptr %311, align 8, !tbaa !43
  %313 = getelementptr inbounds i8, ptr %312, i64 8
  %314 = getelementptr inbounds %class.Component, ptr %313, i32 0, i32 0
  %315 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %314)
          to label %316 unwind label %350

316:                                              ; preds = %310
  %317 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 14
  %318 = getelementptr inbounds %class.CoreParameters, ptr %317, i32 0, i32 35
  %319 = load i32, ptr %318, align 8, !tbaa !60
  %320 = sitofp i32 %319 to double
  %321 = fmul double %315, %320
  %322 = fdiv double %321, 5.000000e+00
  store double %322, ptr %27, align 8, !tbaa !49
  %323 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 5
  %324 = load ptr, ptr %323, align 8, !tbaa !42
  %325 = getelementptr inbounds %class.RENAMINGU, ptr %324, i32 0, i32 13
  %326 = load i8, ptr %325, align 8, !tbaa !61, !range !63, !noundef !64
  %327 = trunc i8 %326 to i1
  br i1 %327, label %328, label %354

328:                                              ; preds = %316
  %329 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 5
  %330 = load ptr, ptr %329, align 8, !tbaa !42
  %331 = getelementptr inbounds i8, ptr %330, i64 8
  %332 = getelementptr inbounds %class.Component, ptr %331, i32 0, i32 0
  %333 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 5
  %334 = load ptr, ptr %333, align 8, !tbaa !42
  %335 = getelementptr inbounds i8, ptr %334, i64 8
  %336 = getelementptr inbounds %class.Component, ptr %335, i32 0, i32 0
  %337 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %336)
          to label %338 unwind label %350

338:                                              ; preds = %328
  %339 = load double, ptr %27, align 8, !tbaa !49
  %340 = fadd double %337, %339
  invoke void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %332, double noundef %340)
          to label %341 unwind label %350

341:                                              ; preds = %338
  br label %354

342:                                              ; preds = %295
  %343 = landingpad { ptr, i32 }
          cleanup
  %344 = extractvalue { ptr, i32 } %343, 0
  store ptr %344, ptr %10, align 8
  %345 = extractvalue { ptr, i32 } %343, 1
  store i32 %345, ptr %11, align 4
  call void @_ZdlPvm(ptr noundef %294, i64 noundef 10448) #13
  br label %572

346:                                              ; preds = %300
  %347 = landingpad { ptr, i32 }
          cleanup
  %348 = extractvalue { ptr, i32 } %347, 0
  store ptr %348, ptr %10, align 8
  %349 = extractvalue { ptr, i32 } %347, 1
  store i32 %349, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #10
  br label %572

350:                                              ; preds = %568, %562, %556, %549, %543, %537, %527, %521, %515, %501, %495, %489, %486, %476, %467, %461, %455, %452, %442, %433, %427, %421, %418, %408, %399, %393, %387, %384, %374, %355, %338, %328, %310
  %351 = landingpad { ptr, i32 }
          cleanup
  %352 = extractvalue { ptr, i32 } %351, 0
  store ptr %352, ptr %10, align 8
  %353 = extractvalue { ptr, i32 } %351, 1
  store i32 %353, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #10
  br label %572

354:                                              ; preds = %341, %316
  br label %368

355:                                              ; preds = %305
  %356 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 6
  %357 = load ptr, ptr %356, align 8, !tbaa !43
  %358 = getelementptr inbounds i8, ptr %357, i64 8
  %359 = getelementptr inbounds %class.Component, ptr %358, i32 0, i32 0
  %360 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %359)
          to label %361 unwind label %350

361:                                              ; preds = %355
  %362 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 14
  %363 = getelementptr inbounds %class.CoreParameters, ptr %362, i32 0, i32 35
  %364 = load i32, ptr %363, align 8, !tbaa !60
  %365 = sitofp i32 %364 to double
  %366 = fmul double %360, %365
  %367 = fdiv double %366, 4.000000e+00
  store double %367, ptr %27, align 8, !tbaa !49
  br label %368

368:                                              ; preds = %361, %354
  %369 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 1
  %370 = load ptr, ptr %369, align 8, !tbaa !13
  %371 = getelementptr inbounds %class.InstFetchU, ptr %370, i32 0, i32 18
  %372 = load i8, ptr %371, align 4, !tbaa !65, !range !63, !noundef !64
  %373 = trunc i8 %372 to i1
  br i1 %373, label %374, label %402

374:                                              ; preds = %368
  %375 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 1
  %376 = load ptr, ptr %375, align 8, !tbaa !13
  %377 = getelementptr inbounds i8, ptr %376, i64 8
  %378 = getelementptr inbounds %class.Component, ptr %377, i32 0, i32 0
  %379 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 1
  %380 = load ptr, ptr %379, align 8, !tbaa !13
  %381 = getelementptr inbounds i8, ptr %380, i64 8
  %382 = getelementptr inbounds %class.Component, ptr %381, i32 0, i32 0
  %383 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %382)
          to label %384 unwind label %350

384:                                              ; preds = %374
  %385 = load double, ptr %27, align 8, !tbaa !49
  %386 = fadd double %383, %385
  invoke void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %378, double noundef %386)
          to label %387 unwind label %350

387:                                              ; preds = %384
  %388 = getelementptr inbounds i8, ptr %28, i64 8
  %389 = getelementptr inbounds %class.Component, ptr %388, i32 0, i32 0
  %390 = getelementptr inbounds i8, ptr %28, i64 8
  %391 = getelementptr inbounds %class.Component, ptr %390, i32 0, i32 0
  %392 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %391)
          to label %393 unwind label %350

393:                                              ; preds = %387
  %394 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 1
  %395 = load ptr, ptr %394, align 8, !tbaa !13
  %396 = getelementptr inbounds i8, ptr %395, i64 8
  %397 = getelementptr inbounds %class.Component, ptr %396, i32 0, i32 0
  %398 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %397)
          to label %399 unwind label %350

399:                                              ; preds = %393
  %400 = fadd double %392, %398
  invoke void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %389, double noundef %400)
          to label %401 unwind label %350

401:                                              ; preds = %399
  br label %402

402:                                              ; preds = %401, %368
  %403 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 2
  %404 = load ptr, ptr %403, align 8, !tbaa !39
  %405 = getelementptr inbounds %class.LoadStoreU, ptr %404, i32 0, i32 13
  %406 = load i8, ptr %405, align 8, !tbaa !69, !range !63, !noundef !64
  %407 = trunc i8 %406 to i1
  br i1 %407, label %408, label %436

408:                                              ; preds = %402
  %409 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 2
  %410 = load ptr, ptr %409, align 8, !tbaa !39
  %411 = getelementptr inbounds i8, ptr %410, i64 8
  %412 = getelementptr inbounds %class.Component, ptr %411, i32 0, i32 0
  %413 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 2
  %414 = load ptr, ptr %413, align 8, !tbaa !39
  %415 = getelementptr inbounds i8, ptr %414, i64 8
  %416 = getelementptr inbounds %class.Component, ptr %415, i32 0, i32 0
  %417 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %416)
          to label %418 unwind label %350

418:                                              ; preds = %408
  %419 = load double, ptr %27, align 8, !tbaa !49
  %420 = fadd double %417, %419
  invoke void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %412, double noundef %420)
          to label %421 unwind label %350

421:                                              ; preds = %418
  %422 = getelementptr inbounds i8, ptr %28, i64 8
  %423 = getelementptr inbounds %class.Component, ptr %422, i32 0, i32 0
  %424 = getelementptr inbounds i8, ptr %28, i64 8
  %425 = getelementptr inbounds %class.Component, ptr %424, i32 0, i32 0
  %426 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %425)
          to label %427 unwind label %350

427:                                              ; preds = %421
  %428 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 2
  %429 = load ptr, ptr %428, align 8, !tbaa !39
  %430 = getelementptr inbounds i8, ptr %429, i64 8
  %431 = getelementptr inbounds %class.Component, ptr %430, i32 0, i32 0
  %432 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %431)
          to label %433 unwind label %350

433:                                              ; preds = %427
  %434 = fadd double %426, %432
  invoke void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %423, double noundef %434)
          to label %435 unwind label %350

435:                                              ; preds = %433
  br label %436

436:                                              ; preds = %435, %402
  %437 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 4
  %438 = load ptr, ptr %437, align 8, !tbaa !41
  %439 = getelementptr inbounds %class.EXECU, ptr %438, i32 0, i32 19
  %440 = load i8, ptr %439, align 8, !tbaa !70, !range !63, !noundef !64
  %441 = trunc i8 %440 to i1
  br i1 %441, label %442, label %470

442:                                              ; preds = %436
  %443 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 4
  %444 = load ptr, ptr %443, align 8, !tbaa !41
  %445 = getelementptr inbounds i8, ptr %444, i64 8
  %446 = getelementptr inbounds %class.Component, ptr %445, i32 0, i32 0
  %447 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 4
  %448 = load ptr, ptr %447, align 8, !tbaa !41
  %449 = getelementptr inbounds i8, ptr %448, i64 8
  %450 = getelementptr inbounds %class.Component, ptr %449, i32 0, i32 0
  %451 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %450)
          to label %452 unwind label %350

452:                                              ; preds = %442
  %453 = load double, ptr %27, align 8, !tbaa !49
  %454 = fadd double %451, %453
  invoke void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %446, double noundef %454)
          to label %455 unwind label %350

455:                                              ; preds = %452
  %456 = getelementptr inbounds i8, ptr %28, i64 8
  %457 = getelementptr inbounds %class.Component, ptr %456, i32 0, i32 0
  %458 = getelementptr inbounds i8, ptr %28, i64 8
  %459 = getelementptr inbounds %class.Component, ptr %458, i32 0, i32 0
  %460 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %459)
          to label %461 unwind label %350

461:                                              ; preds = %455
  %462 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 4
  %463 = load ptr, ptr %462, align 8, !tbaa !41
  %464 = getelementptr inbounds i8, ptr %463, i64 8
  %465 = getelementptr inbounds %class.Component, ptr %464, i32 0, i32 0
  %466 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %465)
          to label %467 unwind label %350

467:                                              ; preds = %461
  %468 = fadd double %460, %466
  invoke void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %457, double noundef %468)
          to label %469 unwind label %350

469:                                              ; preds = %467
  br label %470

470:                                              ; preds = %469, %436
  %471 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 3
  %472 = load ptr, ptr %471, align 8, !tbaa !40
  %473 = getelementptr inbounds %class.MemManU, ptr %472, i32 0, i32 11
  %474 = load i8, ptr %473, align 8, !tbaa !72, !range !63, !noundef !64
  %475 = trunc i8 %474 to i1
  br i1 %475, label %476, label %504

476:                                              ; preds = %470
  %477 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 3
  %478 = load ptr, ptr %477, align 8, !tbaa !40
  %479 = getelementptr inbounds i8, ptr %478, i64 8
  %480 = getelementptr inbounds %class.Component, ptr %479, i32 0, i32 0
  %481 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 3
  %482 = load ptr, ptr %481, align 8, !tbaa !40
  %483 = getelementptr inbounds i8, ptr %482, i64 8
  %484 = getelementptr inbounds %class.Component, ptr %483, i32 0, i32 0
  %485 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %484)
          to label %486 unwind label %350

486:                                              ; preds = %476
  %487 = load double, ptr %27, align 8, !tbaa !49
  %488 = fadd double %485, %487
  invoke void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %480, double noundef %488)
          to label %489 unwind label %350

489:                                              ; preds = %486
  %490 = getelementptr inbounds i8, ptr %28, i64 8
  %491 = getelementptr inbounds %class.Component, ptr %490, i32 0, i32 0
  %492 = getelementptr inbounds i8, ptr %28, i64 8
  %493 = getelementptr inbounds %class.Component, ptr %492, i32 0, i32 0
  %494 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %493)
          to label %495 unwind label %350

495:                                              ; preds = %489
  %496 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 3
  %497 = load ptr, ptr %496, align 8, !tbaa !40
  %498 = getelementptr inbounds i8, ptr %497, i64 8
  %499 = getelementptr inbounds %class.Component, ptr %498, i32 0, i32 0
  %500 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %499)
          to label %501 unwind label %350

501:                                              ; preds = %495
  %502 = fadd double %494, %500
  invoke void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %491, double noundef %502)
          to label %503 unwind label %350

503:                                              ; preds = %501
  br label %504

504:                                              ; preds = %503, %470
  %505 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 14
  %506 = getelementptr inbounds %class.CoreParameters, ptr %505, i32 0, i32 3
  %507 = load i32, ptr %506, align 4, !tbaa !59
  %508 = icmp eq i32 %507, 0
  br i1 %508, label %509, label %531

509:                                              ; preds = %504
  %510 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 5
  %511 = load ptr, ptr %510, align 8, !tbaa !42
  %512 = getelementptr inbounds %class.RENAMINGU, ptr %511, i32 0, i32 13
  %513 = load i8, ptr %512, align 8, !tbaa !61, !range !63, !noundef !64
  %514 = trunc i8 %513 to i1
  br i1 %514, label %515, label %530

515:                                              ; preds = %509
  %516 = getelementptr inbounds i8, ptr %28, i64 8
  %517 = getelementptr inbounds %class.Component, ptr %516, i32 0, i32 0
  %518 = getelementptr inbounds i8, ptr %28, i64 8
  %519 = getelementptr inbounds %class.Component, ptr %518, i32 0, i32 0
  %520 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %519)
          to label %521 unwind label %350

521:                                              ; preds = %515
  %522 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 5
  %523 = load ptr, ptr %522, align 8, !tbaa !42
  %524 = getelementptr inbounds i8, ptr %523, i64 8
  %525 = getelementptr inbounds %class.Component, ptr %524, i32 0, i32 0
  %526 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %525)
          to label %527 unwind label %350

527:                                              ; preds = %521
  %528 = fadd double %520, %526
  invoke void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %517, double noundef %528)
          to label %529 unwind label %350

529:                                              ; preds = %527
  br label %530

530:                                              ; preds = %529, %509
  br label %531

531:                                              ; preds = %530, %504
  %532 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 7
  %533 = load ptr, ptr %532, align 8, !tbaa !44
  %534 = getelementptr inbounds %class.UndiffCore, ptr %533, i32 0, i32 14
  %535 = load i8, ptr %534, align 1, !tbaa !76, !range !63, !noundef !64
  %536 = trunc i8 %535 to i1
  br i1 %536, label %537, label %552

537:                                              ; preds = %531
  %538 = getelementptr inbounds i8, ptr %28, i64 8
  %539 = getelementptr inbounds %class.Component, ptr %538, i32 0, i32 0
  %540 = getelementptr inbounds i8, ptr %28, i64 8
  %541 = getelementptr inbounds %class.Component, ptr %540, i32 0, i32 0
  %542 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %541)
          to label %543 unwind label %350

543:                                              ; preds = %537
  %544 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 7
  %545 = load ptr, ptr %544, align 8, !tbaa !44
  %546 = getelementptr inbounds i8, ptr %545, i64 8
  %547 = getelementptr inbounds %class.Component, ptr %546, i32 0, i32 0
  %548 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %547)
          to label %549 unwind label %350

549:                                              ; preds = %543
  %550 = fadd double %542, %548
  invoke void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %539, double noundef %550)
          to label %551 unwind label %350

551:                                              ; preds = %549
  br label %552

552:                                              ; preds = %551, %531
  %553 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 8
  %554 = load ptr, ptr %553, align 8, !tbaa !45
  %555 = icmp ne ptr %554, null
  br i1 %555, label %556, label %571

556:                                              ; preds = %552
  %557 = getelementptr inbounds i8, ptr %28, i64 8
  %558 = getelementptr inbounds %class.Component, ptr %557, i32 0, i32 0
  %559 = getelementptr inbounds i8, ptr %28, i64 8
  %560 = getelementptr inbounds %class.Component, ptr %559, i32 0, i32 0
  %561 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %560)
          to label %562 unwind label %350

562:                                              ; preds = %556
  %563 = getelementptr inbounds %class.Core, ptr %28, i32 0, i32 8
  %564 = load ptr, ptr %563, align 8, !tbaa !45
  %565 = getelementptr inbounds i8, ptr %564, i64 8
  %566 = getelementptr inbounds %class.Component, ptr %565, i32 0, i32 0
  %567 = invoke noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %566)
          to label %568 unwind label %350

568:                                              ; preds = %562
  %569 = fadd double %561, %567
  invoke void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %558, double noundef %569)
          to label %570 unwind label %350

570:                                              ; preds = %568
  br label %571

571:                                              ; preds = %570, %552
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #10
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %9) #10
  call void @llvm.lifetime.end.p0(i64 376, ptr %9) #10
  ret void

572:                                              ; preds = %350, %346, %342, %289, %285, %281, %277, %273, %269, %265, %261, %257, %253, %249, %245, %152, %92
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #10
  br label %573

573:                                              ; preds = %572, %91, %79
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %9) #10
  br label %574

574:                                              ; preds = %573, %75
  call void @llvm.lifetime.end.p0(i64 376, ptr %9) #10
  call void @_ZN14McPATComponentD2Ev(ptr noundef nonnull align 8 dereferenceable(1352) %28) #10
  br label %575

575:                                              ; preds = %574
  %576 = load ptr, ptr %10, align 8
  %577 = load i32, ptr %11, align 4
  %578 = insertvalue { ptr, i32 } poison, ptr %576, 0
  %579 = insertvalue { ptr, i32 } %578, i32 %577, 1
  resume { ptr, i32 } %579

580:                                              ; preds = %146
  unreachable
}

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #6 align 2

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #0

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

; Function Attrs: mustprogress uwtable
declare void @_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(112)) #6 align 2

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

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

declare void @_ZN10UndiffCoreC1EP7XMLNodeP14InputParameterRK14CoreParametersb(ptr noundef nonnull align 8 dereferenceable(2258), ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(480), i1 noundef zeroext) unnamed_addr #0

declare void @_ZN8PipelineC1EP7XMLNodePK14InputParameterRK14CoreParameters9Device_tybb(ptr noundef nonnull align 8 dereferenceable(10448), ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(480), i32 noundef, i1 noundef zeroext, i1 noundef zeroext) unnamed_addr #0

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

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

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

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

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

declare void @_ZN5EXECUC1EP7XMLNodeP14InputParameterdRK14CoreParametersRK14CoreStatisticsb(ptr, ptr, ptr, double, ptr, ptr, i1)

declare void @_ZN9RENAMINGUC1EP7XMLNodeP14InputParameterRK14CoreParametersRK14CoreStatisticsb(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 = { nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { mustprogress nounwind 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 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 = { nounwind willreturn memory(read) }
attributes #12 = { builtin allocsize(0) }
attributes #13 = { 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 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"vtable pointer", !8, i64 0}
!13 = !{!14, !6, i64 1352}
!14 = !{!"_ZTS4Core", !15, 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, !10, i64 1416, !21, i64 1424, !18, i64 1792, !18, i64 1800, !18, i64 1808, !34, i64 1816, !38, i64 2296}
!15 = !{!"_ZTS14McPATComponent", !16, i64 8, !6, i64 288, !21, i64 296, !24, i64 664, !18, i64 696, !27, i64 704, !31, i64 728, !32, i64 776, !32, i64 944, !19, i64 1112, !19, i64 1232}
!16 = !{!"_ZTS9Component", !17, i64 0, !19, i64 24, !19, i64 144, !18, i64 264, !18, i64 272}
!17 = !{!"_ZTS4Area", !18, i64 0, !18, i64 8, !18, i64 16}
!18 = !{!"double", !7, i64 0}
!19 = !{!"_ZTS8powerDef", !20, i64 0, !20, i64 40, !20, i64 80}
!20 = !{!"_ZTS15powerComponents", !18, i64 0, !18, i64 8, !18, i64 16, !18, i64 24, !18, i64 32}
!21 = !{!"_ZTS14InputParameter", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !22, i64 20, !10, i64 24, !10, i64 28, !10, i64 32, !10, i64 36, !10, i64 40, !10, i64 44, !18, i64 48, !18, i64 56, !10, i64 64, !10, i64 68, !10, i64 72, !10, i64 76, !10, i64 80, !22, i64 84, !22, i64 85, !22, i64 86, !22, i64 87, !22, 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, !23, i64 152, !10, i64 156, !22, i64 160, !10, i64 164, !10, i64 168, !10, i64 172, !10, i64 176, !10, i64 180, !10, i64 184, !10, i64 188, !22, 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, !22, i64 300, !10, i64 304, !10, i64 308, !10, i64 312, !22, i64 316, !22, i64 317, !10, i64 320, !10, i64 324, !22, i64 328, !18, i64 336, !18, i64 344, !22, i64 352, !10, i64 356, !10, i64 360, !22, i64 364}
!22 = !{!"bool", !7, i64 0}
!23 = !{!"_ZTS9Wire_type", !7, i64 0}
!24 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !25, i64 0, !26, i64 8, !7, i64 16}
!25 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!26 = !{!"long", !7, i64 0}
!27 = !{!"_ZTSSt6vectorIP14McPATComponentSaIS1_EE", !28, i64 0}
!28 = !{!"_ZTSSt12_Vector_baseIP14McPATComponentSaIS1_EE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseIP14McPATComponentSaIS1_EE12_Vector_implE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseIP14McPATComponentSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!31 = !{!"_ZTS11McPATOutput", !18, i64 0, !18, i64 8, !18, i64 16, !18, i64 24, !18, i64 32, !18, i64 40}
!32 = !{!"_ZTS8statsDef", !33, i64 0, !33, i64 24, !33, i64 48, !33, i64 72, !33, i64 96, !33, i64 120, !33, i64 144}
!33 = !{!"_ZTS15statsComponents", !18, i64 0, !18, i64 8, !18, i64 16}
!34 = !{!"_ZTS14CoreParameters", !22, i64 0, !22, i64 1, !22, i64 2, !35, i64 4, !36, i64 8, !37, i64 12, !18, 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, !18, i64 152, !10, i64 160, !10, i64 164, !10, i64 168, !10, i64 172, !22, i64 176, !22, i64 177, !7, i64 184, !10, i64 216, !10, i64 220, !10, i64 224, !10, i64 228, !10, i64 232, !10, i64 236, !10, i64 240, !18, i64 248, !18, 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, !23, i64 424, !23, i64 428, !10, i64 432, !18, i64 440, !18, i64 448, !10, i64 456, !18, i64 464, !18, i64 472}
!35 = !{!"_ZTS9Core_type", !7, i64 0}
!36 = !{!"_ZTS13Renaming_type", !7, i64 0}
!37 = !{!"_ZTS14Scheduler_type", !7, i64 0}
!38 = !{!"_ZTS14CoreStatistics", !18, i64 0, !18, i64 8, !18, i64 16, !18, i64 24, !18, i64 32, !18, i64 40, !18, i64 48, !18, i64 56, !18, i64 64, !18, i64 72, !18, i64 80, !18, i64 88, !18, i64 96, !18, i64 104, !18, i64 112, !18, i64 120, !18, i64 128, !18, i64 136, !18, i64 144, !18, i64 152, !18, i64 160, !18, i64 168, !18, i64 176, !18, i64 184, !18, i64 192, !18, i64 200, !18, i64 208, !18, i64 216, !18, i64 224, !18, i64 232, !18, i64 240, !18, i64 248, !18, i64 256, !18, i64 264, !18, i64 272, !18, i64 280, !18, i64 288, !18, i64 296, !18, i64 304, !18, i64 312, !18, i64 320, !18, i64 328, !18, i64 336, !18, i64 344, !18, i64 352, !18, i64 360, !18, i64 368, !18, i64 376, !18, i64 384}
!39 = !{!14, !6, i64 1360}
!40 = !{!14, !6, i64 1368}
!41 = !{!14, !6, i64 1376}
!42 = !{!14, !6, i64 1384}
!43 = !{!14, !6, i64 1392}
!44 = !{!14, !6, i64 1400}
!45 = !{!14, !6, i64 1408}
!46 = !{!14, !10, i64 1416}
!47 = !{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, !48, 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, !49, i64 56, i64 8, !49, 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, !48, i64 85, i64 1, !48, i64 86, i64 1, !48, i64 87, i64 1, !48, i64 88, i64 1, !48, 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, !50, i64 156, i64 4, !9, i64 160, i64 1, !48, 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, !48, 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, !48, i64 304, i64 4, !9, i64 308, i64 4, !9, i64 312, i64 4, !9, i64 316, i64 1, !48, i64 317, i64 1, !48, i64 320, i64 4, !9, i64 324, i64 4, !9, i64 328, i64 1, !48, i64 336, i64 8, !49, i64 344, i64 8, !49, i64 352, i64 1, !48, i64 356, i64 4, !9, i64 360, i64 4, !9, i64 364, i64 1, !48}
!48 = !{!22, !22, i64 0}
!49 = !{!18, !18, i64 0}
!50 = !{!23, !23, i64 0}
!51 = !{!15, !6, i64 288}
!52 = distinct !{!52, !53}
!53 = !{!"llvm.loop.mustprogress"}
!54 = !{!14, !18, i64 1832}
!55 = !{!15, !18, i64 696}
!56 = !{!57, !18, i64 2648}
!57 = !{!"_ZTS10LoadStoreU", !15, i64 0, !6, i64 1352, !6, i64 1360, !6, i64 1368, !21, i64 1376, !34, i64 1744, !38, i64 2224, !58, i64 2616, !18, i64 2624, !18, i64 2632, !18, i64 2640, !18, i64 2648, !22, i64 2656}
!58 = !{!"_ZTS12Cache_policy", !7, i64 0}
!59 = !{!14, !35, i64 1820}
!60 = !{!14, !10, i64 1952}
!61 = !{!62, !22, i64 2664}
!62 = !{!"_ZTS9RENAMINGU", !15, 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, !21, i64 1424, !34, i64 1792, !38, i64 2272, !22, i64 2664}
!63 = !{i8 0, i8 2}
!64 = !{}
!65 = !{!66, !22, i64 2724}
!66 = !{!"_ZTS10InstFetchU", !15, i64 0, !6, i64 1352, !6, i64 1360, !6, i64 1368, !6, i64 1376, !6, i64 1384, !6, i64 1392, !6, i64 1400, !21, i64 1408, !34, i64 1776, !38, i64 2256, !67, i64 2648, !68, i64 2680, !18, i64 2696, !18, i64 2704, !18, i64 2712, !58, i64 2720, !22, i64 2724}
!67 = !{!"_ZTS19InstFetchParameters", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24}
!68 = !{!"_ZTS19InstFetchStatistics", !18, i64 0, !18, i64 8}
!69 = !{!57, !22, i64 2656}
!70 = !{!71, !22, i64 2712}
!71 = !{!"_ZTS5EXECU", !15, 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, !21, i64 1440, !18, i64 1808, !18, i64 1816, !18, i64 1824, !18, i64 1832, !34, i64 1840, !38, i64 2320, !22, i64 2712}
!72 = !{!73, !22, i64 2760}
!73 = !{!"_ZTS7MemManU", !15, i64 0, !6, i64 1352, !6, i64 1360, !21, i64 1368, !34, i64 1736, !38, i64 2216, !74, i64 2608, !75, i64 2672, !18, i64 2736, !18, i64 2744, !18, i64 2752, !22, i64 2760}
!74 = !{!"_ZTS22MemoryManagementParams", !10, i64 0, !18, i64 8, !18, i64 16, !10, i64 24, !10, i64 28, !10, i64 32, !18, i64 40, !18, i64 48, !10, i64 56, !10, i64 60}
!75 = !{!"_ZTS21MemoryManagementStats", !18, i64 0, !18, i64 8, !18, i64 16, !18, i64 24, !18, i64 32, !18, i64 40, !18, i64 48, !18, i64 56}
!76 = !{!77, !22, i64 2257}
!77 = !{!"_ZTS10UndiffCore", !15, i64 0, !21, i64 1352, !34, i64 1720, !18, i64 2200, !18, i64 2208, !18, i64 2216, !35, i64 2224, !22, i64 2228, !22, i64 2229, !18, i64 2232, !18, i64 2240, !18, i64 2248, !22, i64 2256, !22, i64 2257}


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

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

@.str.1 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [10 x i8], align 1
@_ZTV4Core = external dso_local unnamed_addr constant { [6 x ptr] }, align 8
@.str.87 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [11 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

declare i32 @__gxx_personality_v0(...)

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

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

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

declare void @_ZN14McPATComponent24warnMissingComponentTypeEPKc(ptr noundef nonnull align 8 dereferenceable(1352), ptr noundef) local_unnamed_addr #0

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

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

declare void @_ZN9CacheUnitC1EP7XMLNodeP14InputParameter(ptr noundef nonnull align 8 dereferenceable(1784), ptr noundef, ptr noundef) unnamed_addr #0

; 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 #6 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 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 @_ZN4CoreC2EP7XMLNodeiP14InputParameter(ptr noundef nonnull align 8 dereferenceable(2688) %0, ptr noundef %1, i32 noundef %2, ptr nocapture noundef readonly %3) unnamed_addr #6 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca i32, align 4
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  tail call void @_ZN14McPATComponentC2EP7XMLNode(ptr noundef nonnull align 8 dereferenceable(1352) %0, ptr noundef %1)
  store ptr getelementptr inbounds inrange(-16, 32) (i8, ptr @_ZTV4Core, i64 16), ptr %0, align 8, !tbaa !5
  %17 = getelementptr inbounds i8, ptr %0, i64 1352
  %18 = getelementptr inbounds i8, ptr %0, i64 1360
  %19 = getelementptr inbounds i8, ptr %0, i64 1368
  %20 = getelementptr inbounds i8, ptr %0, i64 1376
  %21 = getelementptr inbounds i8, ptr %0, i64 1384
  %22 = getelementptr inbounds i8, ptr %0, i64 1392
  %23 = getelementptr inbounds i8, ptr %0, i64 1400
  %24 = getelementptr inbounds i8, ptr %0, i64 1408
  %25 = getelementptr inbounds i8, ptr %0, i64 1416
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %17, i8 0, i64 64, i1 false)
  store i32 %2, ptr %25, align 8, !tbaa !8
  %26 = getelementptr inbounds i8, ptr %0, i64 1424
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(368) %26, ptr noundef nonnull align 8 dereferenceable(368) %3, i64 368, i1 false), !tbaa.struct !37
  call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %5) #11
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %5)
          to label %27 unwind label %51

27:                                               ; preds = %4
  %28 = load i32, ptr %25, align 8, !tbaa !8
  %29 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %5, i32 noundef %28)
          to label %30 unwind label %53

30:                                               ; preds = %27
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #11
  invoke void @_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr noundef nonnull align 8 dereferenceable(112) %5)
          to label %31 unwind label %55

31:                                               ; preds = %30
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %6, ptr noundef nonnull @.str.87, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %32 unwind label %57

32:                                               ; preds = %31
  %33 = getelementptr inbounds i8, ptr %0, i64 664
  %34 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(32) %6) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #11
  %35 = getelementptr inbounds i8, ptr %0, i64 288
  %36 = getelementptr inbounds i8, ptr %0, i64 704
  br label %37

37:                                               ; preds = %.critedge, %32
  %storemerge = phi i32 [ 0, %32 ], [ %83, %.critedge ]
  store i32 %storemerge, ptr %8, align 4, !tbaa !38
  %38 = load ptr, ptr %35, align 8, !tbaa !42
  %39 = invoke noundef i32 @_ZNK7XMLNode10nChildNodeEPKc(ptr noundef nonnull align 8 dereferenceable(8) %38, ptr noundef nonnull @.str.1)
          to label %40 unwind label %.loopexit

40:                                               ; preds = %37
  %41 = icmp slt i32 %storemerge, %39
  br i1 %41, label %42, label %84

42:                                               ; preds = %40
  %43 = load ptr, ptr %35, align 8, !tbaa !42
  %44 = invoke noundef ptr @_ZNK7XMLNode15getChildNodePtrEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull @.str.1, ptr noundef nonnull %8)
          to label %45 unwind label %.loopexit

45:                                               ; preds = %42
  %46 = invoke noundef ptr @_ZNK7XMLNode12getAttributeEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull @.str.2, ptr noundef null)
          to label %47 unwind label %60

47:                                               ; preds = %45
  %.not30 = icmp eq ptr %46, null
  br i1 %.not30, label %48, label %62

48:                                               ; preds = %47
  %49 = invoke noundef ptr @_ZNK7XMLNode12getAttributeEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull @.str.3, ptr noundef null)
          to label %50 unwind label %60

50:                                               ; preds = %48
  invoke void @_ZN14McPATComponent24warnMissingComponentTypeEPKc(ptr noundef nonnull align 8 dereferenceable(1352) %0, ptr noundef %49)
          to label %.critedge unwind label %60

51:                                               ; preds = %4
  %52 = landingpad { ptr, i32 }
          cleanup
  br label %282

53:                                               ; preds = %27
  %54 = landingpad { ptr, i32 }
          cleanup
  br label %281

55:                                               ; preds = %30
  %56 = landingpad { ptr, i32 }
          cleanup
  br label %59

57:                                               ; preds = %31
  %58 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #11
  br label %59

59:                                               ; preds = %57, %55
  %.pn = phi { ptr, i32 } [ %58, %57 ], [ %56, %55 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #11
  br label %281

.loopexit:                                        ; preds = %37, %42
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %280

.loopexit.split-lp:                               ; preds = %84, %85, %95, %100, %105, %113, %122, %152
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %280

60:                                               ; preds = %50, %48, %45
  %61 = landingpad { ptr, i32 }
          cleanup
  br label %280

62:                                               ; preds = %47
  %63 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %46, ptr noundef nonnull dereferenceable(1) @.str.4) #12
  %64 = icmp eq i32 %63, 0
  br i1 %64, label %65, label %.critedge

65:                                               ; preds = %62
  %66 = invoke noundef ptr @_ZNK7XMLNode12getAttributeEPKcPi(ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull @.str.3, ptr noundef null)
          to label %67 unwind label %68

67:                                               ; preds = %65
  %.not31.not = icmp eq ptr %66, null
  br i1 %.not31.not, label %.critedge, label %70

68:                                               ; preds = %73, %65
  %69 = landingpad { ptr, i32 }
          cleanup
  br label %280

70:                                               ; preds = %67
  %71 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %66, ptr noundef nonnull dereferenceable(1) @.str.88) #12
  %72 = icmp eq i32 %71, 0
  br i1 %72, label %73, label %.critedge

73:                                               ; preds = %70
  %74 = invoke noalias noundef nonnull dereferenceable(1784) ptr @_Znwm(i64 noundef 1784) #13
          to label %75 unwind label %68

75:                                               ; preds = %73
  invoke void @_ZN9CacheUnitC1EP7XMLNodeP14InputParameter(ptr noundef nonnull align 8 dereferenceable(1784) %74, ptr noundef nonnull %44, ptr noundef nonnull %26)
          to label %76 unwind label %78

76:                                               ; preds = %75
  store ptr %74, ptr %24, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #11
  store ptr %74, ptr %9, align 8, !tbaa !44
  invoke void @_ZNSt6vectorIP14McPATComponentSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %36, ptr noundef nonnull align 8 dereferenceable(8) %9)
          to label %77 unwind label %80

77:                                               ; preds = %76
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #11
  br label %.critedge

78:                                               ; preds = %75
  %79 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %74, i64 noundef 1784) #14
  br label %280

80:                                               ; preds = %76
  %81 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #11
  br label %280

.critedge:                                        ; preds = %70, %77, %67, %50, %62
  %82 = load i32, ptr %8, align 4, !tbaa !38
  %83 = add nsw i32 %82, 1
  br label %37, !llvm.loop !45

84:                                               ; preds = %40
  invoke void @_ZN4Core14set_core_paramEv(ptr noundef nonnull align 8 dereferenceable(2688) %0)
          to label %85 unwind label %.loopexit.split-lp

85:                                               ; preds = %84
  %86 = getelementptr inbounds i8, ptr %0, i64 1816
  %87 = getelementptr inbounds i8, ptr %0, i64 1832
  %88 = load double, ptr %87, align 8, !tbaa !47
  %89 = getelementptr inbounds i8, ptr %0, i64 696
  store double %88, ptr %89, align 8, !tbaa !48
  %90 = invoke noalias noundef nonnull dereferenceable(2728) ptr @_Znwm(i64 noundef 2728) #13
          to label %91 unwind label %.loopexit.split-lp

91:                                               ; preds = %85
  %92 = load ptr, ptr %35, align 8, !tbaa !42
  %93 = getelementptr inbounds i8, ptr %0, i64 2296
  invoke void @_ZN10InstFetchUC1EP7XMLNodeP14InputParameterRK14CoreParametersRK14CoreStatisticsb(ptr noundef nonnull align 8 dereferenceable(2725) %90, ptr noundef %92, ptr noundef nonnull %26, ptr noundef nonnull align 8 dereferenceable(480) %86, ptr noundef nonnull align 8 dereferenceable(392) %93, i1 noundef zeroext true)
          to label %94 unwind label %128

94:                                               ; preds = %91
  store ptr %90, ptr %17, align 8, !tbaa !49
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #11
  store ptr %90, ptr %10, align 8, !tbaa !44
  invoke void @_ZNSt6vectorIP14McPATComponentSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %36, ptr noundef nonnull align 8 dereferenceable(8) %10)
          to label %95 unwind label %130

95:                                               ; preds = %94
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #11
  %96 = invoke noalias noundef nonnull dereferenceable(2664) ptr @_Znwm(i64 noundef 2664) #13
          to label %97 unwind label %.loopexit.split-lp

97:                                               ; preds = %95
  %98 = load ptr, ptr %35, align 8, !tbaa !42
  invoke void @_ZN10LoadStoreUC1EP7XMLNodeP14InputParameterRK14CoreParametersRK14CoreStatisticsb(ptr noundef nonnull align 8 dereferenceable(2657) %96, ptr noundef %98, ptr noundef nonnull %26, ptr noundef nonnull align 8 dereferenceable(480) %86, ptr noundef nonnull align 8 dereferenceable(392) %93, i1 noundef zeroext true)
          to label %99 unwind label %132

99:                                               ; preds = %97
  store ptr %96, ptr %18, align 8, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #11
  store ptr %96, ptr %11, align 8, !tbaa !44
  invoke void @_ZNSt6vectorIP14McPATComponentSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %36, ptr noundef nonnull align 8 dereferenceable(8) %11)
          to label %100 unwind label %134

100:                                              ; preds = %99
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #11
  %101 = invoke noalias noundef nonnull dereferenceable(2768) ptr @_Znwm(i64 noundef 2768) #13
          to label %102 unwind label %.loopexit.split-lp

102:                                              ; preds = %100
  %103 = load ptr, ptr %35, align 8, !tbaa !42
  invoke void @_ZN7MemManUC1EP7XMLNodeP14InputParameterRK14CoreParametersRK14CoreStatisticsb(ptr noundef nonnull align 8 dereferenceable(2761) %101, ptr noundef %103, ptr noundef nonnull %26, ptr noundef nonnull align 8 dereferenceable(480) %86, ptr noundef nonnull align 8 dereferenceable(392) %93, i1 noundef zeroext true)
          to label %104 unwind label %136

104:                                              ; preds = %102
  store ptr %101, ptr %19, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #11
  store ptr %101, ptr %12, align 8, !tbaa !44
  invoke void @_ZNSt6vectorIP14McPATComponentSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %36, ptr noundef nonnull align 8 dereferenceable(8) %12)
          to label %105 unwind label %138

105:                                              ; preds = %104
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #11
  %106 = invoke noalias noundef nonnull dereferenceable(2720) ptr @_Znwm(i64 noundef 2720) #13
          to label %107 unwind label %.loopexit.split-lp

107:                                              ; preds = %105
  %108 = load ptr, ptr %35, align 8, !tbaa !42
  %109 = load ptr, ptr %18, align 8, !tbaa !50
  %110 = getelementptr inbounds i8, ptr %109, i64 2648
  %111 = load double, ptr %110, align 8, !tbaa !52
  invoke void @_ZN5EXECUC1EP7XMLNodeP14InputParameterdRK14CoreParametersRK14CoreStatisticsb(ptr noundef nonnull align 8 dereferenceable(2713) %106, ptr noundef %108, ptr noundef nonnull %26, double noundef %111, ptr noundef nonnull align 8 dereferenceable(480) %86, ptr noundef nonnull align 8 dereferenceable(392) %93, i1 noundef zeroext true)
          to label %112 unwind label %140

112:                                              ; preds = %107
  store ptr %106, ptr %20, align 8, !tbaa !55
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #11
  store ptr %106, ptr %13, align 8, !tbaa !44
  invoke void @_ZNSt6vectorIP14McPATComponentSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %36, ptr noundef nonnull align 8 dereferenceable(8) %13)
          to label %113 unwind label %142

113:                                              ; preds = %112
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #11
  %114 = invoke noalias noundef nonnull dereferenceable(2264) ptr @_Znwm(i64 noundef 2264) #13
          to label %115 unwind label %.loopexit.split-lp

115:                                              ; preds = %113
  %116 = load ptr, ptr %35, align 8, !tbaa !42
  invoke void @_ZN10UndiffCoreC1EP7XMLNodeP14InputParameterRK14CoreParametersb(ptr noundef nonnull align 8 dereferenceable(2258) %114, ptr noundef %116, ptr noundef nonnull %26, ptr noundef nonnull align 8 dereferenceable(480) %86, i1 noundef zeroext true)
          to label %117 unwind label %144

117:                                              ; preds = %115
  store ptr %114, ptr %23, align 8, !tbaa !56
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #11
  store ptr %114, ptr %14, align 8, !tbaa !44
  invoke void @_ZNSt6vectorIP14McPATComponentSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %36, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %118 unwind label %146

118:                                              ; preds = %117
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #11
  %119 = getelementptr inbounds i8, ptr %0, i64 1820
  %120 = load i32, ptr %119, align 4, !tbaa !57
  %121 = icmp eq i32 %120, 0
  br i1 %121, label %122, label %152

122:                                              ; preds = %118
  %123 = invoke noalias noundef nonnull dereferenceable(2672) ptr @_Znwm(i64 noundef 2672) #13
          to label %124 unwind label %.loopexit.split-lp

124:                                              ; preds = %122
  %125 = load ptr, ptr %35, align 8, !tbaa !42
  invoke void @_ZN9RENAMINGUC1EP7XMLNodeP14InputParameterRK14CoreParametersRK14CoreStatisticsb(ptr noundef nonnull align 8 dereferenceable(2665) %123, ptr noundef %125, ptr noundef nonnull %26, ptr noundef nonnull align 8 dereferenceable(480) %86, ptr noundef nonnull align 8 dereferenceable(392) %93, i1 noundef zeroext true)
          to label %126 unwind label %148

126:                                              ; preds = %124
  store ptr %123, ptr %21, align 8, !tbaa !58
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #11
  store ptr %123, ptr %15, align 8, !tbaa !44
  invoke void @_ZNSt6vectorIP14McPATComponentSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %36, ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %127 unwind label %150

127:                                              ; preds = %126
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #11
  br label %152

128:                                              ; preds = %91
  %129 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %90, i64 noundef 2728) #14
  br label %280

130:                                              ; preds = %94
  %131 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #11
  br label %280

132:                                              ; preds = %97
  %133 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %96, i64 noundef 2664) #14
  br label %280

134:                                              ; preds = %99
  %135 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #11
  br label %280

136:                                              ; preds = %102
  %137 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %101, i64 noundef 2768) #14
  br label %280

138:                                              ; preds = %104
  %139 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #11
  br label %280

140:                                              ; preds = %107
  %141 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %106, i64 noundef 2720) #14
  br label %280

142:                                              ; preds = %112
  %143 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #11
  br label %280

144:                                              ; preds = %115
  %145 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %114, i64 noundef 2264) #14
  br label %280

146:                                              ; preds = %117
  %147 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #11
  br label %280

148:                                              ; preds = %124
  %149 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %123, i64 noundef 2672) #14
  br label %280

150:                                              ; preds = %126
  %151 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #11
  br label %280

152:                                              ; preds = %127, %118
  %153 = invoke noalias noundef nonnull dereferenceable(10448) ptr @_Znwm(i64 noundef 10448) #13
          to label %154 unwind label %.loopexit.split-lp

154:                                              ; preds = %152
  %155 = load ptr, ptr %35, align 8, !tbaa !42
  invoke void @_ZN8PipelineC1EP7XMLNodePK14InputParameterRK14CoreParameters9Device_tybb(ptr noundef nonnull align 8 dereferenceable(10448) %153, ptr noundef %155, ptr noundef nonnull %26, ptr noundef nonnull align 8 dereferenceable(480) %86, i32 noundef 0, i1 noundef zeroext true, i1 noundef zeroext true)
          to label %156 unwind label %177

156:                                              ; preds = %154
  store ptr %153, ptr %22, align 8, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #11
  store ptr %153, ptr %16, align 8, !tbaa !44
  invoke void @_ZNSt6vectorIP14McPATComponentSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %36, ptr noundef nonnull align 8 dereferenceable(8) %16)
          to label %157 unwind label %179

157:                                              ; preds = %156
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #11
  %158 = load i32, ptr %119, align 4, !tbaa !57
  %159 = icmp eq i32 %158, 0
  %160 = load ptr, ptr %22, align 8, !tbaa !59
  %161 = getelementptr inbounds i8, ptr %160, i64 8
  %162 = call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %161)
  %163 = getelementptr inbounds i8, ptr %0, i64 1952
  %164 = load i32, ptr %163, align 8, !tbaa !60
  %165 = sitofp i32 %164 to double
  %166 = fmul double %162, %165
  br i1 %159, label %167, label %181

167:                                              ; preds = %157
  %168 = fdiv double %166, 5.000000e+00
  %169 = load ptr, ptr %21, align 8, !tbaa !58
  %170 = getelementptr inbounds i8, ptr %169, i64 2664
  %171 = load i8, ptr %170, align 8, !tbaa !61, !range !63, !noundef !64
  %172 = trunc nuw i8 %171 to i1
  br i1 %172, label %173, label %183

173:                                              ; preds = %167
  %174 = getelementptr inbounds i8, ptr %169, i64 8
  %175 = call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %174)
  %176 = fadd double %168, %175
  call void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %174, double noundef %176)
  br label %183

177:                                              ; preds = %154
  %178 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %153, i64 noundef 10448) #14
  br label %280

179:                                              ; preds = %156
  %180 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #11
  br label %280

181:                                              ; preds = %157
  %182 = fmul double %166, 2.500000e-01
  br label %183

183:                                              ; preds = %167, %173, %181
  %.0 = phi double [ %168, %173 ], [ %168, %167 ], [ %182, %181 ]
  %184 = load ptr, ptr %17, align 8, !tbaa !49
  %185 = getelementptr inbounds i8, ptr %184, i64 2724
  %186 = load i8, ptr %185, align 4, !tbaa !65, !range !63, !noundef !64
  %187 = trunc nuw i8 %186 to i1
  br i1 %187, label %188, label %198

188:                                              ; preds = %183
  %189 = getelementptr inbounds i8, ptr %184, i64 8
  %190 = call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %189)
  %191 = fadd double %.0, %190
  call void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %189, double noundef %191)
  %192 = getelementptr inbounds i8, ptr %0, i64 8
  %193 = call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %192)
  %194 = load ptr, ptr %17, align 8, !tbaa !49
  %195 = getelementptr inbounds i8, ptr %194, i64 8
  %196 = call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %195)
  %197 = fadd double %193, %196
  call void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %192, double noundef %197)
  br label %198

198:                                              ; preds = %188, %183
  %199 = load ptr, ptr %18, align 8, !tbaa !50
  %200 = getelementptr inbounds i8, ptr %199, i64 2656
  %201 = load i8, ptr %200, align 8, !tbaa !69, !range !63, !noundef !64
  %202 = trunc nuw i8 %201 to i1
  br i1 %202, label %203, label %213

203:                                              ; preds = %198
  %204 = getelementptr inbounds i8, ptr %199, i64 8
  %205 = call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %204)
  %206 = fadd double %.0, %205
  call void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %204, double noundef %206)
  %207 = getelementptr inbounds i8, ptr %0, i64 8
  %208 = call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %207)
  %209 = load ptr, ptr %18, align 8, !tbaa !50
  %210 = getelementptr inbounds i8, ptr %209, i64 8
  %211 = call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %210)
  %212 = fadd double %208, %211
  call void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %207, double noundef %212)
  br label %213

213:                                              ; preds = %203, %198
  %214 = load ptr, ptr %20, align 8, !tbaa !55
  %215 = getelementptr inbounds i8, ptr %214, i64 2712
  %216 = load i8, ptr %215, align 8, !tbaa !70, !range !63, !noundef !64
  %217 = trunc nuw i8 %216 to i1
  br i1 %217, label %218, label %228

218:                                              ; preds = %213
  %219 = getelementptr inbounds i8, ptr %214, i64 8
  %220 = call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %219)
  %221 = fadd double %.0, %220
  call void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %219, double noundef %221)
  %222 = getelementptr inbounds i8, ptr %0, i64 8
  %223 = call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %222)
  %224 = load ptr, ptr %20, align 8, !tbaa !55
  %225 = getelementptr inbounds i8, ptr %224, i64 8
  %226 = call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %225)
  %227 = fadd double %223, %226
  call void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %222, double noundef %227)
  br label %228

228:                                              ; preds = %218, %213
  %229 = load ptr, ptr %19, align 8, !tbaa !51
  %230 = getelementptr inbounds i8, ptr %229, i64 2760
  %231 = load i8, ptr %230, align 8, !tbaa !72, !range !63, !noundef !64
  %232 = trunc nuw i8 %231 to i1
  br i1 %232, label %233, label %243

233:                                              ; preds = %228
  %234 = getelementptr inbounds i8, ptr %229, i64 8
  %235 = call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %234)
  %236 = fadd double %.0, %235
  call void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %234, double noundef %236)
  %237 = getelementptr inbounds i8, ptr %0, i64 8
  %238 = call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %237)
  %239 = load ptr, ptr %19, align 8, !tbaa !51
  %240 = getelementptr inbounds i8, ptr %239, i64 8
  %241 = call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %240)
  %242 = fadd double %238, %241
  call void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %237, double noundef %242)
  br label %243

243:                                              ; preds = %233, %228
  %244 = load i32, ptr %119, align 4, !tbaa !57
  %245 = icmp eq i32 %244, 0
  br i1 %245, label %246, label %258

246:                                              ; preds = %243
  %247 = load ptr, ptr %21, align 8, !tbaa !58
  %248 = getelementptr inbounds i8, ptr %247, i64 2664
  %249 = load i8, ptr %248, align 8, !tbaa !61, !range !63, !noundef !64
  %250 = trunc nuw i8 %249 to i1
  br i1 %250, label %251, label %258

251:                                              ; preds = %246
  %252 = getelementptr inbounds i8, ptr %0, i64 8
  %253 = call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %252)
  %254 = load ptr, ptr %21, align 8, !tbaa !58
  %255 = getelementptr inbounds i8, ptr %254, i64 8
  %256 = call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %255)
  %257 = fadd double %253, %256
  call void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %252, double noundef %257)
  br label %258

258:                                              ; preds = %246, %251, %243
  %259 = load ptr, ptr %23, align 8, !tbaa !56
  %260 = getelementptr inbounds i8, ptr %259, i64 2257
  %261 = load i8, ptr %260, align 1, !tbaa !76, !range !63, !noundef !64
  %262 = trunc nuw i8 %261 to i1
  br i1 %262, label %263, label %270

263:                                              ; preds = %258
  %264 = getelementptr inbounds i8, ptr %0, i64 8
  %265 = call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %264)
  %266 = load ptr, ptr %23, align 8, !tbaa !56
  %267 = getelementptr inbounds i8, ptr %266, i64 8
  %268 = call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %267)
  %269 = fadd double %265, %268
  call void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %264, double noundef %269)
  br label %270

270:                                              ; preds = %263, %258
  %271 = load ptr, ptr %24, align 8, !tbaa !43
  %.not = icmp eq ptr %271, null
  br i1 %.not, label %279, label %272

272:                                              ; preds = %270
  %273 = getelementptr inbounds i8, ptr %0, i64 8
  %274 = call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %273)
  %275 = load ptr, ptr %24, align 8, !tbaa !43
  %276 = getelementptr inbounds i8, ptr %275, i64 8
  %277 = call noundef double @_ZNK4Area8get_areaEv(ptr noundef nonnull align 8 dereferenceable(24) %276)
  %278 = fadd double %274, %277
  call void @_ZN4Area8set_areaEd(ptr noundef nonnull align 8 dereferenceable(24) %273, double noundef %278)
  br label %279

279:                                              ; preds = %272, %270
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #11
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %5) #11
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %5) #11
  ret void

280:                                              ; preds = %.loopexit, %.loopexit.split-lp, %60, %80, %78, %68, %179, %177, %150, %148, %146, %144, %142, %140, %138, %136, %134, %132, %130, %128
  %.pn32.pn.pn = phi { ptr, i32 } [ %180, %179 ], [ %178, %177 ], [ %151, %150 ], [ %149, %148 ], [ %147, %146 ], [ %145, %144 ], [ %143, %142 ], [ %141, %140 ], [ %139, %138 ], [ %137, %136 ], [ %135, %134 ], [ %133, %132 ], [ %131, %130 ], [ %129, %128 ], [ %61, %60 ], [ %81, %80 ], [ %79, %78 ], [ %69, %68 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #11
  br label %281

281:                                              ; preds = %280, %59, %53
  %.pn32.pn.pn.pn = phi { ptr, i32 } [ %.pn32.pn.pn, %280 ], [ %.pn, %59 ], [ %54, %53 ]
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %5) #11
  br label %282

282:                                              ; preds = %281, %51
  %.pn32.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn32.pn.pn.pn, %281 ], [ %52, %51 ]
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %5) #11
  call void @_ZN14McPATComponentD2Ev(ptr noundef nonnull align 8 dereferenceable(1352) %0) #11
  resume { ptr, i32 } %.pn32.pn.pn.pn.pn
}

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #6 align 2

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #0

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

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

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

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

declare void @_ZN10UndiffCoreC1EP7XMLNodeP14InputParameterRK14CoreParametersb(ptr noundef nonnull align 8 dereferenceable(2258), ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(480), i1 noundef zeroext) unnamed_addr #0

declare void @_ZN8PipelineC1EP7XMLNodePK14InputParameterRK14CoreParameters9Device_tybb(ptr noundef nonnull align 8 dereferenceable(10448), ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(480), i32 noundef, i1 noundef zeroext, i1 noundef zeroext) unnamed_addr #0

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

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

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

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

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

declare void @_ZN5EXECUC1EP7XMLNodeP14InputParameterdRK14CoreParametersRK14CoreStatisticsb(ptr, ptr, ptr, double, ptr, ptr, i1) local_unnamed_addr

declare void @_ZN9RENAMINGUC1EP7XMLNodeP14InputParameterRK14CoreParametersRK14CoreStatisticsb(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 nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #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 uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { mustprogress nounwind 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 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 = { nounwind }
attributes #12 = { nounwind willreturn memory(read) }
attributes #13 = { builtin allocsize(0) }
attributes #14 = { builtin nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"vtable pointer", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = !{!9, !19, i64 1416}
!9 = !{!"_ZTS4Core", !10, i64 0, !17, i64 1352, !17, i64 1360, !17, i64 1368, !17, i64 1376, !17, i64 1384, !17, i64 1392, !17, i64 1400, !17, i64 1408, !19, i64 1416, !18, i64 1424, !13, i64 1792, !13, i64 1800, !13, i64 1808, !32, i64 1816, !36, i64 2296}
!10 = !{!"_ZTS14McPATComponent", !11, i64 8, !17, i64 288, !18, i64 296, !22, i64 664, !13, i64 696, !25, i64 704, !29, i64 728, !30, i64 776, !30, i64 944, !15, i64 1112, !15, i64 1232}
!11 = !{!"_ZTS9Component", !12, i64 0, !15, i64 24, !15, i64 144, !13, i64 264, !13, i64 272}
!12 = !{!"_ZTS4Area", !13, i64 0, !13, i64 8, !13, i64 16}
!13 = !{!"double", !14, i64 0}
!14 = !{!"omnipotent char", !7, i64 0}
!15 = !{!"_ZTS8powerDef", !16, i64 0, !16, i64 40, !16, i64 80}
!16 = !{!"_ZTS15powerComponents", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24, !13, i64 32}
!17 = !{!"any pointer", !14, i64 0}
!18 = !{!"_ZTS14InputParameter", !19, i64 0, !19, i64 4, !19, i64 8, !19, i64 12, !19, i64 16, !20, i64 20, !19, i64 24, !19, i64 28, !19, i64 32, !19, i64 36, !19, i64 40, !19, i64 44, !13, i64 48, !13, i64 56, !19, i64 64, !19, i64 68, !19, i64 72, !19, i64 76, !19, i64 80, !20, i64 84, !20, i64 85, !20, i64 86, !20, i64 87, !20, i64 88, !19, i64 92, !19, i64 96, !19, i64 100, !19, i64 104, !19, i64 108, !19, i64 112, !19, i64 116, !19, i64 120, !19, i64 124, !19, i64 128, !19, i64 132, !19, i64 136, !19, i64 140, !19, i64 144, !19, i64 148, !21, i64 152, !19, i64 156, !20, i64 160, !19, i64 164, !19, i64 168, !19, i64 172, !19, i64 176, !19, i64 180, !19, i64 184, !19, i64 188, !20, i64 192, !19, i64 196, !19, i64 200, !19, i64 204, !19, i64 208, !19, i64 212, !19, i64 216, !19, i64 220, !19, i64 224, !19, i64 228, !19, i64 232, !19, i64 236, !19, i64 240, !19, i64 244, !19, i64 248, !19, i64 252, !19, i64 256, !19, i64 260, !19, i64 264, !19, i64 268, !19, i64 272, !19, i64 276, !19, i64 280, !19, i64 284, !19, i64 288, !19, i64 292, !19, i64 296, !20, i64 300, !19, i64 304, !19, i64 308, !19, i64 312, !20, i64 316, !20, i64 317, !19, i64 320, !19, i64 324, !20, i64 328, !13, i64 336, !13, i64 344, !20, i64 352, !19, i64 356, !19, i64 360, !20, i64 364}
!19 = !{!"int", !14, i64 0}
!20 = !{!"bool", !14, i64 0}
!21 = !{!"_ZTS9Wire_type", !14, i64 0}
!22 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !23, i64 0, !24, i64 8, !14, i64 16}
!23 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !17, i64 0}
!24 = !{!"long", !14, i64 0}
!25 = !{!"_ZTSSt6vectorIP14McPATComponentSaIS1_EE", !26, i64 0}
!26 = !{!"_ZTSSt12_Vector_baseIP14McPATComponentSaIS1_EE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseIP14McPATComponentSaIS1_EE12_Vector_implE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseIP14McPATComponentSaIS1_EE17_Vector_impl_dataE", !17, i64 0, !17, i64 8, !17, i64 16}
!29 = !{!"_ZTS11McPATOutput", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24, !13, i64 32, !13, i64 40}
!30 = !{!"_ZTS8statsDef", !31, i64 0, !31, i64 24, !31, i64 48, !31, i64 72, !31, i64 96, !31, i64 120, !31, i64 144}
!31 = !{!"_ZTS15statsComponents", !13, i64 0, !13, i64 8, !13, i64 16}
!32 = !{!"_ZTS14CoreParameters", !20, i64 0, !20, i64 1, !20, i64 2, !33, i64 4, !34, i64 8, !35, i64 12, !13, i64 16, !19, i64 24, !19, i64 28, !19, i64 32, !19, i64 36, !19, i64 40, !19, i64 44, !19, i64 48, !19, i64 52, !19, i64 56, !19, i64 60, !19, i64 64, !19, i64 68, !19, i64 72, !19, i64 76, !19, i64 80, !19, i64 84, !19, i64 88, !19, i64 92, !19, i64 96, !19, i64 100, !19, i64 104, !19, i64 108, !19, i64 112, !19, i64 116, !19, i64 120, !19, i64 124, !19, i64 128, !19, i64 132, !19, i64 136, !19, i64 140, !19, i64 144, !19, i64 148, !13, i64 152, !19, i64 160, !19, i64 164, !19, i64 168, !19, i64 172, !20, i64 176, !20, i64 177, !14, i64 184, !19, i64 216, !19, i64 220, !19, i64 224, !19, i64 228, !19, i64 232, !19, i64 236, !19, i64 240, !13, i64 248, !13, i64 256, !19, i64 264, !19, i64 268, !19, i64 272, !19, i64 276, !19, i64 280, !19, i64 284, !19, i64 288, !19, i64 292, !19, i64 296, !19, i64 300, !19, i64 304, !19, i64 308, !19, i64 312, !19, i64 316, !19, i64 320, !19, i64 324, !19, i64 328, !19, i64 332, !19, i64 336, !19, i64 340, !19, i64 344, !19, i64 348, !19, i64 352, !19, i64 356, !19, i64 360, !19, i64 364, !19, i64 368, !19, i64 372, !19, i64 376, !19, i64 380, !19, i64 384, !19, i64 388, !19, i64 392, !19, i64 396, !19, i64 400, !19, i64 404, !19, i64 408, !19, i64 412, !19, i64 416, !19, i64 420, !21, i64 424, !21, i64 428, !19, i64 432, !13, i64 440, !13, i64 448, !19, i64 456, !13, i64 464, !13, i64 472}
!33 = !{!"_ZTS9Core_type", !14, i64 0}
!34 = !{!"_ZTS13Renaming_type", !14, i64 0}
!35 = !{!"_ZTS14Scheduler_type", !14, i64 0}
!36 = !{!"_ZTS14CoreStatistics", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24, !13, i64 32, !13, i64 40, !13, i64 48, !13, i64 56, !13, i64 64, !13, i64 72, !13, i64 80, !13, i64 88, !13, i64 96, !13, i64 104, !13, i64 112, !13, i64 120, !13, i64 128, !13, i64 136, !13, i64 144, !13, i64 152, !13, i64 160, !13, i64 168, !13, i64 176, !13, i64 184, !13, i64 192, !13, i64 200, !13, i64 208, !13, i64 216, !13, i64 224, !13, i64 232, !13, i64 240, !13, i64 248, !13, i64 256, !13, i64 264, !13, i64 272, !13, i64 280, !13, i64 288, !13, i64 296, !13, i64 304, !13, i64 312, !13, i64 320, !13, i64 328, !13, i64 336, !13, i64 344, !13, i64 352, !13, i64 360, !13, i64 368, !13, i64 376, !13, i64 384}
!37 = !{i64 0, i64 4, !38, i64 4, i64 4, !38, i64 8, i64 4, !38, i64 12, i64 4, !38, i64 16, i64 4, !38, i64 20, i64 1, !39, i64 24, i64 4, !38, i64 28, i64 4, !38, i64 32, i64 4, !38, i64 36, i64 4, !38, i64 40, i64 4, !38, i64 44, i64 4, !38, i64 48, i64 8, !40, i64 56, i64 8, !40, i64 64, i64 4, !38, i64 68, i64 4, !38, i64 72, i64 4, !38, i64 76, i64 4, !38, i64 80, i64 4, !38, i64 84, i64 1, !39, i64 85, i64 1, !39, i64 86, i64 1, !39, i64 87, i64 1, !39, i64 88, i64 1, !39, i64 92, i64 4, !38, i64 96, i64 4, !38, i64 100, i64 4, !38, i64 104, i64 4, !38, i64 108, i64 4, !38, i64 112, i64 4, !38, i64 116, i64 4, !38, i64 120, i64 4, !38, i64 124, i64 4, !38, i64 128, i64 4, !38, i64 132, i64 4, !38, i64 136, i64 4, !38, i64 140, i64 4, !38, i64 144, i64 4, !38, i64 148, i64 4, !38, i64 152, i64 4, !41, i64 156, i64 4, !38, i64 160, i64 1, !39, i64 164, i64 4, !38, i64 168, i64 4, !38, i64 172, i64 4, !38, i64 176, i64 4, !38, i64 180, i64 4, !38, i64 184, i64 4, !38, i64 188, i64 4, !38, i64 192, i64 1, !39, i64 196, i64 4, !38, i64 200, i64 4, !38, i64 204, i64 4, !38, i64 208, i64 4, !38, i64 212, i64 4, !38, i64 216, i64 4, !38, i64 220, i64 4, !38, i64 224, i64 4, !38, i64 228, i64 4, !38, i64 232, i64 4, !38, i64 236, i64 4, !38, i64 240, i64 4, !38, i64 244, i64 4, !38, i64 248, i64 4, !38, i64 252, i64 4, !38, i64 256, i64 4, !38, i64 260, i64 4, !38, i64 264, i64 4, !38, i64 268, i64 4, !38, i64 272, i64 4, !38, i64 276, i64 4, !38, i64 280, i64 4, !38, i64 284, i64 4, !38, i64 288, i64 4, !38, i64 292, i64 4, !38, i64 296, i64 4, !38, i64 300, i64 1, !39, i64 304, i64 4, !38, i64 308, i64 4, !38, i64 312, i64 4, !38, i64 316, i64 1, !39, i64 317, i64 1, !39, i64 320, i64 4, !38, i64 324, i64 4, !38, i64 328, i64 1, !39, i64 336, i64 8, !40, i64 344, i64 8, !40, i64 352, i64 1, !39, i64 356, i64 4, !38, i64 360, i64 4, !38, i64 364, i64 1, !39}
!38 = !{!19, !19, i64 0}
!39 = !{!20, !20, i64 0}
!40 = !{!13, !13, i64 0}
!41 = !{!21, !21, i64 0}
!42 = !{!10, !17, i64 288}
!43 = !{!9, !17, i64 1408}
!44 = !{!17, !17, i64 0}
!45 = distinct !{!45, !46}
!46 = !{!"llvm.loop.mustprogress"}
!47 = !{!9, !13, i64 1832}
!48 = !{!10, !13, i64 696}
!49 = !{!9, !17, i64 1352}
!50 = !{!9, !17, i64 1360}
!51 = !{!9, !17, i64 1368}
!52 = !{!53, !13, i64 2648}
!53 = !{!"_ZTS10LoadStoreU", !10, i64 0, !17, i64 1352, !17, i64 1360, !17, i64 1368, !18, i64 1376, !32, i64 1744, !36, i64 2224, !54, i64 2616, !13, i64 2624, !13, i64 2632, !13, i64 2640, !13, i64 2648, !20, i64 2656}
!54 = !{!"_ZTS12Cache_policy", !14, i64 0}
!55 = !{!9, !17, i64 1376}
!56 = !{!9, !17, i64 1400}
!57 = !{!9, !33, i64 1820}
!58 = !{!9, !17, i64 1384}
!59 = !{!9, !17, i64 1392}
!60 = !{!9, !19, i64 1952}
!61 = !{!62, !20, i64 2664}
!62 = !{!"_ZTS9RENAMINGU", !10, i64 0, !17, i64 1352, !17, i64 1360, !17, i64 1368, !17, i64 1376, !17, i64 1384, !17, i64 1392, !17, i64 1400, !17, i64 1408, !17, i64 1416, !18, i64 1424, !32, i64 1792, !36, i64 2272, !20, i64 2664}
!63 = !{i8 0, i8 2}
!64 = !{}
!65 = !{!66, !20, i64 2724}
!66 = !{!"_ZTS10InstFetchU", !10, i64 0, !17, i64 1352, !17, i64 1360, !17, i64 1368, !17, i64 1376, !17, i64 1384, !17, i64 1392, !17, i64 1400, !18, i64 1408, !32, i64 1776, !36, i64 2256, !67, i64 2648, !68, i64 2680, !13, i64 2696, !13, i64 2704, !13, i64 2712, !54, i64 2720, !20, i64 2724}
!67 = !{!"_ZTS19InstFetchParameters", !19, i64 0, !19, i64 4, !19, i64 8, !19, i64 12, !19, i64 16, !19, i64 20, !19, i64 24}
!68 = !{!"_ZTS19InstFetchStatistics", !13, i64 0, !13, i64 8}
!69 = !{!53, !20, i64 2656}
!70 = !{!71, !20, i64 2712}
!71 = !{!"_ZTS5EXECU", !10, i64 0, !17, i64 1352, !17, i64 1360, !17, i64 1368, !17, i64 1376, !17, i64 1384, !17, i64 1392, !17, i64 1400, !17, i64 1408, !17, i64 1416, !17, i64 1424, !17, i64 1432, !18, i64 1440, !13, i64 1808, !13, i64 1816, !13, i64 1824, !13, i64 1832, !32, i64 1840, !36, i64 2320, !20, i64 2712}
!72 = !{!73, !20, i64 2760}
!73 = !{!"_ZTS7MemManU", !10, i64 0, !17, i64 1352, !17, i64 1360, !18, i64 1368, !32, i64 1736, !36, i64 2216, !74, i64 2608, !75, i64 2672, !13, i64 2736, !13, i64 2744, !13, i64 2752, !20, i64 2760}
!74 = !{!"_ZTS22MemoryManagementParams", !19, i64 0, !13, i64 8, !13, i64 16, !19, i64 24, !19, i64 28, !19, i64 32, !13, i64 40, !13, i64 48, !19, i64 56, !19, i64 60}
!75 = !{!"_ZTS21MemoryManagementStats", !13, i64 0, !13, i64 8, !13, i64 16, !13, i64 24, !13, i64 32, !13, i64 40, !13, i64 48, !13, i64 56}
!76 = !{!77, !20, i64 2257}
!77 = !{!"_ZTS10UndiffCore", !10, i64 0, !18, i64 1352, !32, i64 1720, !13, i64 2200, !13, i64 2208, !13, i64 2216, !33, i64 2224, !20, i64 2228, !20, i64 2229, !13, i64 2232, !13, i64 2240, !13, i64 2248, !20, i64 2256, !20, i64 2257}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,LCSSAPass,LICMPass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass