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

; 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.RENAMINGU = type <{ %class.McPATComponent, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %class.InputParameter, %class.CoreParameters, %class.CoreStatistics, i8, [7 x i8] }>
%class.McPATComponent = type { ptr, %class.Component, ptr, %class.InputParameter, %"class.std::__cxx11::basic_string", double, %"class.std::vector", %class.McPATOutput, %class.statsDef, %class.statsDef, %class.powerDef, %class.powerDef }
%class.Component = type { %class.Area, %class.powerDef, %class.powerDef, double, double }
%class.Area = type { double, double, double }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<McPATComponent *, std::allocator<McPATComponent *>>::_Vector_impl" }
%"struct.std::_Vector_base<McPATComponent *, std::allocator<McPATComponent *>>::_Vector_impl" = type { %"struct.std::_Vector_base<McPATComponent *, std::allocator<McPATComponent *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<McPATComponent *, std::allocator<McPATComponent *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.McPATOutput = type { double, double, double, double, double, double }
%class.statsDef = type { %class.statsComponents, %class.statsComponents, %class.statsComponents, %class.statsComponents, %class.statsComponents, %class.statsComponents, %class.statsComponents }
%class.statsComponents = type { double, double, double }
%class.powerDef = type { %class.powerComponents, %class.powerComponents, %class.powerComponents }
%class.powerComponents = type { double, double, double, double, double }
%class.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.ArrayST = type { %class.McPATComponent, %class.InputParameter, i32, i8, i32, i8, %class.uca_org_t, %class.statsDef }
%class.uca_org_t = type { ptr, ptr, double, double, double, double, %class.powerDef, double, double, double, [100 x i8], double, i8, %struct.results_mem_array, %struct.results_mem_array }
%struct.results_mem_array = type { i32, i32, double, i32, i32, i32, i32, i32, i32, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, %class.powerDef, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double }

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

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

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

declare void @_ZN11McPATOutput5resetEv(ptr noundef nonnull align 8 dereferenceable(48)) #2

declare void @_ZN11McPATOutputpLERKS_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48)) #2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN9RENAMINGU13computeEnergyEv(ptr noundef nonnull align 8 dereferenceable(2665) %0) unnamed_addr #1 align 2 {
  %2 = alloca ptr, align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %3 = load ptr, ptr %2, align 8
  %4 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 13
  %5 = load i8, ptr %4, align 8, !tbaa !9, !range !36, !noundef !37
  %6 = trunc i8 %5 to i1
  br i1 %6, label %8, label %7

7:                                                ; preds = %1
  br label %1908

8:                                                ; preds = %1
  %9 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 7
  %10 = load ptr, ptr %9, align 8, !tbaa !38
  %11 = getelementptr inbounds %class.McPATComponent, ptr %10, i32 0, i32 8
  call void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %11)
  %12 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 7
  %13 = load ptr, ptr %12, align 8, !tbaa !38
  %14 = getelementptr inbounds %class.McPATComponent, ptr %13, i32 0, i32 9
  call void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %14)
  %15 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 7
  %16 = load ptr, ptr %15, align 8, !tbaa !38
  %17 = getelementptr inbounds %class.McPATComponent, ptr %16, i32 0, i32 10
  call void @_ZN8powerDef5resetEv(ptr noundef nonnull align 8 dereferenceable(120) %17)
  %18 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 7
  %19 = load ptr, ptr %18, align 8, !tbaa !38
  %20 = getelementptr inbounds %class.McPATComponent, ptr %19, i32 0, i32 11
  call void @_ZN8powerDef5resetEv(ptr noundef nonnull align 8 dereferenceable(120) %20)
  %21 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %22 = getelementptr inbounds %class.CoreParameters, ptr %21, i32 0, i32 3
  %23 = load i32, ptr %22, align 4, !tbaa !39
  %24 = icmp eq i32 %23, 0
  br i1 %24, label %25, label %53

25:                                               ; preds = %8
  %26 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %27 = getelementptr inbounds %class.CoreParameters, ptr %26, i32 0, i32 18
  %28 = load i32, ptr %27, align 4, !tbaa !40
  %29 = sitofp i32 %28 to double
  %30 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 7
  %31 = load ptr, ptr %30, align 8, !tbaa !38
  %32 = getelementptr inbounds %class.McPATComponent, ptr %31, i32 0, i32 8
  %33 = getelementptr inbounds %class.statsDef, ptr %32, i32 0, i32 0
  %34 = getelementptr inbounds %class.statsComponents, ptr %33, i32 0, i32 0
  store double %29, ptr %34, align 8, !tbaa !41
  %35 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %36 = getelementptr inbounds %class.CoreParameters, ptr %35, i32 0, i32 18
  %37 = load i32, ptr %36, align 4, !tbaa !40
  %38 = mul nsw i32 3, %37
  %39 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %40 = getelementptr inbounds %class.CoreParameters, ptr %39, i32 0, i32 18
  %41 = load i32, ptr %40, align 4, !tbaa !40
  %42 = mul nsw i32 %38, %41
  %43 = sitofp i32 %42 to double
  %44 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 12
  %45 = getelementptr inbounds %class.CoreStatistics, ptr %44, i32 0, i32 27
  %46 = load double, ptr %45, align 8, !tbaa !42
  %47 = fmul double %43, %46
  %48 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 7
  %49 = load ptr, ptr %48, align 8, !tbaa !38
  %50 = getelementptr inbounds %class.McPATComponent, ptr %49, i32 0, i32 9
  %51 = getelementptr inbounds %class.statsDef, ptr %50, i32 0, i32 0
  %52 = getelementptr inbounds %class.statsComponents, ptr %51, i32 0, i32 0
  store double %47, ptr %52, align 8, !tbaa !43
  br label %78

53:                                               ; preds = %8
  %54 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %55 = getelementptr inbounds %class.CoreParameters, ptr %54, i32 0, i32 19
  %56 = load i32, ptr %55, align 8, !tbaa !44
  %57 = icmp sgt i32 %56, 1
  br i1 %57, label %58, label %77

58:                                               ; preds = %53
  %59 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %60 = getelementptr inbounds %class.CoreParameters, ptr %59, i32 0, i32 18
  %61 = load i32, ptr %60, align 4, !tbaa !40
  %62 = sitofp i32 %61 to double
  %63 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 7
  %64 = load ptr, ptr %63, align 8, !tbaa !38
  %65 = getelementptr inbounds %class.McPATComponent, ptr %64, i32 0, i32 8
  %66 = getelementptr inbounds %class.statsDef, ptr %65, i32 0, i32 0
  %67 = getelementptr inbounds %class.statsComponents, ptr %66, i32 0, i32 0
  store double %62, ptr %67, align 8, !tbaa !41
  %68 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 12
  %69 = getelementptr inbounds %class.CoreStatistics, ptr %68, i32 0, i32 18
  %70 = load double, ptr %69, align 8, !tbaa !45
  %71 = fmul double 2.000000e+00, %70
  %72 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 7
  %73 = load ptr, ptr %72, align 8, !tbaa !38
  %74 = getelementptr inbounds %class.McPATComponent, ptr %73, i32 0, i32 9
  %75 = getelementptr inbounds %class.statsDef, ptr %74, i32 0, i32 0
  %76 = getelementptr inbounds %class.statsComponents, ptr %75, i32 0, i32 0
  store double %71, ptr %76, align 8, !tbaa !43
  br label %77

77:                                               ; preds = %58, %53
  br label %78

78:                                               ; preds = %77, %25
  %79 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 7
  %80 = load ptr, ptr %79, align 8, !tbaa !38
  %81 = getelementptr inbounds %class.McPATComponent, ptr %80, i32 0, i32 8
  %82 = getelementptr inbounds %class.statsDef, ptr %81, i32 0, i32 0
  %83 = getelementptr inbounds %class.statsComponents, ptr %82, i32 0, i32 0
  %84 = load double, ptr %83, align 8, !tbaa !41
  %85 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 7
  %86 = load ptr, ptr %85, align 8, !tbaa !38
  %87 = getelementptr inbounds i8, ptr %86, i64 8
  %88 = getelementptr inbounds %class.Component, ptr %87, i32 0, i32 1
  %89 = getelementptr inbounds %class.powerDef, ptr %88, i32 0, i32 0
  %90 = getelementptr inbounds %class.powerComponents, ptr %89, i32 0, i32 0
  %91 = load double, ptr %90, align 8, !tbaa !46
  %92 = fmul double %84, %91
  %93 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 7
  %94 = load ptr, ptr %93, align 8, !tbaa !38
  %95 = getelementptr inbounds %class.McPATComponent, ptr %94, i32 0, i32 10
  %96 = getelementptr inbounds %class.powerDef, ptr %95, i32 0, i32 0
  %97 = getelementptr inbounds %class.powerComponents, ptr %96, i32 0, i32 0
  store double %92, ptr %97, align 8, !tbaa !47
  %98 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 7
  %99 = load ptr, ptr %98, align 8, !tbaa !38
  %100 = getelementptr inbounds i8, ptr %99, i64 8
  %101 = getelementptr inbounds %class.Component, ptr %100, i32 0, i32 1
  %102 = getelementptr inbounds %class.powerDef, ptr %101, i32 0, i32 0
  %103 = getelementptr inbounds %class.powerComponents, ptr %102, i32 0, i32 1
  %104 = load double, ptr %103, align 8, !tbaa !48
  %105 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %106 = getelementptr inbounds %class.CoreParameters, ptr %105, i32 0, i32 32
  %107 = load i32, ptr %106, align 4, !tbaa !49
  %108 = sitofp i32 %107 to double
  %109 = fmul double %104, %108
  %110 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 7
  %111 = load ptr, ptr %110, align 8, !tbaa !38
  %112 = getelementptr inbounds %class.McPATComponent, ptr %111, i32 0, i32 10
  %113 = getelementptr inbounds %class.powerDef, ptr %112, i32 0, i32 0
  %114 = getelementptr inbounds %class.powerComponents, ptr %113, i32 0, i32 1
  store double %109, ptr %114, align 8, !tbaa !50
  %115 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 7
  %116 = load ptr, ptr %115, align 8, !tbaa !38
  %117 = getelementptr inbounds i8, ptr %116, i64 8
  %118 = getelementptr inbounds %class.Component, ptr %117, i32 0, i32 1
  %119 = getelementptr inbounds %class.powerDef, ptr %118, i32 0, i32 0
  %120 = getelementptr inbounds %class.powerComponents, ptr %119, i32 0, i32 2
  %121 = load double, ptr %120, align 8, !tbaa !51
  %122 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %123 = getelementptr inbounds %class.CoreParameters, ptr %122, i32 0, i32 32
  %124 = load i32, ptr %123, align 4, !tbaa !49
  %125 = sitofp i32 %124 to double
  %126 = fmul double %121, %125
  %127 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 7
  %128 = load ptr, ptr %127, align 8, !tbaa !38
  %129 = getelementptr inbounds %class.McPATComponent, ptr %128, i32 0, i32 10
  %130 = getelementptr inbounds %class.powerDef, ptr %129, i32 0, i32 0
  %131 = getelementptr inbounds %class.powerComponents, ptr %130, i32 0, i32 2
  store double %126, ptr %131, align 8, !tbaa !52
  %132 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 7
  %133 = load ptr, ptr %132, align 8, !tbaa !38
  %134 = getelementptr inbounds %class.McPATComponent, ptr %133, i32 0, i32 9
  %135 = getelementptr inbounds %class.statsDef, ptr %134, i32 0, i32 0
  %136 = getelementptr inbounds %class.statsComponents, ptr %135, i32 0, i32 0
  %137 = load double, ptr %136, align 8, !tbaa !43
  %138 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 7
  %139 = load ptr, ptr %138, align 8, !tbaa !38
  %140 = getelementptr inbounds i8, ptr %139, i64 8
  %141 = getelementptr inbounds %class.Component, ptr %140, i32 0, i32 1
  %142 = getelementptr inbounds %class.powerDef, ptr %141, i32 0, i32 0
  %143 = getelementptr inbounds %class.powerComponents, ptr %142, i32 0, i32 0
  %144 = load double, ptr %143, align 8, !tbaa !46
  %145 = fmul double %137, %144
  %146 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 7
  %147 = load ptr, ptr %146, align 8, !tbaa !38
  %148 = getelementptr inbounds %class.McPATComponent, ptr %147, i32 0, i32 11
  %149 = getelementptr inbounds %class.powerDef, ptr %148, i32 0, i32 0
  %150 = getelementptr inbounds %class.powerComponents, ptr %149, i32 0, i32 0
  store double %145, ptr %150, align 8, !tbaa !53
  %151 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 8
  %152 = load ptr, ptr %151, align 8, !tbaa !54
  %153 = getelementptr inbounds %class.McPATComponent, ptr %152, i32 0, i32 8
  call void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %153)
  %154 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 8
  %155 = load ptr, ptr %154, align 8, !tbaa !54
  %156 = getelementptr inbounds %class.McPATComponent, ptr %155, i32 0, i32 9
  call void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %156)
  %157 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 8
  %158 = load ptr, ptr %157, align 8, !tbaa !54
  %159 = getelementptr inbounds %class.McPATComponent, ptr %158, i32 0, i32 10
  call void @_ZN8powerDef5resetEv(ptr noundef nonnull align 8 dereferenceable(120) %159)
  %160 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 8
  %161 = load ptr, ptr %160, align 8, !tbaa !54
  %162 = getelementptr inbounds %class.McPATComponent, ptr %161, i32 0, i32 11
  call void @_ZN8powerDef5resetEv(ptr noundef nonnull align 8 dereferenceable(120) %162)
  %163 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %164 = getelementptr inbounds %class.CoreParameters, ptr %163, i32 0, i32 3
  %165 = load i32, ptr %164, align 4, !tbaa !39
  %166 = icmp eq i32 %165, 0
  br i1 %166, label %167, label %195

167:                                              ; preds = %78
  %168 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %169 = getelementptr inbounds %class.CoreParameters, ptr %168, i32 0, i32 18
  %170 = load i32, ptr %169, align 4, !tbaa !40
  %171 = sitofp i32 %170 to double
  %172 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 8
  %173 = load ptr, ptr %172, align 8, !tbaa !54
  %174 = getelementptr inbounds %class.McPATComponent, ptr %173, i32 0, i32 8
  %175 = getelementptr inbounds %class.statsDef, ptr %174, i32 0, i32 0
  %176 = getelementptr inbounds %class.statsComponents, ptr %175, i32 0, i32 0
  store double %171, ptr %176, align 8, !tbaa !41
  %177 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %178 = getelementptr inbounds %class.CoreParameters, ptr %177, i32 0, i32 24
  %179 = load i32, ptr %178, align 4, !tbaa !55
  %180 = mul nsw i32 3, %179
  %181 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %182 = getelementptr inbounds %class.CoreParameters, ptr %181, i32 0, i32 24
  %183 = load i32, ptr %182, align 4, !tbaa !55
  %184 = mul nsw i32 %180, %183
  %185 = sitofp i32 %184 to double
  %186 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 12
  %187 = getelementptr inbounds %class.CoreStatistics, ptr %186, i32 0, i32 30
  %188 = load double, ptr %187, align 8, !tbaa !56
  %189 = fmul double %185, %188
  %190 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 8
  %191 = load ptr, ptr %190, align 8, !tbaa !54
  %192 = getelementptr inbounds %class.McPATComponent, ptr %191, i32 0, i32 9
  %193 = getelementptr inbounds %class.statsDef, ptr %192, i32 0, i32 0
  %194 = getelementptr inbounds %class.statsComponents, ptr %193, i32 0, i32 0
  store double %189, ptr %194, align 8, !tbaa !43
  br label %219

195:                                              ; preds = %78
  %196 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %197 = getelementptr inbounds %class.CoreParameters, ptr %196, i32 0, i32 19
  %198 = load i32, ptr %197, align 8, !tbaa !44
  %199 = icmp sgt i32 %198, 1
  br i1 %199, label %200, label %218

200:                                              ; preds = %195
  %201 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %202 = getelementptr inbounds %class.CoreParameters, ptr %201, i32 0, i32 18
  %203 = load i32, ptr %202, align 4, !tbaa !40
  %204 = sitofp i32 %203 to double
  %205 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 8
  %206 = load ptr, ptr %205, align 8, !tbaa !54
  %207 = getelementptr inbounds %class.McPATComponent, ptr %206, i32 0, i32 8
  %208 = getelementptr inbounds %class.statsDef, ptr %207, i32 0, i32 0
  %209 = getelementptr inbounds %class.statsComponents, ptr %208, i32 0, i32 0
  store double %204, ptr %209, align 8, !tbaa !41
  %210 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 12
  %211 = getelementptr inbounds %class.CoreStatistics, ptr %210, i32 0, i32 19
  %212 = load double, ptr %211, align 8, !tbaa !57
  %213 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 8
  %214 = load ptr, ptr %213, align 8, !tbaa !54
  %215 = getelementptr inbounds %class.McPATComponent, ptr %214, i32 0, i32 9
  %216 = getelementptr inbounds %class.statsDef, ptr %215, i32 0, i32 0
  %217 = getelementptr inbounds %class.statsComponents, ptr %216, i32 0, i32 0
  store double %212, ptr %217, align 8, !tbaa !43
  br label %218

218:                                              ; preds = %200, %195
  br label %219

219:                                              ; preds = %218, %167
  %220 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 8
  %221 = load ptr, ptr %220, align 8, !tbaa !54
  %222 = getelementptr inbounds %class.McPATComponent, ptr %221, i32 0, i32 8
  %223 = getelementptr inbounds %class.statsDef, ptr %222, i32 0, i32 0
  %224 = getelementptr inbounds %class.statsComponents, ptr %223, i32 0, i32 0
  %225 = load double, ptr %224, align 8, !tbaa !41
  %226 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 8
  %227 = load ptr, ptr %226, align 8, !tbaa !54
  %228 = getelementptr inbounds i8, ptr %227, i64 8
  %229 = getelementptr inbounds %class.Component, ptr %228, i32 0, i32 1
  %230 = getelementptr inbounds %class.powerDef, ptr %229, i32 0, i32 0
  %231 = getelementptr inbounds %class.powerComponents, ptr %230, i32 0, i32 0
  %232 = load double, ptr %231, align 8, !tbaa !46
  %233 = fmul double %225, %232
  %234 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 8
  %235 = load ptr, ptr %234, align 8, !tbaa !54
  %236 = getelementptr inbounds %class.McPATComponent, ptr %235, i32 0, i32 10
  %237 = getelementptr inbounds %class.powerDef, ptr %236, i32 0, i32 0
  %238 = getelementptr inbounds %class.powerComponents, ptr %237, i32 0, i32 0
  store double %233, ptr %238, align 8, !tbaa !47
  %239 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 8
  %240 = load ptr, ptr %239, align 8, !tbaa !54
  %241 = getelementptr inbounds i8, ptr %240, i64 8
  %242 = getelementptr inbounds %class.Component, ptr %241, i32 0, i32 1
  %243 = getelementptr inbounds %class.powerDef, ptr %242, i32 0, i32 0
  %244 = getelementptr inbounds %class.powerComponents, ptr %243, i32 0, i32 1
  %245 = load double, ptr %244, align 8, !tbaa !48
  %246 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %247 = getelementptr inbounds %class.CoreParameters, ptr %246, i32 0, i32 32
  %248 = load i32, ptr %247, align 4, !tbaa !49
  %249 = sitofp i32 %248 to double
  %250 = fmul double %245, %249
  %251 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 8
  %252 = load ptr, ptr %251, align 8, !tbaa !54
  %253 = getelementptr inbounds %class.McPATComponent, ptr %252, i32 0, i32 10
  %254 = getelementptr inbounds %class.powerDef, ptr %253, i32 0, i32 0
  %255 = getelementptr inbounds %class.powerComponents, ptr %254, i32 0, i32 1
  store double %250, ptr %255, align 8, !tbaa !50
  %256 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 8
  %257 = load ptr, ptr %256, align 8, !tbaa !54
  %258 = getelementptr inbounds i8, ptr %257, i64 8
  %259 = getelementptr inbounds %class.Component, ptr %258, i32 0, i32 1
  %260 = getelementptr inbounds %class.powerDef, ptr %259, i32 0, i32 0
  %261 = getelementptr inbounds %class.powerComponents, ptr %260, i32 0, i32 2
  %262 = load double, ptr %261, align 8, !tbaa !51
  %263 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %264 = getelementptr inbounds %class.CoreParameters, ptr %263, i32 0, i32 32
  %265 = load i32, ptr %264, align 4, !tbaa !49
  %266 = sitofp i32 %265 to double
  %267 = fmul double %262, %266
  %268 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 8
  %269 = load ptr, ptr %268, align 8, !tbaa !54
  %270 = getelementptr inbounds %class.McPATComponent, ptr %269, i32 0, i32 10
  %271 = getelementptr inbounds %class.powerDef, ptr %270, i32 0, i32 0
  %272 = getelementptr inbounds %class.powerComponents, ptr %271, i32 0, i32 2
  store double %267, ptr %272, align 8, !tbaa !52
  %273 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 8
  %274 = load ptr, ptr %273, align 8, !tbaa !54
  %275 = getelementptr inbounds %class.McPATComponent, ptr %274, i32 0, i32 9
  %276 = getelementptr inbounds %class.statsDef, ptr %275, i32 0, i32 0
  %277 = getelementptr inbounds %class.statsComponents, ptr %276, i32 0, i32 0
  %278 = load double, ptr %277, align 8, !tbaa !43
  %279 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 8
  %280 = load ptr, ptr %279, align 8, !tbaa !54
  %281 = getelementptr inbounds i8, ptr %280, i64 8
  %282 = getelementptr inbounds %class.Component, ptr %281, i32 0, i32 1
  %283 = getelementptr inbounds %class.powerDef, ptr %282, i32 0, i32 0
  %284 = getelementptr inbounds %class.powerComponents, ptr %283, i32 0, i32 0
  %285 = load double, ptr %284, align 8, !tbaa !46
  %286 = fmul double %278, %285
  %287 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 8
  %288 = load ptr, ptr %287, align 8, !tbaa !54
  %289 = getelementptr inbounds %class.McPATComponent, ptr %288, i32 0, i32 11
  %290 = getelementptr inbounds %class.powerDef, ptr %289, i32 0, i32 0
  %291 = getelementptr inbounds %class.powerComponents, ptr %290, i32 0, i32 0
  store double %286, ptr %291, align 8, !tbaa !53
  %292 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %293 = load ptr, ptr %292, align 8, !tbaa !58
  %294 = icmp ne ptr %293, null
  br i1 %294, label %295, label %450

295:                                              ; preds = %219
  %296 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %297 = load ptr, ptr %296, align 8, !tbaa !58
  %298 = getelementptr inbounds %class.McPATComponent, ptr %297, i32 0, i32 8
  call void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %298)
  %299 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %300 = load ptr, ptr %299, align 8, !tbaa !58
  %301 = getelementptr inbounds %class.ArrayST, ptr %300, i32 0, i32 1
  %302 = getelementptr inbounds %class.InputParameter, ptr %301, i32 0, i32 15
  %303 = load i32, ptr %302, align 4, !tbaa !59
  %304 = uitofp i32 %303 to double
  %305 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %306 = load ptr, ptr %305, align 8, !tbaa !58
  %307 = getelementptr inbounds %class.McPATComponent, ptr %306, i32 0, i32 8
  %308 = getelementptr inbounds %class.statsDef, ptr %307, i32 0, i32 0
  %309 = getelementptr inbounds %class.statsComponents, ptr %308, i32 0, i32 0
  store double %304, ptr %309, align 8, !tbaa !41
  %310 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %311 = load ptr, ptr %310, align 8, !tbaa !58
  %312 = getelementptr inbounds %class.ArrayST, ptr %311, i32 0, i32 1
  %313 = getelementptr inbounds %class.InputParameter, ptr %312, i32 0, i32 16
  %314 = load i32, ptr %313, align 8, !tbaa !64
  %315 = uitofp i32 %314 to double
  %316 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %317 = load ptr, ptr %316, align 8, !tbaa !58
  %318 = getelementptr inbounds %class.McPATComponent, ptr %317, i32 0, i32 8
  %319 = getelementptr inbounds %class.statsDef, ptr %318, i32 0, i32 1
  %320 = getelementptr inbounds %class.statsComponents, ptr %319, i32 0, i32 0
  store double %315, ptr %320, align 8, !tbaa !65
  %321 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %322 = load ptr, ptr %321, align 8, !tbaa !58
  %323 = getelementptr inbounds %class.McPATComponent, ptr %322, i32 0, i32 9
  call void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %323)
  %324 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 12
  %325 = getelementptr inbounds %class.CoreStatistics, ptr %324, i32 0, i32 28
  %326 = load double, ptr %325, align 8, !tbaa !66
  %327 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %328 = load ptr, ptr %327, align 8, !tbaa !58
  %329 = getelementptr inbounds %class.McPATComponent, ptr %328, i32 0, i32 9
  %330 = getelementptr inbounds %class.statsDef, ptr %329, i32 0, i32 0
  %331 = getelementptr inbounds %class.statsComponents, ptr %330, i32 0, i32 0
  store double %326, ptr %331, align 8, !tbaa !43
  %332 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 12
  %333 = getelementptr inbounds %class.CoreStatistics, ptr %332, i32 0, i32 28
  %334 = load double, ptr %333, align 8, !tbaa !66
  %335 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %336 = load ptr, ptr %335, align 8, !tbaa !58
  %337 = getelementptr inbounds %class.McPATComponent, ptr %336, i32 0, i32 9
  %338 = getelementptr inbounds %class.statsDef, ptr %337, i32 0, i32 1
  %339 = getelementptr inbounds %class.statsComponents, ptr %338, i32 0, i32 0
  store double %334, ptr %339, align 8, !tbaa !67
  %340 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %341 = load ptr, ptr %340, align 8, !tbaa !58
  %342 = getelementptr inbounds %class.McPATComponent, ptr %341, i32 0, i32 10
  call void @_ZN8powerDef5resetEv(ptr noundef nonnull align 8 dereferenceable(120) %342)
  %343 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %344 = load ptr, ptr %343, align 8, !tbaa !58
  %345 = getelementptr inbounds %class.McPATComponent, ptr %344, i32 0, i32 8
  %346 = getelementptr inbounds %class.statsDef, ptr %345, i32 0, i32 0
  %347 = getelementptr inbounds %class.statsComponents, ptr %346, i32 0, i32 0
  %348 = load double, ptr %347, align 8, !tbaa !41
  %349 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %350 = load ptr, ptr %349, align 8, !tbaa !58
  %351 = getelementptr inbounds i8, ptr %350, i64 8
  %352 = getelementptr inbounds %class.Component, ptr %351, i32 0, i32 1
  %353 = getelementptr inbounds %class.powerDef, ptr %352, i32 0, i32 0
  %354 = getelementptr inbounds %class.powerComponents, ptr %353, i32 0, i32 0
  %355 = load double, ptr %354, align 8, !tbaa !46
  %356 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %357 = load ptr, ptr %356, align 8, !tbaa !58
  %358 = getelementptr inbounds %class.McPATComponent, ptr %357, i32 0, i32 8
  %359 = getelementptr inbounds %class.statsDef, ptr %358, i32 0, i32 1
  %360 = getelementptr inbounds %class.statsComponents, ptr %359, i32 0, i32 0
  %361 = load double, ptr %360, align 8, !tbaa !65
  %362 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %363 = load ptr, ptr %362, align 8, !tbaa !58
  %364 = getelementptr inbounds i8, ptr %363, i64 8
  %365 = getelementptr inbounds %class.Component, ptr %364, i32 0, i32 1
  %366 = getelementptr inbounds %class.powerDef, ptr %365, i32 0, i32 1
  %367 = getelementptr inbounds %class.powerComponents, ptr %366, i32 0, i32 0
  %368 = load double, ptr %367, align 8, !tbaa !68
  %369 = fmul double %361, %368
  %370 = call double @llvm.fmuladd.f64(double %348, double %355, double %369)
  %371 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %372 = load ptr, ptr %371, align 8, !tbaa !58
  %373 = getelementptr inbounds %class.McPATComponent, ptr %372, i32 0, i32 10
  %374 = getelementptr inbounds %class.powerDef, ptr %373, i32 0, i32 0
  %375 = getelementptr inbounds %class.powerComponents, ptr %374, i32 0, i32 0
  %376 = load double, ptr %375, align 8, !tbaa !47
  %377 = fadd double %376, %370
  store double %377, ptr %375, align 8, !tbaa !47
  %378 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %379 = load ptr, ptr %378, align 8, !tbaa !58
  %380 = getelementptr inbounds %class.McPATComponent, ptr %379, i32 0, i32 11
  call void @_ZN8powerDef5resetEv(ptr noundef nonnull align 8 dereferenceable(120) %380)
  %381 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %382 = load ptr, ptr %381, align 8, !tbaa !58
  %383 = getelementptr inbounds %class.McPATComponent, ptr %382, i32 0, i32 9
  %384 = getelementptr inbounds %class.statsDef, ptr %383, i32 0, i32 0
  %385 = getelementptr inbounds %class.statsComponents, ptr %384, i32 0, i32 0
  %386 = load double, ptr %385, align 8, !tbaa !43
  %387 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %388 = load ptr, ptr %387, align 8, !tbaa !58
  %389 = getelementptr inbounds i8, ptr %388, i64 8
  %390 = getelementptr inbounds %class.Component, ptr %389, i32 0, i32 1
  %391 = getelementptr inbounds %class.powerDef, ptr %390, i32 0, i32 0
  %392 = getelementptr inbounds %class.powerComponents, ptr %391, i32 0, i32 0
  %393 = load double, ptr %392, align 8, !tbaa !46
  %394 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %395 = load ptr, ptr %394, align 8, !tbaa !58
  %396 = getelementptr inbounds %class.McPATComponent, ptr %395, i32 0, i32 9
  %397 = getelementptr inbounds %class.statsDef, ptr %396, i32 0, i32 1
  %398 = getelementptr inbounds %class.statsComponents, ptr %397, i32 0, i32 0
  %399 = load double, ptr %398, align 8, !tbaa !67
  %400 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %401 = load ptr, ptr %400, align 8, !tbaa !58
  %402 = getelementptr inbounds i8, ptr %401, i64 8
  %403 = getelementptr inbounds %class.Component, ptr %402, i32 0, i32 1
  %404 = getelementptr inbounds %class.powerDef, ptr %403, i32 0, i32 1
  %405 = getelementptr inbounds %class.powerComponents, ptr %404, i32 0, i32 0
  %406 = load double, ptr %405, align 8, !tbaa !68
  %407 = fmul double %399, %406
  %408 = call double @llvm.fmuladd.f64(double %386, double %393, double %407)
  %409 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %410 = load ptr, ptr %409, align 8, !tbaa !58
  %411 = getelementptr inbounds %class.McPATComponent, ptr %410, i32 0, i32 11
  %412 = getelementptr inbounds %class.powerDef, ptr %411, i32 0, i32 0
  %413 = getelementptr inbounds %class.powerComponents, ptr %412, i32 0, i32 0
  %414 = load double, ptr %413, align 8, !tbaa !53
  %415 = fadd double %414, %408
  store double %415, ptr %413, align 8, !tbaa !53
  %416 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %417 = load ptr, ptr %416, align 8, !tbaa !58
  %418 = getelementptr inbounds i8, ptr %417, i64 8
  %419 = getelementptr inbounds %class.Component, ptr %418, i32 0, i32 1
  %420 = getelementptr inbounds %class.powerDef, ptr %419, i32 0, i32 0
  %421 = getelementptr inbounds %class.powerComponents, ptr %420, i32 0, i32 1
  %422 = load double, ptr %421, align 8, !tbaa !48
  %423 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %424 = getelementptr inbounds %class.CoreParameters, ptr %423, i32 0, i32 32
  %425 = load i32, ptr %424, align 4, !tbaa !49
  %426 = sitofp i32 %425 to double
  %427 = fmul double %422, %426
  %428 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %429 = load ptr, ptr %428, align 8, !tbaa !58
  %430 = getelementptr inbounds %class.McPATComponent, ptr %429, i32 0, i32 10
  %431 = getelementptr inbounds %class.powerDef, ptr %430, i32 0, i32 0
  %432 = getelementptr inbounds %class.powerComponents, ptr %431, i32 0, i32 1
  store double %427, ptr %432, align 8, !tbaa !50
  %433 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %434 = load ptr, ptr %433, align 8, !tbaa !58
  %435 = getelementptr inbounds i8, ptr %434, i64 8
  %436 = getelementptr inbounds %class.Component, ptr %435, i32 0, i32 1
  %437 = getelementptr inbounds %class.powerDef, ptr %436, i32 0, i32 0
  %438 = getelementptr inbounds %class.powerComponents, ptr %437, i32 0, i32 2
  %439 = load double, ptr %438, align 8, !tbaa !51
  %440 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %441 = getelementptr inbounds %class.CoreParameters, ptr %440, i32 0, i32 32
  %442 = load i32, ptr %441, align 4, !tbaa !49
  %443 = sitofp i32 %442 to double
  %444 = fmul double %439, %443
  %445 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %446 = load ptr, ptr %445, align 8, !tbaa !58
  %447 = getelementptr inbounds %class.McPATComponent, ptr %446, i32 0, i32 10
  %448 = getelementptr inbounds %class.powerDef, ptr %447, i32 0, i32 0
  %449 = getelementptr inbounds %class.powerComponents, ptr %448, i32 0, i32 2
  store double %444, ptr %449, align 8, !tbaa !52
  br label %450

450:                                              ; preds = %295, %219
  %451 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %452 = load ptr, ptr %451, align 8, !tbaa !69
  %453 = icmp ne ptr %452, null
  br i1 %453, label %454, label %644

454:                                              ; preds = %450
  %455 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %456 = load ptr, ptr %455, align 8, !tbaa !69
  %457 = getelementptr inbounds %class.McPATComponent, ptr %456, i32 0, i32 8
  call void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %457)
  %458 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %459 = getelementptr inbounds %class.CoreParameters, ptr %458, i32 0, i32 18
  %460 = load i32, ptr %459, align 4, !tbaa !40
  %461 = sitofp i32 %460 to double
  %462 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %463 = load ptr, ptr %462, align 8, !tbaa !69
  %464 = getelementptr inbounds %class.McPATComponent, ptr %463, i32 0, i32 8
  %465 = getelementptr inbounds %class.statsDef, ptr %464, i32 0, i32 0
  %466 = getelementptr inbounds %class.statsComponents, ptr %465, i32 0, i32 0
  store double %461, ptr %466, align 8, !tbaa !41
  %467 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %468 = getelementptr inbounds %class.CoreParameters, ptr %467, i32 0, i32 18
  %469 = load i32, ptr %468, align 4, !tbaa !40
  %470 = sitofp i32 %469 to double
  %471 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %472 = load ptr, ptr %471, align 8, !tbaa !69
  %473 = getelementptr inbounds %class.McPATComponent, ptr %472, i32 0, i32 8
  %474 = getelementptr inbounds %class.statsDef, ptr %473, i32 0, i32 1
  %475 = getelementptr inbounds %class.statsComponents, ptr %474, i32 0, i32 0
  store double %470, ptr %475, align 8, !tbaa !65
  %476 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %477 = load ptr, ptr %476, align 8, !tbaa !69
  %478 = getelementptr inbounds %class.McPATComponent, ptr %477, i32 0, i32 9
  call void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %478)
  %479 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %480 = getelementptr inbounds %class.CoreParameters, ptr %479, i32 0, i32 5
  %481 = load i32, ptr %480, align 4, !tbaa !70
  %482 = icmp eq i32 %481, 0
  br i1 %482, label %483, label %501

483:                                              ; preds = %454
  %484 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 12
  %485 = getelementptr inbounds %class.CoreStatistics, ptr %484, i32 0, i32 27
  %486 = load double, ptr %485, align 8, !tbaa !42
  %487 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %488 = load ptr, ptr %487, align 8, !tbaa !69
  %489 = getelementptr inbounds %class.McPATComponent, ptr %488, i32 0, i32 9
  %490 = getelementptr inbounds %class.statsDef, ptr %489, i32 0, i32 0
  %491 = getelementptr inbounds %class.statsComponents, ptr %490, i32 0, i32 0
  store double %486, ptr %491, align 8, !tbaa !43
  %492 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 12
  %493 = getelementptr inbounds %class.CoreStatistics, ptr %492, i32 0, i32 28
  %494 = load double, ptr %493, align 8, !tbaa !66
  %495 = fmul double 2.000000e+00, %494
  %496 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %497 = load ptr, ptr %496, align 8, !tbaa !69
  %498 = getelementptr inbounds %class.McPATComponent, ptr %497, i32 0, i32 9
  %499 = getelementptr inbounds %class.statsDef, ptr %498, i32 0, i32 1
  %500 = getelementptr inbounds %class.statsComponents, ptr %499, i32 0, i32 0
  store double %495, ptr %500, align 8, !tbaa !67
  br label %533

501:                                              ; preds = %454
  %502 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %503 = getelementptr inbounds %class.CoreParameters, ptr %502, i32 0, i32 5
  %504 = load i32, ptr %503, align 4, !tbaa !70
  %505 = icmp eq i32 %504, 1
  br i1 %505, label %506, label %532

506:                                              ; preds = %501
  %507 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 12
  %508 = getelementptr inbounds %class.CoreStatistics, ptr %507, i32 0, i32 27
  %509 = load double, ptr %508, align 8, !tbaa !42
  %510 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 12
  %511 = getelementptr inbounds %class.CoreStatistics, ptr %510, i32 0, i32 29
  %512 = load double, ptr %511, align 8, !tbaa !71
  %513 = fadd double %509, %512
  %514 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %515 = load ptr, ptr %514, align 8, !tbaa !69
  %516 = getelementptr inbounds %class.McPATComponent, ptr %515, i32 0, i32 9
  %517 = getelementptr inbounds %class.statsDef, ptr %516, i32 0, i32 0
  %518 = getelementptr inbounds %class.statsComponents, ptr %517, i32 0, i32 0
  store double %513, ptr %518, align 8, !tbaa !43
  %519 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 12
  %520 = getelementptr inbounds %class.CoreStatistics, ptr %519, i32 0, i32 28
  %521 = load double, ptr %520, align 8, !tbaa !66
  %522 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 12
  %523 = getelementptr inbounds %class.CoreStatistics, ptr %522, i32 0, i32 30
  %524 = load double, ptr %523, align 8, !tbaa !56
  %525 = fadd double %521, %524
  %526 = fmul double 2.000000e+00, %525
  %527 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %528 = load ptr, ptr %527, align 8, !tbaa !69
  %529 = getelementptr inbounds %class.McPATComponent, ptr %528, i32 0, i32 9
  %530 = getelementptr inbounds %class.statsDef, ptr %529, i32 0, i32 1
  %531 = getelementptr inbounds %class.statsComponents, ptr %530, i32 0, i32 0
  store double %526, ptr %531, align 8, !tbaa !67
  br label %532

532:                                              ; preds = %506, %501
  br label %533

533:                                              ; preds = %532, %483
  %534 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %535 = load ptr, ptr %534, align 8, !tbaa !69
  %536 = getelementptr inbounds %class.McPATComponent, ptr %535, i32 0, i32 10
  call void @_ZN8powerDef5resetEv(ptr noundef nonnull align 8 dereferenceable(120) %536)
  %537 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %538 = load ptr, ptr %537, align 8, !tbaa !69
  %539 = getelementptr inbounds %class.McPATComponent, ptr %538, i32 0, i32 8
  %540 = getelementptr inbounds %class.statsDef, ptr %539, i32 0, i32 0
  %541 = getelementptr inbounds %class.statsComponents, ptr %540, i32 0, i32 0
  %542 = load double, ptr %541, align 8, !tbaa !41
  %543 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %544 = load ptr, ptr %543, align 8, !tbaa !69
  %545 = getelementptr inbounds i8, ptr %544, i64 8
  %546 = getelementptr inbounds %class.Component, ptr %545, i32 0, i32 1
  %547 = getelementptr inbounds %class.powerDef, ptr %546, i32 0, i32 0
  %548 = getelementptr inbounds %class.powerComponents, ptr %547, i32 0, i32 0
  %549 = load double, ptr %548, align 8, !tbaa !46
  %550 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %551 = load ptr, ptr %550, align 8, !tbaa !69
  %552 = getelementptr inbounds %class.McPATComponent, ptr %551, i32 0, i32 8
  %553 = getelementptr inbounds %class.statsDef, ptr %552, i32 0, i32 1
  %554 = getelementptr inbounds %class.statsComponents, ptr %553, i32 0, i32 0
  %555 = load double, ptr %554, align 8, !tbaa !65
  %556 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %557 = load ptr, ptr %556, align 8, !tbaa !69
  %558 = getelementptr inbounds i8, ptr %557, i64 8
  %559 = getelementptr inbounds %class.Component, ptr %558, i32 0, i32 1
  %560 = getelementptr inbounds %class.powerDef, ptr %559, i32 0, i32 1
  %561 = getelementptr inbounds %class.powerComponents, ptr %560, i32 0, i32 0
  %562 = load double, ptr %561, align 8, !tbaa !68
  %563 = fmul double %555, %562
  %564 = call double @llvm.fmuladd.f64(double %542, double %549, double %563)
  %565 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %566 = load ptr, ptr %565, align 8, !tbaa !69
  %567 = getelementptr inbounds %class.McPATComponent, ptr %566, i32 0, i32 10
  %568 = getelementptr inbounds %class.powerDef, ptr %567, i32 0, i32 0
  %569 = getelementptr inbounds %class.powerComponents, ptr %568, i32 0, i32 0
  %570 = load double, ptr %569, align 8, !tbaa !47
  %571 = fadd double %570, %564
  store double %571, ptr %569, align 8, !tbaa !47
  %572 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %573 = load ptr, ptr %572, align 8, !tbaa !69
  %574 = getelementptr inbounds %class.McPATComponent, ptr %573, i32 0, i32 11
  call void @_ZN8powerDef5resetEv(ptr noundef nonnull align 8 dereferenceable(120) %574)
  %575 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %576 = load ptr, ptr %575, align 8, !tbaa !69
  %577 = getelementptr inbounds %class.McPATComponent, ptr %576, i32 0, i32 9
  %578 = getelementptr inbounds %class.statsDef, ptr %577, i32 0, i32 0
  %579 = getelementptr inbounds %class.statsComponents, ptr %578, i32 0, i32 0
  %580 = load double, ptr %579, align 8, !tbaa !43
  %581 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %582 = load ptr, ptr %581, align 8, !tbaa !69
  %583 = getelementptr inbounds i8, ptr %582, i64 8
  %584 = getelementptr inbounds %class.Component, ptr %583, i32 0, i32 1
  %585 = getelementptr inbounds %class.powerDef, ptr %584, i32 0, i32 0
  %586 = getelementptr inbounds %class.powerComponents, ptr %585, i32 0, i32 0
  %587 = load double, ptr %586, align 8, !tbaa !46
  %588 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %589 = load ptr, ptr %588, align 8, !tbaa !69
  %590 = getelementptr inbounds %class.McPATComponent, ptr %589, i32 0, i32 9
  %591 = getelementptr inbounds %class.statsDef, ptr %590, i32 0, i32 1
  %592 = getelementptr inbounds %class.statsComponents, ptr %591, i32 0, i32 0
  %593 = load double, ptr %592, align 8, !tbaa !67
  %594 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %595 = load ptr, ptr %594, align 8, !tbaa !69
  %596 = getelementptr inbounds i8, ptr %595, i64 8
  %597 = getelementptr inbounds %class.Component, ptr %596, i32 0, i32 1
  %598 = getelementptr inbounds %class.powerDef, ptr %597, i32 0, i32 1
  %599 = getelementptr inbounds %class.powerComponents, ptr %598, i32 0, i32 0
  %600 = load double, ptr %599, align 8, !tbaa !68
  %601 = fmul double %593, %600
  %602 = call double @llvm.fmuladd.f64(double %580, double %587, double %601)
  %603 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %604 = load ptr, ptr %603, align 8, !tbaa !69
  %605 = getelementptr inbounds %class.McPATComponent, ptr %604, i32 0, i32 11
  %606 = getelementptr inbounds %class.powerDef, ptr %605, i32 0, i32 0
  %607 = getelementptr inbounds %class.powerComponents, ptr %606, i32 0, i32 0
  %608 = load double, ptr %607, align 8, !tbaa !53
  %609 = fadd double %608, %602
  store double %609, ptr %607, align 8, !tbaa !53
  %610 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %611 = load ptr, ptr %610, align 8, !tbaa !69
  %612 = getelementptr inbounds i8, ptr %611, i64 8
  %613 = getelementptr inbounds %class.Component, ptr %612, i32 0, i32 1
  %614 = getelementptr inbounds %class.powerDef, ptr %613, i32 0, i32 0
  %615 = getelementptr inbounds %class.powerComponents, ptr %614, i32 0, i32 1
  %616 = load double, ptr %615, align 8, !tbaa !48
  %617 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %618 = getelementptr inbounds %class.CoreParameters, ptr %617, i32 0, i32 32
  %619 = load i32, ptr %618, align 4, !tbaa !49
  %620 = sitofp i32 %619 to double
  %621 = fmul double %616, %620
  %622 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %623 = load ptr, ptr %622, align 8, !tbaa !69
  %624 = getelementptr inbounds %class.McPATComponent, ptr %623, i32 0, i32 10
  %625 = getelementptr inbounds %class.powerDef, ptr %624, i32 0, i32 0
  %626 = getelementptr inbounds %class.powerComponents, ptr %625, i32 0, i32 1
  store double %621, ptr %626, align 8, !tbaa !50
  %627 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %628 = load ptr, ptr %627, align 8, !tbaa !69
  %629 = getelementptr inbounds i8, ptr %628, i64 8
  %630 = getelementptr inbounds %class.Component, ptr %629, i32 0, i32 1
  %631 = getelementptr inbounds %class.powerDef, ptr %630, i32 0, i32 0
  %632 = getelementptr inbounds %class.powerComponents, ptr %631, i32 0, i32 2
  %633 = load double, ptr %632, align 8, !tbaa !51
  %634 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %635 = getelementptr inbounds %class.CoreParameters, ptr %634, i32 0, i32 32
  %636 = load i32, ptr %635, align 4, !tbaa !49
  %637 = sitofp i32 %636 to double
  %638 = fmul double %633, %637
  %639 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %640 = load ptr, ptr %639, align 8, !tbaa !69
  %641 = getelementptr inbounds %class.McPATComponent, ptr %640, i32 0, i32 10
  %642 = getelementptr inbounds %class.powerDef, ptr %641, i32 0, i32 0
  %643 = getelementptr inbounds %class.powerComponents, ptr %642, i32 0, i32 2
  store double %638, ptr %643, align 8, !tbaa !52
  br label %644

644:                                              ; preds = %533, %450
  %645 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %646 = load ptr, ptr %645, align 8, !tbaa !72
  %647 = icmp ne ptr %646, null
  br i1 %647, label %648, label %803

648:                                              ; preds = %644
  %649 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %650 = load ptr, ptr %649, align 8, !tbaa !72
  %651 = getelementptr inbounds %class.McPATComponent, ptr %650, i32 0, i32 8
  call void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %651)
  %652 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %653 = load ptr, ptr %652, align 8, !tbaa !72
  %654 = getelementptr inbounds %class.ArrayST, ptr %653, i32 0, i32 1
  %655 = getelementptr inbounds %class.InputParameter, ptr %654, i32 0, i32 15
  %656 = load i32, ptr %655, align 4, !tbaa !59
  %657 = uitofp i32 %656 to double
  %658 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %659 = load ptr, ptr %658, align 8, !tbaa !72
  %660 = getelementptr inbounds %class.McPATComponent, ptr %659, i32 0, i32 8
  %661 = getelementptr inbounds %class.statsDef, ptr %660, i32 0, i32 0
  %662 = getelementptr inbounds %class.statsComponents, ptr %661, i32 0, i32 0
  store double %657, ptr %662, align 8, !tbaa !41
  %663 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %664 = load ptr, ptr %663, align 8, !tbaa !72
  %665 = getelementptr inbounds %class.ArrayST, ptr %664, i32 0, i32 1
  %666 = getelementptr inbounds %class.InputParameter, ptr %665, i32 0, i32 16
  %667 = load i32, ptr %666, align 8, !tbaa !64
  %668 = uitofp i32 %667 to double
  %669 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %670 = load ptr, ptr %669, align 8, !tbaa !72
  %671 = getelementptr inbounds %class.McPATComponent, ptr %670, i32 0, i32 8
  %672 = getelementptr inbounds %class.statsDef, ptr %671, i32 0, i32 1
  %673 = getelementptr inbounds %class.statsComponents, ptr %672, i32 0, i32 0
  store double %668, ptr %673, align 8, !tbaa !65
  %674 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %675 = load ptr, ptr %674, align 8, !tbaa !72
  %676 = getelementptr inbounds %class.McPATComponent, ptr %675, i32 0, i32 9
  call void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %676)
  %677 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 12
  %678 = getelementptr inbounds %class.CoreStatistics, ptr %677, i32 0, i32 30
  %679 = load double, ptr %678, align 8, !tbaa !56
  %680 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %681 = load ptr, ptr %680, align 8, !tbaa !72
  %682 = getelementptr inbounds %class.McPATComponent, ptr %681, i32 0, i32 9
  %683 = getelementptr inbounds %class.statsDef, ptr %682, i32 0, i32 0
  %684 = getelementptr inbounds %class.statsComponents, ptr %683, i32 0, i32 0
  store double %679, ptr %684, align 8, !tbaa !43
  %685 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 12
  %686 = getelementptr inbounds %class.CoreStatistics, ptr %685, i32 0, i32 30
  %687 = load double, ptr %686, align 8, !tbaa !56
  %688 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %689 = load ptr, ptr %688, align 8, !tbaa !72
  %690 = getelementptr inbounds %class.McPATComponent, ptr %689, i32 0, i32 9
  %691 = getelementptr inbounds %class.statsDef, ptr %690, i32 0, i32 1
  %692 = getelementptr inbounds %class.statsComponents, ptr %691, i32 0, i32 0
  store double %687, ptr %692, align 8, !tbaa !67
  %693 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %694 = load ptr, ptr %693, align 8, !tbaa !72
  %695 = getelementptr inbounds %class.McPATComponent, ptr %694, i32 0, i32 10
  call void @_ZN8powerDef5resetEv(ptr noundef nonnull align 8 dereferenceable(120) %695)
  %696 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %697 = load ptr, ptr %696, align 8, !tbaa !72
  %698 = getelementptr inbounds %class.McPATComponent, ptr %697, i32 0, i32 8
  %699 = getelementptr inbounds %class.statsDef, ptr %698, i32 0, i32 0
  %700 = getelementptr inbounds %class.statsComponents, ptr %699, i32 0, i32 0
  %701 = load double, ptr %700, align 8, !tbaa !41
  %702 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %703 = load ptr, ptr %702, align 8, !tbaa !72
  %704 = getelementptr inbounds i8, ptr %703, i64 8
  %705 = getelementptr inbounds %class.Component, ptr %704, i32 0, i32 1
  %706 = getelementptr inbounds %class.powerDef, ptr %705, i32 0, i32 0
  %707 = getelementptr inbounds %class.powerComponents, ptr %706, i32 0, i32 0
  %708 = load double, ptr %707, align 8, !tbaa !46
  %709 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %710 = load ptr, ptr %709, align 8, !tbaa !72
  %711 = getelementptr inbounds %class.McPATComponent, ptr %710, i32 0, i32 8
  %712 = getelementptr inbounds %class.statsDef, ptr %711, i32 0, i32 1
  %713 = getelementptr inbounds %class.statsComponents, ptr %712, i32 0, i32 0
  %714 = load double, ptr %713, align 8, !tbaa !65
  %715 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %716 = load ptr, ptr %715, align 8, !tbaa !72
  %717 = getelementptr inbounds i8, ptr %716, i64 8
  %718 = getelementptr inbounds %class.Component, ptr %717, i32 0, i32 1
  %719 = getelementptr inbounds %class.powerDef, ptr %718, i32 0, i32 1
  %720 = getelementptr inbounds %class.powerComponents, ptr %719, i32 0, i32 0
  %721 = load double, ptr %720, align 8, !tbaa !68
  %722 = fmul double %714, %721
  %723 = call double @llvm.fmuladd.f64(double %701, double %708, double %722)
  %724 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %725 = load ptr, ptr %724, align 8, !tbaa !72
  %726 = getelementptr inbounds %class.McPATComponent, ptr %725, i32 0, i32 10
  %727 = getelementptr inbounds %class.powerDef, ptr %726, i32 0, i32 0
  %728 = getelementptr inbounds %class.powerComponents, ptr %727, i32 0, i32 0
  %729 = load double, ptr %728, align 8, !tbaa !47
  %730 = fadd double %729, %723
  store double %730, ptr %728, align 8, !tbaa !47
  %731 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %732 = load ptr, ptr %731, align 8, !tbaa !72
  %733 = getelementptr inbounds %class.McPATComponent, ptr %732, i32 0, i32 11
  call void @_ZN8powerDef5resetEv(ptr noundef nonnull align 8 dereferenceable(120) %733)
  %734 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %735 = load ptr, ptr %734, align 8, !tbaa !72
  %736 = getelementptr inbounds %class.McPATComponent, ptr %735, i32 0, i32 9
  %737 = getelementptr inbounds %class.statsDef, ptr %736, i32 0, i32 0
  %738 = getelementptr inbounds %class.statsComponents, ptr %737, i32 0, i32 0
  %739 = load double, ptr %738, align 8, !tbaa !43
  %740 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %741 = load ptr, ptr %740, align 8, !tbaa !72
  %742 = getelementptr inbounds i8, ptr %741, i64 8
  %743 = getelementptr inbounds %class.Component, ptr %742, i32 0, i32 1
  %744 = getelementptr inbounds %class.powerDef, ptr %743, i32 0, i32 0
  %745 = getelementptr inbounds %class.powerComponents, ptr %744, i32 0, i32 0
  %746 = load double, ptr %745, align 8, !tbaa !46
  %747 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %748 = load ptr, ptr %747, align 8, !tbaa !72
  %749 = getelementptr inbounds %class.McPATComponent, ptr %748, i32 0, i32 9
  %750 = getelementptr inbounds %class.statsDef, ptr %749, i32 0, i32 1
  %751 = getelementptr inbounds %class.statsComponents, ptr %750, i32 0, i32 0
  %752 = load double, ptr %751, align 8, !tbaa !67
  %753 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %754 = load ptr, ptr %753, align 8, !tbaa !72
  %755 = getelementptr inbounds i8, ptr %754, i64 8
  %756 = getelementptr inbounds %class.Component, ptr %755, i32 0, i32 1
  %757 = getelementptr inbounds %class.powerDef, ptr %756, i32 0, i32 1
  %758 = getelementptr inbounds %class.powerComponents, ptr %757, i32 0, i32 0
  %759 = load double, ptr %758, align 8, !tbaa !68
  %760 = fmul double %752, %759
  %761 = call double @llvm.fmuladd.f64(double %739, double %746, double %760)
  %762 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %763 = load ptr, ptr %762, align 8, !tbaa !72
  %764 = getelementptr inbounds %class.McPATComponent, ptr %763, i32 0, i32 11
  %765 = getelementptr inbounds %class.powerDef, ptr %764, i32 0, i32 0
  %766 = getelementptr inbounds %class.powerComponents, ptr %765, i32 0, i32 0
  %767 = load double, ptr %766, align 8, !tbaa !53
  %768 = fadd double %767, %761
  store double %768, ptr %766, align 8, !tbaa !53
  %769 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %770 = load ptr, ptr %769, align 8, !tbaa !72
  %771 = getelementptr inbounds i8, ptr %770, i64 8
  %772 = getelementptr inbounds %class.Component, ptr %771, i32 0, i32 1
  %773 = getelementptr inbounds %class.powerDef, ptr %772, i32 0, i32 0
  %774 = getelementptr inbounds %class.powerComponents, ptr %773, i32 0, i32 1
  %775 = load double, ptr %774, align 8, !tbaa !48
  %776 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %777 = getelementptr inbounds %class.CoreParameters, ptr %776, i32 0, i32 32
  %778 = load i32, ptr %777, align 4, !tbaa !49
  %779 = sitofp i32 %778 to double
  %780 = fmul double %775, %779
  %781 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %782 = load ptr, ptr %781, align 8, !tbaa !72
  %783 = getelementptr inbounds %class.McPATComponent, ptr %782, i32 0, i32 10
  %784 = getelementptr inbounds %class.powerDef, ptr %783, i32 0, i32 0
  %785 = getelementptr inbounds %class.powerComponents, ptr %784, i32 0, i32 1
  store double %780, ptr %785, align 8, !tbaa !50
  %786 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %787 = load ptr, ptr %786, align 8, !tbaa !72
  %788 = getelementptr inbounds i8, ptr %787, i64 8
  %789 = getelementptr inbounds %class.Component, ptr %788, i32 0, i32 1
  %790 = getelementptr inbounds %class.powerDef, ptr %789, i32 0, i32 0
  %791 = getelementptr inbounds %class.powerComponents, ptr %790, i32 0, i32 2
  %792 = load double, ptr %791, align 8, !tbaa !51
  %793 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %794 = getelementptr inbounds %class.CoreParameters, ptr %793, i32 0, i32 32
  %795 = load i32, ptr %794, align 4, !tbaa !49
  %796 = sitofp i32 %795 to double
  %797 = fmul double %792, %796
  %798 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %799 = load ptr, ptr %798, align 8, !tbaa !72
  %800 = getelementptr inbounds %class.McPATComponent, ptr %799, i32 0, i32 10
  %801 = getelementptr inbounds %class.powerDef, ptr %800, i32 0, i32 0
  %802 = getelementptr inbounds %class.powerComponents, ptr %801, i32 0, i32 2
  store double %797, ptr %802, align 8, !tbaa !52
  br label %803

803:                                              ; preds = %648, %644
  %804 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 6
  %805 = load ptr, ptr %804, align 8, !tbaa !73
  %806 = icmp ne ptr %805, null
  br i1 %806, label %807, label %959

807:                                              ; preds = %803
  %808 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 6
  %809 = load ptr, ptr %808, align 8, !tbaa !73
  %810 = getelementptr inbounds %class.McPATComponent, ptr %809, i32 0, i32 8
  call void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %810)
  %811 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %812 = getelementptr inbounds %class.CoreParameters, ptr %811, i32 0, i32 18
  %813 = load i32, ptr %812, align 4, !tbaa !40
  %814 = sitofp i32 %813 to double
  %815 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 6
  %816 = load ptr, ptr %815, align 8, !tbaa !73
  %817 = getelementptr inbounds %class.McPATComponent, ptr %816, i32 0, i32 8
  %818 = getelementptr inbounds %class.statsDef, ptr %817, i32 0, i32 0
  %819 = getelementptr inbounds %class.statsComponents, ptr %818, i32 0, i32 0
  store double %814, ptr %819, align 8, !tbaa !41
  %820 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %821 = getelementptr inbounds %class.CoreParameters, ptr %820, i32 0, i32 18
  %822 = load i32, ptr %821, align 4, !tbaa !40
  %823 = sitofp i32 %822 to double
  %824 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 6
  %825 = load ptr, ptr %824, align 8, !tbaa !73
  %826 = getelementptr inbounds %class.McPATComponent, ptr %825, i32 0, i32 8
  %827 = getelementptr inbounds %class.statsDef, ptr %826, i32 0, i32 1
  %828 = getelementptr inbounds %class.statsComponents, ptr %827, i32 0, i32 0
  store double %823, ptr %828, align 8, !tbaa !65
  %829 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 6
  %830 = load ptr, ptr %829, align 8, !tbaa !73
  %831 = getelementptr inbounds %class.McPATComponent, ptr %830, i32 0, i32 9
  call void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %831)
  %832 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 12
  %833 = getelementptr inbounds %class.CoreStatistics, ptr %832, i32 0, i32 29
  %834 = load double, ptr %833, align 8, !tbaa !71
  %835 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 6
  %836 = load ptr, ptr %835, align 8, !tbaa !73
  %837 = getelementptr inbounds %class.McPATComponent, ptr %836, i32 0, i32 9
  %838 = getelementptr inbounds %class.statsDef, ptr %837, i32 0, i32 0
  %839 = getelementptr inbounds %class.statsComponents, ptr %838, i32 0, i32 0
  store double %834, ptr %839, align 8, !tbaa !43
  %840 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 12
  %841 = getelementptr inbounds %class.CoreStatistics, ptr %840, i32 0, i32 30
  %842 = load double, ptr %841, align 8, !tbaa !56
  %843 = fmul double 2.000000e+00, %842
  %844 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 6
  %845 = load ptr, ptr %844, align 8, !tbaa !73
  %846 = getelementptr inbounds %class.McPATComponent, ptr %845, i32 0, i32 9
  %847 = getelementptr inbounds %class.statsDef, ptr %846, i32 0, i32 1
  %848 = getelementptr inbounds %class.statsComponents, ptr %847, i32 0, i32 0
  store double %843, ptr %848, align 8, !tbaa !67
  %849 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 6
  %850 = load ptr, ptr %849, align 8, !tbaa !73
  %851 = getelementptr inbounds %class.McPATComponent, ptr %850, i32 0, i32 10
  call void @_ZN8powerDef5resetEv(ptr noundef nonnull align 8 dereferenceable(120) %851)
  %852 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 6
  %853 = load ptr, ptr %852, align 8, !tbaa !73
  %854 = getelementptr inbounds %class.McPATComponent, ptr %853, i32 0, i32 8
  %855 = getelementptr inbounds %class.statsDef, ptr %854, i32 0, i32 0
  %856 = getelementptr inbounds %class.statsComponents, ptr %855, i32 0, i32 0
  %857 = load double, ptr %856, align 8, !tbaa !41
  %858 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 6
  %859 = load ptr, ptr %858, align 8, !tbaa !73
  %860 = getelementptr inbounds i8, ptr %859, i64 8
  %861 = getelementptr inbounds %class.Component, ptr %860, i32 0, i32 1
  %862 = getelementptr inbounds %class.powerDef, ptr %861, i32 0, i32 0
  %863 = getelementptr inbounds %class.powerComponents, ptr %862, i32 0, i32 0
  %864 = load double, ptr %863, align 8, !tbaa !46
  %865 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 6
  %866 = load ptr, ptr %865, align 8, !tbaa !73
  %867 = getelementptr inbounds %class.McPATComponent, ptr %866, i32 0, i32 8
  %868 = getelementptr inbounds %class.statsDef, ptr %867, i32 0, i32 1
  %869 = getelementptr inbounds %class.statsComponents, ptr %868, i32 0, i32 0
  %870 = load double, ptr %869, align 8, !tbaa !65
  %871 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 6
  %872 = load ptr, ptr %871, align 8, !tbaa !73
  %873 = getelementptr inbounds i8, ptr %872, i64 8
  %874 = getelementptr inbounds %class.Component, ptr %873, i32 0, i32 1
  %875 = getelementptr inbounds %class.powerDef, ptr %874, i32 0, i32 1
  %876 = getelementptr inbounds %class.powerComponents, ptr %875, i32 0, i32 0
  %877 = load double, ptr %876, align 8, !tbaa !68
  %878 = fmul double %870, %877
  %879 = call double @llvm.fmuladd.f64(double %857, double %864, double %878)
  %880 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 6
  %881 = load ptr, ptr %880, align 8, !tbaa !73
  %882 = getelementptr inbounds %class.McPATComponent, ptr %881, i32 0, i32 10
  %883 = getelementptr inbounds %class.powerDef, ptr %882, i32 0, i32 0
  %884 = getelementptr inbounds %class.powerComponents, ptr %883, i32 0, i32 0
  %885 = load double, ptr %884, align 8, !tbaa !47
  %886 = fadd double %885, %879
  store double %886, ptr %884, align 8, !tbaa !47
  %887 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 6
  %888 = load ptr, ptr %887, align 8, !tbaa !73
  %889 = getelementptr inbounds %class.McPATComponent, ptr %888, i32 0, i32 11
  call void @_ZN8powerDef5resetEv(ptr noundef nonnull align 8 dereferenceable(120) %889)
  %890 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 6
  %891 = load ptr, ptr %890, align 8, !tbaa !73
  %892 = getelementptr inbounds %class.McPATComponent, ptr %891, i32 0, i32 9
  %893 = getelementptr inbounds %class.statsDef, ptr %892, i32 0, i32 0
  %894 = getelementptr inbounds %class.statsComponents, ptr %893, i32 0, i32 0
  %895 = load double, ptr %894, align 8, !tbaa !43
  %896 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 6
  %897 = load ptr, ptr %896, align 8, !tbaa !73
  %898 = getelementptr inbounds i8, ptr %897, i64 8
  %899 = getelementptr inbounds %class.Component, ptr %898, i32 0, i32 1
  %900 = getelementptr inbounds %class.powerDef, ptr %899, i32 0, i32 0
  %901 = getelementptr inbounds %class.powerComponents, ptr %900, i32 0, i32 0
  %902 = load double, ptr %901, align 8, !tbaa !46
  %903 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 6
  %904 = load ptr, ptr %903, align 8, !tbaa !73
  %905 = getelementptr inbounds %class.McPATComponent, ptr %904, i32 0, i32 9
  %906 = getelementptr inbounds %class.statsDef, ptr %905, i32 0, i32 1
  %907 = getelementptr inbounds %class.statsComponents, ptr %906, i32 0, i32 0
  %908 = load double, ptr %907, align 8, !tbaa !67
  %909 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 6
  %910 = load ptr, ptr %909, align 8, !tbaa !73
  %911 = getelementptr inbounds i8, ptr %910, i64 8
  %912 = getelementptr inbounds %class.Component, ptr %911, i32 0, i32 1
  %913 = getelementptr inbounds %class.powerDef, ptr %912, i32 0, i32 1
  %914 = getelementptr inbounds %class.powerComponents, ptr %913, i32 0, i32 0
  %915 = load double, ptr %914, align 8, !tbaa !68
  %916 = fmul double %908, %915
  %917 = call double @llvm.fmuladd.f64(double %895, double %902, double %916)
  %918 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 6
  %919 = load ptr, ptr %918, align 8, !tbaa !73
  %920 = getelementptr inbounds %class.McPATComponent, ptr %919, i32 0, i32 11
  %921 = getelementptr inbounds %class.powerDef, ptr %920, i32 0, i32 0
  %922 = getelementptr inbounds %class.powerComponents, ptr %921, i32 0, i32 0
  %923 = load double, ptr %922, align 8, !tbaa !53
  %924 = fadd double %923, %917
  store double %924, ptr %922, align 8, !tbaa !53
  %925 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 6
  %926 = load ptr, ptr %925, align 8, !tbaa !73
  %927 = getelementptr inbounds i8, ptr %926, i64 8
  %928 = getelementptr inbounds %class.Component, ptr %927, i32 0, i32 1
  %929 = getelementptr inbounds %class.powerDef, ptr %928, i32 0, i32 0
  %930 = getelementptr inbounds %class.powerComponents, ptr %929, i32 0, i32 1
  %931 = load double, ptr %930, align 8, !tbaa !48
  %932 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %933 = getelementptr inbounds %class.CoreParameters, ptr %932, i32 0, i32 32
  %934 = load i32, ptr %933, align 4, !tbaa !49
  %935 = sitofp i32 %934 to double
  %936 = fmul double %931, %935
  %937 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 6
  %938 = load ptr, ptr %937, align 8, !tbaa !73
  %939 = getelementptr inbounds %class.McPATComponent, ptr %938, i32 0, i32 10
  %940 = getelementptr inbounds %class.powerDef, ptr %939, i32 0, i32 0
  %941 = getelementptr inbounds %class.powerComponents, ptr %940, i32 0, i32 1
  store double %936, ptr %941, align 8, !tbaa !50
  %942 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 6
  %943 = load ptr, ptr %942, align 8, !tbaa !73
  %944 = getelementptr inbounds i8, ptr %943, i64 8
  %945 = getelementptr inbounds %class.Component, ptr %944, i32 0, i32 1
  %946 = getelementptr inbounds %class.powerDef, ptr %945, i32 0, i32 0
  %947 = getelementptr inbounds %class.powerComponents, ptr %946, i32 0, i32 2
  %948 = load double, ptr %947, align 8, !tbaa !51
  %949 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %950 = getelementptr inbounds %class.CoreParameters, ptr %949, i32 0, i32 32
  %951 = load i32, ptr %950, align 4, !tbaa !49
  %952 = sitofp i32 %951 to double
  %953 = fmul double %948, %952
  %954 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 6
  %955 = load ptr, ptr %954, align 8, !tbaa !73
  %956 = getelementptr inbounds %class.McPATComponent, ptr %955, i32 0, i32 10
  %957 = getelementptr inbounds %class.powerDef, ptr %956, i32 0, i32 0
  %958 = getelementptr inbounds %class.powerComponents, ptr %957, i32 0, i32 2
  store double %953, ptr %958, align 8, !tbaa !52
  br label %959

959:                                              ; preds = %807, %803
  %960 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %961 = load ptr, ptr %960, align 8, !tbaa !74
  %962 = icmp ne ptr %961, null
  br i1 %962, label %963, label %1223

963:                                              ; preds = %959
  %964 = getelementptr inbounds %class.McPATComponent, ptr %3, i32 0, i32 8
  call void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %964)
  %965 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %966 = getelementptr inbounds %class.CoreParameters, ptr %965, i32 0, i32 4
  %967 = load i32, ptr %966, align 8, !tbaa !75
  %968 = icmp eq i32 %967, 0
  br i1 %968, label %969, label %1003

969:                                              ; preds = %963
  %970 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %971 = load ptr, ptr %970, align 8, !tbaa !74
  %972 = getelementptr inbounds %class.ArrayST, ptr %971, i32 0, i32 1
  %973 = getelementptr inbounds %class.InputParameter, ptr %972, i32 0, i32 15
  %974 = load i32, ptr %973, align 4, !tbaa !59
  %975 = uitofp i32 %974 to double
  %976 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %977 = load ptr, ptr %976, align 8, !tbaa !74
  %978 = getelementptr inbounds %class.McPATComponent, ptr %977, i32 0, i32 8
  %979 = getelementptr inbounds %class.statsDef, ptr %978, i32 0, i32 0
  %980 = getelementptr inbounds %class.statsComponents, ptr %979, i32 0, i32 0
  store double %975, ptr %980, align 8, !tbaa !41
  %981 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %982 = load ptr, ptr %981, align 8, !tbaa !74
  %983 = getelementptr inbounds %class.ArrayST, ptr %982, i32 0, i32 1
  %984 = getelementptr inbounds %class.InputParameter, ptr %983, i32 0, i32 16
  %985 = load i32, ptr %984, align 8, !tbaa !64
  %986 = uitofp i32 %985 to double
  %987 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %988 = load ptr, ptr %987, align 8, !tbaa !74
  %989 = getelementptr inbounds %class.McPATComponent, ptr %988, i32 0, i32 8
  %990 = getelementptr inbounds %class.statsDef, ptr %989, i32 0, i32 1
  %991 = getelementptr inbounds %class.statsComponents, ptr %990, i32 0, i32 0
  store double %986, ptr %991, align 8, !tbaa !65
  %992 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %993 = load ptr, ptr %992, align 8, !tbaa !74
  %994 = getelementptr inbounds %class.ArrayST, ptr %993, i32 0, i32 1
  %995 = getelementptr inbounds %class.InputParameter, ptr %994, i32 0, i32 18
  %996 = load i32, ptr %995, align 8, !tbaa !76
  %997 = uitofp i32 %996 to double
  %998 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %999 = load ptr, ptr %998, align 8, !tbaa !74
  %1000 = getelementptr inbounds %class.McPATComponent, ptr %999, i32 0, i32 8
  %1001 = getelementptr inbounds %class.statsDef, ptr %1000, i32 0, i32 2
  %1002 = getelementptr inbounds %class.statsComponents, ptr %1001, i32 0, i32 0
  store double %997, ptr %1002, align 8, !tbaa !77
  br label %1032

1003:                                             ; preds = %963
  %1004 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %1005 = getelementptr inbounds %class.CoreParameters, ptr %1004, i32 0, i32 4
  %1006 = load i32, ptr %1005, align 8, !tbaa !75
  %1007 = icmp eq i32 %1006, 1
  br i1 %1007, label %1008, label %1031

1008:                                             ; preds = %1003
  %1009 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1010 = load ptr, ptr %1009, align 8, !tbaa !74
  %1011 = getelementptr inbounds %class.ArrayST, ptr %1010, i32 0, i32 1
  %1012 = getelementptr inbounds %class.InputParameter, ptr %1011, i32 0, i32 18
  %1013 = load i32, ptr %1012, align 8, !tbaa !76
  %1014 = uitofp i32 %1013 to double
  %1015 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1016 = load ptr, ptr %1015, align 8, !tbaa !74
  %1017 = getelementptr inbounds %class.McPATComponent, ptr %1016, i32 0, i32 8
  %1018 = getelementptr inbounds %class.statsDef, ptr %1017, i32 0, i32 0
  %1019 = getelementptr inbounds %class.statsComponents, ptr %1018, i32 0, i32 0
  store double %1014, ptr %1019, align 8, !tbaa !41
  %1020 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1021 = load ptr, ptr %1020, align 8, !tbaa !74
  %1022 = getelementptr inbounds %class.ArrayST, ptr %1021, i32 0, i32 1
  %1023 = getelementptr inbounds %class.InputParameter, ptr %1022, i32 0, i32 16
  %1024 = load i32, ptr %1023, align 8, !tbaa !64
  %1025 = uitofp i32 %1024 to double
  %1026 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1027 = load ptr, ptr %1026, align 8, !tbaa !74
  %1028 = getelementptr inbounds %class.McPATComponent, ptr %1027, i32 0, i32 8
  %1029 = getelementptr inbounds %class.statsDef, ptr %1028, i32 0, i32 1
  %1030 = getelementptr inbounds %class.statsComponents, ptr %1029, i32 0, i32 0
  store double %1025, ptr %1030, align 8, !tbaa !65
  br label %1031

1031:                                             ; preds = %1008, %1003
  br label %1032

1032:                                             ; preds = %1031, %969
  %1033 = getelementptr inbounds %class.McPATComponent, ptr %3, i32 0, i32 9
  call void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %1033)
  %1034 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 12
  %1035 = getelementptr inbounds %class.CoreStatistics, ptr %1034, i32 0, i32 27
  %1036 = load double, ptr %1035, align 8, !tbaa !42
  %1037 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1038 = load ptr, ptr %1037, align 8, !tbaa !74
  %1039 = getelementptr inbounds %class.McPATComponent, ptr %1038, i32 0, i32 9
  %1040 = getelementptr inbounds %class.statsDef, ptr %1039, i32 0, i32 0
  %1041 = getelementptr inbounds %class.statsComponents, ptr %1040, i32 0, i32 0
  store double %1036, ptr %1041, align 8, !tbaa !43
  %1042 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 12
  %1043 = getelementptr inbounds %class.CoreStatistics, ptr %1042, i32 0, i32 28
  %1044 = load double, ptr %1043, align 8, !tbaa !66
  %1045 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1046 = load ptr, ptr %1045, align 8, !tbaa !74
  %1047 = getelementptr inbounds %class.McPATComponent, ptr %1046, i32 0, i32 9
  %1048 = getelementptr inbounds %class.statsDef, ptr %1047, i32 0, i32 1
  %1049 = getelementptr inbounds %class.statsComponents, ptr %1048, i32 0, i32 0
  store double %1044, ptr %1049, align 8, !tbaa !67
  %1050 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %1051 = getelementptr inbounds %class.CoreParameters, ptr %1050, i32 0, i32 5
  %1052 = load i32, ptr %1051, align 4, !tbaa !70
  %1053 = icmp eq i32 %1052, 1
  br i1 %1053, label %1054, label %1068

1054:                                             ; preds = %1032
  %1055 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %1056 = getelementptr inbounds %class.CoreParameters, ptr %1055, i32 0, i32 4
  %1057 = load i32, ptr %1056, align 8, !tbaa !75
  %1058 = icmp eq i32 %1057, 0
  br i1 %1058, label %1059, label %1068

1059:                                             ; preds = %1054
  %1060 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 12
  %1061 = getelementptr inbounds %class.CoreStatistics, ptr %1060, i32 0, i32 25
  %1062 = load double, ptr %1061, align 8, !tbaa !78
  %1063 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1064 = load ptr, ptr %1063, align 8, !tbaa !74
  %1065 = getelementptr inbounds %class.McPATComponent, ptr %1064, i32 0, i32 9
  %1066 = getelementptr inbounds %class.statsDef, ptr %1065, i32 0, i32 2
  %1067 = getelementptr inbounds %class.statsComponents, ptr %1066, i32 0, i32 0
  store double %1062, ptr %1067, align 8, !tbaa !79
  br label %1068

1068:                                             ; preds = %1059, %1054, %1032
  %1069 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1070 = load ptr, ptr %1069, align 8, !tbaa !74
  %1071 = getelementptr inbounds %class.McPATComponent, ptr %1070, i32 0, i32 10
  call void @_ZN8powerDef5resetEv(ptr noundef nonnull align 8 dereferenceable(120) %1071)
  %1072 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1073 = load ptr, ptr %1072, align 8, !tbaa !74
  %1074 = getelementptr inbounds %class.McPATComponent, ptr %1073, i32 0, i32 8
  %1075 = getelementptr inbounds %class.statsDef, ptr %1074, i32 0, i32 0
  %1076 = getelementptr inbounds %class.statsComponents, ptr %1075, i32 0, i32 0
  %1077 = load double, ptr %1076, align 8, !tbaa !41
  %1078 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1079 = load ptr, ptr %1078, align 8, !tbaa !74
  %1080 = getelementptr inbounds %class.ArrayST, ptr %1079, i32 0, i32 6
  %1081 = getelementptr inbounds %class.uca_org_t, ptr %1080, i32 0, i32 6
  %1082 = getelementptr inbounds %class.powerDef, ptr %1081, i32 0, i32 0
  %1083 = getelementptr inbounds %class.powerComponents, ptr %1082, i32 0, i32 0
  %1084 = load double, ptr %1083, align 8, !tbaa !80
  %1085 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 7
  %1086 = load ptr, ptr %1085, align 8, !tbaa !38
  %1087 = getelementptr inbounds i8, ptr %1086, i64 8
  %1088 = getelementptr inbounds %class.Component, ptr %1087, i32 0, i32 1
  %1089 = getelementptr inbounds %class.powerDef, ptr %1088, i32 0, i32 0
  %1090 = getelementptr inbounds %class.powerComponents, ptr %1089, i32 0, i32 0
  %1091 = load double, ptr %1090, align 8, !tbaa !46
  %1092 = fadd double %1084, %1091
  %1093 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1094 = load ptr, ptr %1093, align 8, !tbaa !74
  %1095 = getelementptr inbounds %class.McPATComponent, ptr %1094, i32 0, i32 8
  %1096 = getelementptr inbounds %class.statsDef, ptr %1095, i32 0, i32 1
  %1097 = getelementptr inbounds %class.statsComponents, ptr %1096, i32 0, i32 0
  %1098 = load double, ptr %1097, align 8, !tbaa !65
  %1099 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1100 = load ptr, ptr %1099, align 8, !tbaa !74
  %1101 = getelementptr inbounds %class.ArrayST, ptr %1100, i32 0, i32 6
  %1102 = getelementptr inbounds %class.uca_org_t, ptr %1101, i32 0, i32 6
  %1103 = getelementptr inbounds %class.powerDef, ptr %1102, i32 0, i32 1
  %1104 = getelementptr inbounds %class.powerComponents, ptr %1103, i32 0, i32 0
  %1105 = load double, ptr %1104, align 8, !tbaa !81
  %1106 = fmul double %1098, %1105
  %1107 = call double @llvm.fmuladd.f64(double %1077, double %1092, double %1106)
  %1108 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1109 = load ptr, ptr %1108, align 8, !tbaa !74
  %1110 = getelementptr inbounds %class.McPATComponent, ptr %1109, i32 0, i32 8
  %1111 = getelementptr inbounds %class.statsDef, ptr %1110, i32 0, i32 2
  %1112 = getelementptr inbounds %class.statsComponents, ptr %1111, i32 0, i32 0
  %1113 = load double, ptr %1112, align 8, !tbaa !77
  %1114 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1115 = load ptr, ptr %1114, align 8, !tbaa !74
  %1116 = getelementptr inbounds %class.ArrayST, ptr %1115, i32 0, i32 6
  %1117 = getelementptr inbounds %class.uca_org_t, ptr %1116, i32 0, i32 6
  %1118 = getelementptr inbounds %class.powerDef, ptr %1117, i32 0, i32 2
  %1119 = getelementptr inbounds %class.powerComponents, ptr %1118, i32 0, i32 0
  %1120 = load double, ptr %1119, align 8, !tbaa !82
  %1121 = call double @llvm.fmuladd.f64(double %1113, double %1120, double %1107)
  %1122 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1123 = load ptr, ptr %1122, align 8, !tbaa !74
  %1124 = getelementptr inbounds %class.McPATComponent, ptr %1123, i32 0, i32 10
  %1125 = getelementptr inbounds %class.powerDef, ptr %1124, i32 0, i32 0
  %1126 = getelementptr inbounds %class.powerComponents, ptr %1125, i32 0, i32 0
  %1127 = load double, ptr %1126, align 8, !tbaa !47
  %1128 = fadd double %1127, %1121
  store double %1128, ptr %1126, align 8, !tbaa !47
  %1129 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1130 = load ptr, ptr %1129, align 8, !tbaa !74
  %1131 = getelementptr inbounds i8, ptr %1130, i64 8
  %1132 = getelementptr inbounds %class.Component, ptr %1131, i32 0, i32 1
  %1133 = getelementptr inbounds %class.powerDef, ptr %1132, i32 0, i32 0
  %1134 = getelementptr inbounds %class.powerComponents, ptr %1133, i32 0, i32 1
  %1135 = load double, ptr %1134, align 8, !tbaa !48
  %1136 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %1137 = getelementptr inbounds %class.CoreParameters, ptr %1136, i32 0, i32 32
  %1138 = load i32, ptr %1137, align 4, !tbaa !49
  %1139 = sitofp i32 %1138 to double
  %1140 = fmul double %1135, %1139
  %1141 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1142 = load ptr, ptr %1141, align 8, !tbaa !74
  %1143 = getelementptr inbounds %class.McPATComponent, ptr %1142, i32 0, i32 10
  %1144 = getelementptr inbounds %class.powerDef, ptr %1143, i32 0, i32 0
  %1145 = getelementptr inbounds %class.powerComponents, ptr %1144, i32 0, i32 1
  store double %1140, ptr %1145, align 8, !tbaa !50
  %1146 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1147 = load ptr, ptr %1146, align 8, !tbaa !74
  %1148 = getelementptr inbounds i8, ptr %1147, i64 8
  %1149 = getelementptr inbounds %class.Component, ptr %1148, i32 0, i32 1
  %1150 = getelementptr inbounds %class.powerDef, ptr %1149, i32 0, i32 0
  %1151 = getelementptr inbounds %class.powerComponents, ptr %1150, i32 0, i32 2
  %1152 = load double, ptr %1151, align 8, !tbaa !51
  %1153 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %1154 = getelementptr inbounds %class.CoreParameters, ptr %1153, i32 0, i32 32
  %1155 = load i32, ptr %1154, align 4, !tbaa !49
  %1156 = sitofp i32 %1155 to double
  %1157 = fmul double %1152, %1156
  %1158 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1159 = load ptr, ptr %1158, align 8, !tbaa !74
  %1160 = getelementptr inbounds %class.McPATComponent, ptr %1159, i32 0, i32 10
  %1161 = getelementptr inbounds %class.powerDef, ptr %1160, i32 0, i32 0
  %1162 = getelementptr inbounds %class.powerComponents, ptr %1161, i32 0, i32 2
  store double %1157, ptr %1162, align 8, !tbaa !52
  %1163 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1164 = load ptr, ptr %1163, align 8, !tbaa !74
  %1165 = getelementptr inbounds %class.McPATComponent, ptr %1164, i32 0, i32 11
  call void @_ZN8powerDef5resetEv(ptr noundef nonnull align 8 dereferenceable(120) %1165)
  %1166 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1167 = load ptr, ptr %1166, align 8, !tbaa !74
  %1168 = getelementptr inbounds %class.McPATComponent, ptr %1167, i32 0, i32 9
  %1169 = getelementptr inbounds %class.statsDef, ptr %1168, i32 0, i32 0
  %1170 = getelementptr inbounds %class.statsComponents, ptr %1169, i32 0, i32 0
  %1171 = load double, ptr %1170, align 8, !tbaa !43
  %1172 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1173 = load ptr, ptr %1172, align 8, !tbaa !74
  %1174 = getelementptr inbounds %class.ArrayST, ptr %1173, i32 0, i32 6
  %1175 = getelementptr inbounds %class.uca_org_t, ptr %1174, i32 0, i32 6
  %1176 = getelementptr inbounds %class.powerDef, ptr %1175, i32 0, i32 0
  %1177 = getelementptr inbounds %class.powerComponents, ptr %1176, i32 0, i32 0
  %1178 = load double, ptr %1177, align 8, !tbaa !80
  %1179 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 7
  %1180 = load ptr, ptr %1179, align 8, !tbaa !38
  %1181 = getelementptr inbounds i8, ptr %1180, i64 8
  %1182 = getelementptr inbounds %class.Component, ptr %1181, i32 0, i32 1
  %1183 = getelementptr inbounds %class.powerDef, ptr %1182, i32 0, i32 0
  %1184 = getelementptr inbounds %class.powerComponents, ptr %1183, i32 0, i32 0
  %1185 = load double, ptr %1184, align 8, !tbaa !46
  %1186 = fadd double %1178, %1185
  %1187 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1188 = load ptr, ptr %1187, align 8, !tbaa !74
  %1189 = getelementptr inbounds %class.McPATComponent, ptr %1188, i32 0, i32 9
  %1190 = getelementptr inbounds %class.statsDef, ptr %1189, i32 0, i32 1
  %1191 = getelementptr inbounds %class.statsComponents, ptr %1190, i32 0, i32 0
  %1192 = load double, ptr %1191, align 8, !tbaa !67
  %1193 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1194 = load ptr, ptr %1193, align 8, !tbaa !74
  %1195 = getelementptr inbounds %class.ArrayST, ptr %1194, i32 0, i32 6
  %1196 = getelementptr inbounds %class.uca_org_t, ptr %1195, i32 0, i32 6
  %1197 = getelementptr inbounds %class.powerDef, ptr %1196, i32 0, i32 1
  %1198 = getelementptr inbounds %class.powerComponents, ptr %1197, i32 0, i32 0
  %1199 = load double, ptr %1198, align 8, !tbaa !81
  %1200 = fmul double %1192, %1199
  %1201 = call double @llvm.fmuladd.f64(double %1171, double %1186, double %1200)
  %1202 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1203 = load ptr, ptr %1202, align 8, !tbaa !74
  %1204 = getelementptr inbounds %class.McPATComponent, ptr %1203, i32 0, i32 9
  %1205 = getelementptr inbounds %class.statsDef, ptr %1204, i32 0, i32 2
  %1206 = getelementptr inbounds %class.statsComponents, ptr %1205, i32 0, i32 0
  %1207 = load double, ptr %1206, align 8, !tbaa !79
  %1208 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1209 = load ptr, ptr %1208, align 8, !tbaa !74
  %1210 = getelementptr inbounds %class.ArrayST, ptr %1209, i32 0, i32 6
  %1211 = getelementptr inbounds %class.uca_org_t, ptr %1210, i32 0, i32 6
  %1212 = getelementptr inbounds %class.powerDef, ptr %1211, i32 0, i32 2
  %1213 = getelementptr inbounds %class.powerComponents, ptr %1212, i32 0, i32 0
  %1214 = load double, ptr %1213, align 8, !tbaa !82
  %1215 = call double @llvm.fmuladd.f64(double %1207, double %1214, double %1201)
  %1216 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1217 = load ptr, ptr %1216, align 8, !tbaa !74
  %1218 = getelementptr inbounds %class.McPATComponent, ptr %1217, i32 0, i32 11
  %1219 = getelementptr inbounds %class.powerDef, ptr %1218, i32 0, i32 0
  %1220 = getelementptr inbounds %class.powerComponents, ptr %1219, i32 0, i32 0
  %1221 = load double, ptr %1220, align 8, !tbaa !53
  %1222 = fadd double %1221, %1215
  store double %1222, ptr %1220, align 8, !tbaa !53
  br label %1223

1223:                                             ; preds = %1068, %959
  %1224 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1225 = load ptr, ptr %1224, align 8, !tbaa !83
  %1226 = icmp ne ptr %1225, null
  br i1 %1226, label %1227, label %1482

1227:                                             ; preds = %1223
  %1228 = getelementptr inbounds %class.McPATComponent, ptr %3, i32 0, i32 8
  call void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %1228)
  %1229 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1230 = load ptr, ptr %1229, align 8, !tbaa !83
  %1231 = getelementptr inbounds %class.ArrayST, ptr %1230, i32 0, i32 1
  %1232 = getelementptr inbounds %class.InputParameter, ptr %1231, i32 0, i32 16
  %1233 = load i32, ptr %1232, align 8, !tbaa !64
  %1234 = uitofp i32 %1233 to double
  %1235 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1236 = load ptr, ptr %1235, align 8, !tbaa !83
  %1237 = getelementptr inbounds %class.McPATComponent, ptr %1236, i32 0, i32 8
  %1238 = getelementptr inbounds %class.statsDef, ptr %1237, i32 0, i32 1
  %1239 = getelementptr inbounds %class.statsComponents, ptr %1238, i32 0, i32 0
  store double %1234, ptr %1239, align 8, !tbaa !65
  %1240 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %1241 = getelementptr inbounds %class.CoreParameters, ptr %1240, i32 0, i32 4
  %1242 = load i32, ptr %1241, align 8, !tbaa !75
  %1243 = icmp eq i32 %1242, 1
  br i1 %1243, label %1244, label %1256

1244:                                             ; preds = %1227
  %1245 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1246 = load ptr, ptr %1245, align 8, !tbaa !83
  %1247 = getelementptr inbounds %class.ArrayST, ptr %1246, i32 0, i32 1
  %1248 = getelementptr inbounds %class.InputParameter, ptr %1247, i32 0, i32 18
  %1249 = load i32, ptr %1248, align 8, !tbaa !76
  %1250 = uitofp i32 %1249 to double
  %1251 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1252 = load ptr, ptr %1251, align 8, !tbaa !83
  %1253 = getelementptr inbounds %class.McPATComponent, ptr %1252, i32 0, i32 8
  %1254 = getelementptr inbounds %class.statsDef, ptr %1253, i32 0, i32 0
  %1255 = getelementptr inbounds %class.statsComponents, ptr %1254, i32 0, i32 0
  store double %1250, ptr %1255, align 8, !tbaa !41
  br label %1291

1256:                                             ; preds = %1227
  %1257 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %1258 = getelementptr inbounds %class.CoreParameters, ptr %1257, i32 0, i32 4
  %1259 = load i32, ptr %1258, align 8, !tbaa !75
  %1260 = icmp eq i32 %1259, 0
  br i1 %1260, label %1261, label %1290

1261:                                             ; preds = %1256
  %1262 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1263 = load ptr, ptr %1262, align 8, !tbaa !83
  %1264 = getelementptr inbounds %class.ArrayST, ptr %1263, i32 0, i32 1
  %1265 = getelementptr inbounds %class.InputParameter, ptr %1264, i32 0, i32 15
  %1266 = load i32, ptr %1265, align 4, !tbaa !59
  %1267 = uitofp i32 %1266 to double
  %1268 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1269 = load ptr, ptr %1268, align 8, !tbaa !83
  %1270 = getelementptr inbounds %class.McPATComponent, ptr %1269, i32 0, i32 8
  %1271 = getelementptr inbounds %class.statsDef, ptr %1270, i32 0, i32 0
  %1272 = getelementptr inbounds %class.statsComponents, ptr %1271, i32 0, i32 0
  store double %1267, ptr %1272, align 8, !tbaa !41
  %1273 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %1274 = getelementptr inbounds %class.CoreParameters, ptr %1273, i32 0, i32 5
  %1275 = load i32, ptr %1274, align 4, !tbaa !70
  %1276 = icmp eq i32 %1275, 1
  br i1 %1276, label %1277, label %1289

1277:                                             ; preds = %1261
  %1278 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1279 = load ptr, ptr %1278, align 8, !tbaa !83
  %1280 = getelementptr inbounds %class.ArrayST, ptr %1279, i32 0, i32 1
  %1281 = getelementptr inbounds %class.InputParameter, ptr %1280, i32 0, i32 18
  %1282 = load i32, ptr %1281, align 8, !tbaa !76
  %1283 = uitofp i32 %1282 to double
  %1284 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1285 = load ptr, ptr %1284, align 8, !tbaa !83
  %1286 = getelementptr inbounds %class.McPATComponent, ptr %1285, i32 0, i32 8
  %1287 = getelementptr inbounds %class.statsDef, ptr %1286, i32 0, i32 2
  %1288 = getelementptr inbounds %class.statsComponents, ptr %1287, i32 0, i32 0
  store double %1283, ptr %1288, align 8, !tbaa !77
  br label %1289

1289:                                             ; preds = %1277, %1261
  br label %1290

1290:                                             ; preds = %1289, %1256
  br label %1291

1291:                                             ; preds = %1290, %1244
  %1292 = getelementptr inbounds %class.McPATComponent, ptr %3, i32 0, i32 9
  call void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %1292)
  %1293 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 12
  %1294 = getelementptr inbounds %class.CoreStatistics, ptr %1293, i32 0, i32 29
  %1295 = load double, ptr %1294, align 8, !tbaa !71
  %1296 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1297 = load ptr, ptr %1296, align 8, !tbaa !83
  %1298 = getelementptr inbounds %class.McPATComponent, ptr %1297, i32 0, i32 9
  %1299 = getelementptr inbounds %class.statsDef, ptr %1298, i32 0, i32 0
  %1300 = getelementptr inbounds %class.statsComponents, ptr %1299, i32 0, i32 0
  store double %1295, ptr %1300, align 8, !tbaa !43
  %1301 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 12
  %1302 = getelementptr inbounds %class.CoreStatistics, ptr %1301, i32 0, i32 30
  %1303 = load double, ptr %1302, align 8, !tbaa !56
  %1304 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1305 = load ptr, ptr %1304, align 8, !tbaa !83
  %1306 = getelementptr inbounds %class.McPATComponent, ptr %1305, i32 0, i32 9
  %1307 = getelementptr inbounds %class.statsDef, ptr %1306, i32 0, i32 1
  %1308 = getelementptr inbounds %class.statsComponents, ptr %1307, i32 0, i32 0
  store double %1303, ptr %1308, align 8, !tbaa !67
  %1309 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %1310 = getelementptr inbounds %class.CoreParameters, ptr %1309, i32 0, i32 5
  %1311 = load i32, ptr %1310, align 4, !tbaa !70
  %1312 = icmp eq i32 %1311, 1
  br i1 %1312, label %1313, label %1327

1313:                                             ; preds = %1291
  %1314 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %1315 = getelementptr inbounds %class.CoreParameters, ptr %1314, i32 0, i32 4
  %1316 = load i32, ptr %1315, align 8, !tbaa !75
  %1317 = icmp eq i32 %1316, 0
  br i1 %1317, label %1318, label %1327

1318:                                             ; preds = %1313
  %1319 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 12
  %1320 = getelementptr inbounds %class.CoreStatistics, ptr %1319, i32 0, i32 26
  %1321 = load double, ptr %1320, align 8, !tbaa !84
  %1322 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1323 = load ptr, ptr %1322, align 8, !tbaa !83
  %1324 = getelementptr inbounds %class.McPATComponent, ptr %1323, i32 0, i32 9
  %1325 = getelementptr inbounds %class.statsDef, ptr %1324, i32 0, i32 2
  %1326 = getelementptr inbounds %class.statsComponents, ptr %1325, i32 0, i32 0
  store double %1321, ptr %1326, align 8, !tbaa !79
  br label %1327

1327:                                             ; preds = %1318, %1313, %1291
  %1328 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1329 = load ptr, ptr %1328, align 8, !tbaa !83
  %1330 = getelementptr inbounds %class.McPATComponent, ptr %1329, i32 0, i32 10
  call void @_ZN8powerDef5resetEv(ptr noundef nonnull align 8 dereferenceable(120) %1330)
  %1331 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1332 = load ptr, ptr %1331, align 8, !tbaa !83
  %1333 = getelementptr inbounds %class.McPATComponent, ptr %1332, i32 0, i32 8
  %1334 = getelementptr inbounds %class.statsDef, ptr %1333, i32 0, i32 0
  %1335 = getelementptr inbounds %class.statsComponents, ptr %1334, i32 0, i32 0
  %1336 = load double, ptr %1335, align 8, !tbaa !41
  %1337 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1338 = load ptr, ptr %1337, align 8, !tbaa !83
  %1339 = getelementptr inbounds %class.ArrayST, ptr %1338, i32 0, i32 6
  %1340 = getelementptr inbounds %class.uca_org_t, ptr %1339, i32 0, i32 6
  %1341 = getelementptr inbounds %class.powerDef, ptr %1340, i32 0, i32 0
  %1342 = getelementptr inbounds %class.powerComponents, ptr %1341, i32 0, i32 0
  %1343 = load double, ptr %1342, align 8, !tbaa !80
  %1344 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 8
  %1345 = load ptr, ptr %1344, align 8, !tbaa !54
  %1346 = getelementptr inbounds i8, ptr %1345, i64 8
  %1347 = getelementptr inbounds %class.Component, ptr %1346, i32 0, i32 1
  %1348 = getelementptr inbounds %class.powerDef, ptr %1347, i32 0, i32 0
  %1349 = getelementptr inbounds %class.powerComponents, ptr %1348, i32 0, i32 0
  %1350 = load double, ptr %1349, align 8, !tbaa !46
  %1351 = fadd double %1343, %1350
  %1352 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1353 = load ptr, ptr %1352, align 8, !tbaa !83
  %1354 = getelementptr inbounds %class.McPATComponent, ptr %1353, i32 0, i32 8
  %1355 = getelementptr inbounds %class.statsDef, ptr %1354, i32 0, i32 1
  %1356 = getelementptr inbounds %class.statsComponents, ptr %1355, i32 0, i32 0
  %1357 = load double, ptr %1356, align 8, !tbaa !65
  %1358 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1359 = load ptr, ptr %1358, align 8, !tbaa !83
  %1360 = getelementptr inbounds %class.ArrayST, ptr %1359, i32 0, i32 6
  %1361 = getelementptr inbounds %class.uca_org_t, ptr %1360, i32 0, i32 6
  %1362 = getelementptr inbounds %class.powerDef, ptr %1361, i32 0, i32 1
  %1363 = getelementptr inbounds %class.powerComponents, ptr %1362, i32 0, i32 0
  %1364 = load double, ptr %1363, align 8, !tbaa !81
  %1365 = fmul double %1357, %1364
  %1366 = call double @llvm.fmuladd.f64(double %1336, double %1351, double %1365)
  %1367 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1368 = load ptr, ptr %1367, align 8, !tbaa !83
  %1369 = getelementptr inbounds %class.McPATComponent, ptr %1368, i32 0, i32 8
  %1370 = getelementptr inbounds %class.statsDef, ptr %1369, i32 0, i32 2
  %1371 = getelementptr inbounds %class.statsComponents, ptr %1370, i32 0, i32 0
  %1372 = load double, ptr %1371, align 8, !tbaa !77
  %1373 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1374 = load ptr, ptr %1373, align 8, !tbaa !83
  %1375 = getelementptr inbounds %class.ArrayST, ptr %1374, i32 0, i32 6
  %1376 = getelementptr inbounds %class.uca_org_t, ptr %1375, i32 0, i32 6
  %1377 = getelementptr inbounds %class.powerDef, ptr %1376, i32 0, i32 2
  %1378 = getelementptr inbounds %class.powerComponents, ptr %1377, i32 0, i32 0
  %1379 = load double, ptr %1378, align 8, !tbaa !82
  %1380 = call double @llvm.fmuladd.f64(double %1372, double %1379, double %1366)
  %1381 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1382 = load ptr, ptr %1381, align 8, !tbaa !83
  %1383 = getelementptr inbounds %class.McPATComponent, ptr %1382, i32 0, i32 10
  %1384 = getelementptr inbounds %class.powerDef, ptr %1383, i32 0, i32 0
  %1385 = getelementptr inbounds %class.powerComponents, ptr %1384, i32 0, i32 0
  %1386 = load double, ptr %1385, align 8, !tbaa !47
  %1387 = fadd double %1386, %1380
  store double %1387, ptr %1385, align 8, !tbaa !47
  %1388 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1389 = load ptr, ptr %1388, align 8, !tbaa !83
  %1390 = getelementptr inbounds i8, ptr %1389, i64 8
  %1391 = getelementptr inbounds %class.Component, ptr %1390, i32 0, i32 1
  %1392 = getelementptr inbounds %class.powerDef, ptr %1391, i32 0, i32 0
  %1393 = getelementptr inbounds %class.powerComponents, ptr %1392, i32 0, i32 1
  %1394 = load double, ptr %1393, align 8, !tbaa !48
  %1395 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %1396 = getelementptr inbounds %class.CoreParameters, ptr %1395, i32 0, i32 32
  %1397 = load i32, ptr %1396, align 4, !tbaa !49
  %1398 = sitofp i32 %1397 to double
  %1399 = fmul double %1394, %1398
  %1400 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1401 = load ptr, ptr %1400, align 8, !tbaa !83
  %1402 = getelementptr inbounds %class.McPATComponent, ptr %1401, i32 0, i32 10
  %1403 = getelementptr inbounds %class.powerDef, ptr %1402, i32 0, i32 0
  %1404 = getelementptr inbounds %class.powerComponents, ptr %1403, i32 0, i32 1
  store double %1399, ptr %1404, align 8, !tbaa !50
  %1405 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1406 = load ptr, ptr %1405, align 8, !tbaa !83
  %1407 = getelementptr inbounds i8, ptr %1406, i64 8
  %1408 = getelementptr inbounds %class.Component, ptr %1407, i32 0, i32 1
  %1409 = getelementptr inbounds %class.powerDef, ptr %1408, i32 0, i32 0
  %1410 = getelementptr inbounds %class.powerComponents, ptr %1409, i32 0, i32 2
  %1411 = load double, ptr %1410, align 8, !tbaa !51
  %1412 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 11
  %1413 = getelementptr inbounds %class.CoreParameters, ptr %1412, i32 0, i32 32
  %1414 = load i32, ptr %1413, align 4, !tbaa !49
  %1415 = sitofp i32 %1414 to double
  %1416 = fmul double %1411, %1415
  %1417 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1418 = load ptr, ptr %1417, align 8, !tbaa !83
  %1419 = getelementptr inbounds %class.McPATComponent, ptr %1418, i32 0, i32 10
  %1420 = getelementptr inbounds %class.powerDef, ptr %1419, i32 0, i32 0
  %1421 = getelementptr inbounds %class.powerComponents, ptr %1420, i32 0, i32 2
  store double %1416, ptr %1421, align 8, !tbaa !52
  %1422 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1423 = load ptr, ptr %1422, align 8, !tbaa !83
  %1424 = getelementptr inbounds %class.McPATComponent, ptr %1423, i32 0, i32 11
  call void @_ZN8powerDef5resetEv(ptr noundef nonnull align 8 dereferenceable(120) %1424)
  %1425 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1426 = load ptr, ptr %1425, align 8, !tbaa !83
  %1427 = getelementptr inbounds %class.McPATComponent, ptr %1426, i32 0, i32 9
  %1428 = getelementptr inbounds %class.statsDef, ptr %1427, i32 0, i32 0
  %1429 = getelementptr inbounds %class.statsComponents, ptr %1428, i32 0, i32 0
  %1430 = load double, ptr %1429, align 8, !tbaa !43
  %1431 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1432 = load ptr, ptr %1431, align 8, !tbaa !83
  %1433 = getelementptr inbounds %class.ArrayST, ptr %1432, i32 0, i32 6
  %1434 = getelementptr inbounds %class.uca_org_t, ptr %1433, i32 0, i32 6
  %1435 = getelementptr inbounds %class.powerDef, ptr %1434, i32 0, i32 0
  %1436 = getelementptr inbounds %class.powerComponents, ptr %1435, i32 0, i32 0
  %1437 = load double, ptr %1436, align 8, !tbaa !80
  %1438 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 8
  %1439 = load ptr, ptr %1438, align 8, !tbaa !54
  %1440 = getelementptr inbounds i8, ptr %1439, i64 8
  %1441 = getelementptr inbounds %class.Component, ptr %1440, i32 0, i32 1
  %1442 = getelementptr inbounds %class.powerDef, ptr %1441, i32 0, i32 0
  %1443 = getelementptr inbounds %class.powerComponents, ptr %1442, i32 0, i32 0
  %1444 = load double, ptr %1443, align 8, !tbaa !46
  %1445 = fadd double %1437, %1444
  %1446 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1447 = load ptr, ptr %1446, align 8, !tbaa !83
  %1448 = getelementptr inbounds %class.McPATComponent, ptr %1447, i32 0, i32 9
  %1449 = getelementptr inbounds %class.statsDef, ptr %1448, i32 0, i32 1
  %1450 = getelementptr inbounds %class.statsComponents, ptr %1449, i32 0, i32 0
  %1451 = load double, ptr %1450, align 8, !tbaa !67
  %1452 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1453 = load ptr, ptr %1452, align 8, !tbaa !83
  %1454 = getelementptr inbounds %class.ArrayST, ptr %1453, i32 0, i32 6
  %1455 = getelementptr inbounds %class.uca_org_t, ptr %1454, i32 0, i32 6
  %1456 = getelementptr inbounds %class.powerDef, ptr %1455, i32 0, i32 1
  %1457 = getelementptr inbounds %class.powerComponents, ptr %1456, i32 0, i32 0
  %1458 = load double, ptr %1457, align 8, !tbaa !81
  %1459 = fmul double %1451, %1458
  %1460 = call double @llvm.fmuladd.f64(double %1430, double %1445, double %1459)
  %1461 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1462 = load ptr, ptr %1461, align 8, !tbaa !83
  %1463 = getelementptr inbounds %class.McPATComponent, ptr %1462, i32 0, i32 9
  %1464 = getelementptr inbounds %class.statsDef, ptr %1463, i32 0, i32 2
  %1465 = getelementptr inbounds %class.statsComponents, ptr %1464, i32 0, i32 0
  %1466 = load double, ptr %1465, align 8, !tbaa !79
  %1467 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1468 = load ptr, ptr %1467, align 8, !tbaa !83
  %1469 = getelementptr inbounds %class.ArrayST, ptr %1468, i32 0, i32 6
  %1470 = getelementptr inbounds %class.uca_org_t, ptr %1469, i32 0, i32 6
  %1471 = getelementptr inbounds %class.powerDef, ptr %1470, i32 0, i32 2
  %1472 = getelementptr inbounds %class.powerComponents, ptr %1471, i32 0, i32 0
  %1473 = load double, ptr %1472, align 8, !tbaa !82
  %1474 = call double @llvm.fmuladd.f64(double %1466, double %1473, double %1460)
  %1475 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1476 = load ptr, ptr %1475, align 8, !tbaa !83
  %1477 = getelementptr inbounds %class.McPATComponent, ptr %1476, i32 0, i32 11
  %1478 = getelementptr inbounds %class.powerDef, ptr %1477, i32 0, i32 0
  %1479 = getelementptr inbounds %class.powerComponents, ptr %1478, i32 0, i32 0
  %1480 = load double, ptr %1479, align 8, !tbaa !53
  %1481 = fadd double %1480, %1474
  store double %1481, ptr %1479, align 8, !tbaa !53
  br label %1482

1482:                                             ; preds = %1327, %1223
  %1483 = getelementptr inbounds %class.McPATComponent, ptr %3, i32 0, i32 7
  call void @_ZN11McPATOutput5resetEv(ptr noundef nonnull align 8 dereferenceable(48) %1483)
  %1484 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1485 = load ptr, ptr %1484, align 8, !tbaa !74
  %1486 = icmp ne ptr %1485, null
  br i1 %1486, label %1487, label %1535

1487:                                             ; preds = %1482
  %1488 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1489 = load ptr, ptr %1488, align 8, !tbaa !74
  %1490 = getelementptr inbounds %class.McPATComponent, ptr %1489, i32 0, i32 10
  %1491 = getelementptr inbounds %class.powerDef, ptr %1490, i32 0, i32 0
  %1492 = getelementptr inbounds %class.powerComponents, ptr %1491, i32 0, i32 0
  %1493 = load double, ptr %1492, align 8, !tbaa !47
  %1494 = getelementptr inbounds %class.McPATComponent, ptr %3, i32 0, i32 5
  %1495 = load double, ptr %1494, align 8, !tbaa !85
  %1496 = fmul double %1493, %1495
  %1497 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1498 = load ptr, ptr %1497, align 8, !tbaa !74
  %1499 = getelementptr inbounds %class.McPATComponent, ptr %1498, i32 0, i32 7
  %1500 = getelementptr inbounds %class.McPATOutput, ptr %1499, i32 0, i32 2
  store double %1496, ptr %1500, align 8, !tbaa !86
  %1501 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1502 = load ptr, ptr %1501, align 8, !tbaa !74
  %1503 = getelementptr inbounds %class.McPATComponent, ptr %1502, i32 0, i32 10
  %1504 = getelementptr inbounds %class.powerDef, ptr %1503, i32 0, i32 0
  %1505 = getelementptr inbounds %class.powerComponents, ptr %1504, i32 0, i32 1
  %1506 = load double, ptr %1505, align 8, !tbaa !50
  %1507 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1508 = load ptr, ptr %1507, align 8, !tbaa !74
  %1509 = getelementptr inbounds %class.McPATComponent, ptr %1508, i32 0, i32 7
  %1510 = getelementptr inbounds %class.McPATOutput, ptr %1509, i32 0, i32 3
  store double %1506, ptr %1510, align 8, !tbaa !87
  %1511 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1512 = load ptr, ptr %1511, align 8, !tbaa !74
  %1513 = getelementptr inbounds %class.McPATComponent, ptr %1512, i32 0, i32 10
  %1514 = getelementptr inbounds %class.powerDef, ptr %1513, i32 0, i32 0
  %1515 = getelementptr inbounds %class.powerComponents, ptr %1514, i32 0, i32 2
  %1516 = load double, ptr %1515, align 8, !tbaa !52
  %1517 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1518 = load ptr, ptr %1517, align 8, !tbaa !74
  %1519 = getelementptr inbounds %class.McPATComponent, ptr %1518, i32 0, i32 7
  %1520 = getelementptr inbounds %class.McPATOutput, ptr %1519, i32 0, i32 4
  store double %1516, ptr %1520, align 8, !tbaa !88
  %1521 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1522 = load ptr, ptr %1521, align 8, !tbaa !74
  %1523 = getelementptr inbounds %class.McPATComponent, ptr %1522, i32 0, i32 11
  %1524 = getelementptr inbounds %class.powerDef, ptr %1523, i32 0, i32 0
  %1525 = getelementptr inbounds %class.powerComponents, ptr %1524, i32 0, i32 0
  %1526 = load double, ptr %1525, align 8, !tbaa !53
  %1527 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1528 = load ptr, ptr %1527, align 8, !tbaa !74
  %1529 = getelementptr inbounds %class.McPATComponent, ptr %1528, i32 0, i32 7
  %1530 = getelementptr inbounds %class.McPATOutput, ptr %1529, i32 0, i32 5
  store double %1526, ptr %1530, align 8, !tbaa !89
  %1531 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 1
  %1532 = load ptr, ptr %1531, align 8, !tbaa !74
  %1533 = getelementptr inbounds %class.McPATComponent, ptr %1532, i32 0, i32 7
  %1534 = getelementptr inbounds %class.McPATComponent, ptr %3, i32 0, i32 7
  call void @_ZN11McPATOutputpLERKS_(ptr noundef nonnull align 8 dereferenceable(48) %1534, ptr noundef nonnull align 8 dereferenceable(48) %1533)
  br label %1535

1535:                                             ; preds = %1487, %1482
  %1536 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1537 = load ptr, ptr %1536, align 8, !tbaa !83
  %1538 = icmp ne ptr %1537, null
  br i1 %1538, label %1539, label %1587

1539:                                             ; preds = %1535
  %1540 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1541 = load ptr, ptr %1540, align 8, !tbaa !83
  %1542 = getelementptr inbounds %class.McPATComponent, ptr %1541, i32 0, i32 10
  %1543 = getelementptr inbounds %class.powerDef, ptr %1542, i32 0, i32 0
  %1544 = getelementptr inbounds %class.powerComponents, ptr %1543, i32 0, i32 0
  %1545 = load double, ptr %1544, align 8, !tbaa !47
  %1546 = getelementptr inbounds %class.McPATComponent, ptr %3, i32 0, i32 5
  %1547 = load double, ptr %1546, align 8, !tbaa !85
  %1548 = fmul double %1545, %1547
  %1549 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1550 = load ptr, ptr %1549, align 8, !tbaa !83
  %1551 = getelementptr inbounds %class.McPATComponent, ptr %1550, i32 0, i32 7
  %1552 = getelementptr inbounds %class.McPATOutput, ptr %1551, i32 0, i32 2
  store double %1548, ptr %1552, align 8, !tbaa !86
  %1553 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1554 = load ptr, ptr %1553, align 8, !tbaa !83
  %1555 = getelementptr inbounds %class.McPATComponent, ptr %1554, i32 0, i32 10
  %1556 = getelementptr inbounds %class.powerDef, ptr %1555, i32 0, i32 0
  %1557 = getelementptr inbounds %class.powerComponents, ptr %1556, i32 0, i32 1
  %1558 = load double, ptr %1557, align 8, !tbaa !50
  %1559 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1560 = load ptr, ptr %1559, align 8, !tbaa !83
  %1561 = getelementptr inbounds %class.McPATComponent, ptr %1560, i32 0, i32 7
  %1562 = getelementptr inbounds %class.McPATOutput, ptr %1561, i32 0, i32 3
  store double %1558, ptr %1562, align 8, !tbaa !87
  %1563 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1564 = load ptr, ptr %1563, align 8, !tbaa !83
  %1565 = getelementptr inbounds %class.McPATComponent, ptr %1564, i32 0, i32 10
  %1566 = getelementptr inbounds %class.powerDef, ptr %1565, i32 0, i32 0
  %1567 = getelementptr inbounds %class.powerComponents, ptr %1566, i32 0, i32 2
  %1568 = load double, ptr %1567, align 8, !tbaa !52
  %1569 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1570 = load ptr, ptr %1569, align 8, !tbaa !83
  %1571 = getelementptr inbounds %class.McPATComponent, ptr %1570, i32 0, i32 7
  %1572 = getelementptr inbounds %class.McPATOutput, ptr %1571, i32 0, i32 4
  store double %1568, ptr %1572, align 8, !tbaa !88
  %1573 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1574 = load ptr, ptr %1573, align 8, !tbaa !83
  %1575 = getelementptr inbounds %class.McPATComponent, ptr %1574, i32 0, i32 11
  %1576 = getelementptr inbounds %class.powerDef, ptr %1575, i32 0, i32 0
  %1577 = getelementptr inbounds %class.powerComponents, ptr %1576, i32 0, i32 0
  %1578 = load double, ptr %1577, align 8, !tbaa !53
  %1579 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1580 = load ptr, ptr %1579, align 8, !tbaa !83
  %1581 = getelementptr inbounds %class.McPATComponent, ptr %1580, i32 0, i32 7
  %1582 = getelementptr inbounds %class.McPATOutput, ptr %1581, i32 0, i32 5
  store double %1578, ptr %1582, align 8, !tbaa !89
  %1583 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 2
  %1584 = load ptr, ptr %1583, align 8, !tbaa !83
  %1585 = getelementptr inbounds %class.McPATComponent, ptr %1584, i32 0, i32 7
  %1586 = getelementptr inbounds %class.McPATComponent, ptr %3, i32 0, i32 7
  call void @_ZN11McPATOutputpLERKS_(ptr noundef nonnull align 8 dereferenceable(48) %1586, ptr noundef nonnull align 8 dereferenceable(48) %1585)
  br label %1587

1587:                                             ; preds = %1539, %1535
  %1588 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %1589 = load ptr, ptr %1588, align 8, !tbaa !58
  %1590 = icmp ne ptr %1589, null
  br i1 %1590, label %1591, label %1639

1591:                                             ; preds = %1587
  %1592 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %1593 = load ptr, ptr %1592, align 8, !tbaa !58
  %1594 = getelementptr inbounds %class.McPATComponent, ptr %1593, i32 0, i32 10
  %1595 = getelementptr inbounds %class.powerDef, ptr %1594, i32 0, i32 0
  %1596 = getelementptr inbounds %class.powerComponents, ptr %1595, i32 0, i32 0
  %1597 = load double, ptr %1596, align 8, !tbaa !47
  %1598 = getelementptr inbounds %class.McPATComponent, ptr %3, i32 0, i32 5
  %1599 = load double, ptr %1598, align 8, !tbaa !85
  %1600 = fmul double %1597, %1599
  %1601 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %1602 = load ptr, ptr %1601, align 8, !tbaa !58
  %1603 = getelementptr inbounds %class.McPATComponent, ptr %1602, i32 0, i32 7
  %1604 = getelementptr inbounds %class.McPATOutput, ptr %1603, i32 0, i32 2
  store double %1600, ptr %1604, align 8, !tbaa !86
  %1605 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %1606 = load ptr, ptr %1605, align 8, !tbaa !58
  %1607 = getelementptr inbounds %class.McPATComponent, ptr %1606, i32 0, i32 10
  %1608 = getelementptr inbounds %class.powerDef, ptr %1607, i32 0, i32 0
  %1609 = getelementptr inbounds %class.powerComponents, ptr %1608, i32 0, i32 1
  %1610 = load double, ptr %1609, align 8, !tbaa !50
  %1611 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %1612 = load ptr, ptr %1611, align 8, !tbaa !58
  %1613 = getelementptr inbounds %class.McPATComponent, ptr %1612, i32 0, i32 7
  %1614 = getelementptr inbounds %class.McPATOutput, ptr %1613, i32 0, i32 3
  store double %1610, ptr %1614, align 8, !tbaa !87
  %1615 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %1616 = load ptr, ptr %1615, align 8, !tbaa !58
  %1617 = getelementptr inbounds %class.McPATComponent, ptr %1616, i32 0, i32 10
  %1618 = getelementptr inbounds %class.powerDef, ptr %1617, i32 0, i32 0
  %1619 = getelementptr inbounds %class.powerComponents, ptr %1618, i32 0, i32 2
  %1620 = load double, ptr %1619, align 8, !tbaa !52
  %1621 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %1622 = load ptr, ptr %1621, align 8, !tbaa !58
  %1623 = getelementptr inbounds %class.McPATComponent, ptr %1622, i32 0, i32 7
  %1624 = getelementptr inbounds %class.McPATOutput, ptr %1623, i32 0, i32 4
  store double %1620, ptr %1624, align 8, !tbaa !88
  %1625 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %1626 = load ptr, ptr %1625, align 8, !tbaa !58
  %1627 = getelementptr inbounds %class.McPATComponent, ptr %1626, i32 0, i32 11
  %1628 = getelementptr inbounds %class.powerDef, ptr %1627, i32 0, i32 0
  %1629 = getelementptr inbounds %class.powerComponents, ptr %1628, i32 0, i32 0
  %1630 = load double, ptr %1629, align 8, !tbaa !53
  %1631 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %1632 = load ptr, ptr %1631, align 8, !tbaa !58
  %1633 = getelementptr inbounds %class.McPATComponent, ptr %1632, i32 0, i32 7
  %1634 = getelementptr inbounds %class.McPATOutput, ptr %1633, i32 0, i32 5
  store double %1630, ptr %1634, align 8, !tbaa !89
  %1635 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 3
  %1636 = load ptr, ptr %1635, align 8, !tbaa !58
  %1637 = getelementptr inbounds %class.McPATComponent, ptr %1636, i32 0, i32 7
  %1638 = getelementptr inbounds %class.McPATComponent, ptr %3, i32 0, i32 7
  call void @_ZN11McPATOutputpLERKS_(ptr noundef nonnull align 8 dereferenceable(48) %1638, ptr noundef nonnull align 8 dereferenceable(48) %1637)
  br label %1639

1639:                                             ; preds = %1591, %1587
  %1640 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %1641 = load ptr, ptr %1640, align 8, !tbaa !72
  %1642 = icmp ne ptr %1641, null
  br i1 %1642, label %1643, label %1691

1643:                                             ; preds = %1639
  %1644 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %1645 = load ptr, ptr %1644, align 8, !tbaa !72
  %1646 = getelementptr inbounds %class.McPATComponent, ptr %1645, i32 0, i32 10
  %1647 = getelementptr inbounds %class.powerDef, ptr %1646, i32 0, i32 0
  %1648 = getelementptr inbounds %class.powerComponents, ptr %1647, i32 0, i32 0
  %1649 = load double, ptr %1648, align 8, !tbaa !47
  %1650 = getelementptr inbounds %class.McPATComponent, ptr %3, i32 0, i32 5
  %1651 = load double, ptr %1650, align 8, !tbaa !85
  %1652 = fmul double %1649, %1651
  %1653 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %1654 = load ptr, ptr %1653, align 8, !tbaa !72
  %1655 = getelementptr inbounds %class.McPATComponent, ptr %1654, i32 0, i32 7
  %1656 = getelementptr inbounds %class.McPATOutput, ptr %1655, i32 0, i32 2
  store double %1652, ptr %1656, align 8, !tbaa !86
  %1657 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %1658 = load ptr, ptr %1657, align 8, !tbaa !72
  %1659 = getelementptr inbounds %class.McPATComponent, ptr %1658, i32 0, i32 10
  %1660 = getelementptr inbounds %class.powerDef, ptr %1659, i32 0, i32 0
  %1661 = getelementptr inbounds %class.powerComponents, ptr %1660, i32 0, i32 1
  %1662 = load double, ptr %1661, align 8, !tbaa !50
  %1663 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %1664 = load ptr, ptr %1663, align 8, !tbaa !72
  %1665 = getelementptr inbounds %class.McPATComponent, ptr %1664, i32 0, i32 7
  %1666 = getelementptr inbounds %class.McPATOutput, ptr %1665, i32 0, i32 3
  store double %1662, ptr %1666, align 8, !tbaa !87
  %1667 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %1668 = load ptr, ptr %1667, align 8, !tbaa !72
  %1669 = getelementptr inbounds %class.McPATComponent, ptr %1668, i32 0, i32 10
  %1670 = getelementptr inbounds %class.powerDef, ptr %1669, i32 0, i32 0
  %1671 = getelementptr inbounds %class.powerComponents, ptr %1670, i32 0, i32 2
  %1672 = load double, ptr %1671, align 8, !tbaa !52
  %1673 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %1674 = load ptr, ptr %1673, align 8, !tbaa !72
  %1675 = getelementptr inbounds %class.McPATComponent, ptr %1674, i32 0, i32 7
  %1676 = getelementptr inbounds %class.McPATOutput, ptr %1675, i32 0, i32 4
  store double %1672, ptr %1676, align 8, !tbaa !88
  %1677 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %1678 = load ptr, ptr %1677, align 8, !tbaa !72
  %1679 = getelementptr inbounds %class.McPATComponent, ptr %1678, i32 0, i32 11
  %1680 = getelementptr inbounds %class.powerDef, ptr %1679, i32 0, i32 0
  %1681 = getelementptr inbounds %class.powerComponents, ptr %1680, i32 0, i32 0
  %1682 = load double, ptr %1681, align 8, !tbaa !53
  %1683 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %1684 = load ptr, ptr %1683, align 8, !tbaa !72
  %1685 = getelementptr inbounds %class.McPATComponent, ptr %1684, i32 0, i32 7
  %1686 = getelementptr inbounds %class.McPATOutput, ptr %1685, i32 0, i32 5
  store double %1682, ptr %1686, align 8, !tbaa !89
  %1687 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 4
  %1688 = load ptr, ptr %1687, align 8, !tbaa !72
  %1689 = getelementptr inbounds %class.McPATComponent, ptr %1688, i32 0, i32 7
  %1690 = getelementptr inbounds %class.McPATComponent, ptr %3, i32 0, i32 7
  call void @_ZN11McPATOutputpLERKS_(ptr noundef nonnull align 8 dereferenceable(48) %1690, ptr noundef nonnull align 8 dereferenceable(48) %1689)
  br label %1691

1691:                                             ; preds = %1643, %1639
  %1692 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %1693 = load ptr, ptr %1692, align 8, !tbaa !69
  %1694 = icmp ne ptr %1693, null
  br i1 %1694, label %1695, label %1743

1695:                                             ; preds = %1691
  %1696 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %1697 = load ptr, ptr %1696, align 8, !tbaa !69
  %1698 = getelementptr inbounds %class.McPATComponent, ptr %1697, i32 0, i32 10
  %1699 = getelementptr inbounds %class.powerDef, ptr %1698, i32 0, i32 0
  %1700 = getelementptr inbounds %class.powerComponents, ptr %1699, i32 0, i32 0
  %1701 = load double, ptr %1700, align 8, !tbaa !47
  %1702 = getelementptr inbounds %class.McPATComponent, ptr %3, i32 0, i32 5
  %1703 = load double, ptr %1702, align 8, !tbaa !85
  %1704 = fmul double %1701, %1703
  %1705 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %1706 = load ptr, ptr %1705, align 8, !tbaa !69
  %1707 = getelementptr inbounds %class.McPATComponent, ptr %1706, i32 0, i32 7
  %1708 = getelementptr inbounds %class.McPATOutput, ptr %1707, i32 0, i32 2
  store double %1704, ptr %1708, align 8, !tbaa !86
  %1709 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %1710 = load ptr, ptr %1709, align 8, !tbaa !69
  %1711 = getelementptr inbounds %class.McPATComponent, ptr %1710, i32 0, i32 10
  %1712 = getelementptr inbounds %class.powerDef, ptr %1711, i32 0, i32 0
  %1713 = getelementptr inbounds %class.powerComponents, ptr %1712, i32 0, i32 1
  %1714 = load double, ptr %1713, align 8, !tbaa !50
  %1715 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %1716 = load ptr, ptr %1715, align 8, !tbaa !69
  %1717 = getelementptr inbounds %class.McPATComponent, ptr %1716, i32 0, i32 7
  %1718 = getelementptr inbounds %class.McPATOutput, ptr %1717, i32 0, i32 3
  store double %1714, ptr %1718, align 8, !tbaa !87
  %1719 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %1720 = load ptr, ptr %1719, align 8, !tbaa !69
  %1721 = getelementptr inbounds %class.McPATComponent, ptr %1720, i32 0, i32 10
  %1722 = getelementptr inbounds %class.powerDef, ptr %1721, i32 0, i32 0
  %1723 = getelementptr inbounds %class.powerComponents, ptr %1722, i32 0, i32 2
  %1724 = load double, ptr %1723, align 8, !tbaa !52
  %1725 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %1726 = load ptr, ptr %1725, align 8, !tbaa !69
  %1727 = getelementptr inbounds %class.McPATComponent, ptr %1726, i32 0, i32 7
  %1728 = getelementptr inbounds %class.McPATOutput, ptr %1727, i32 0, i32 4
  store double %1724, ptr %1728, align 8, !tbaa !88
  %1729 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %1730 = load ptr, ptr %1729, align 8, !tbaa !69
  %1731 = getelementptr inbounds %class.McPATComponent, ptr %1730, i32 0, i32 11
  %1732 = getelementptr inbounds %class.powerDef, ptr %1731, i32 0, i32 0
  %1733 = getelementptr inbounds %class.powerComponents, ptr %1732, i32 0, i32 0
  %1734 = load double, ptr %1733, align 8, !tbaa !53
  %1735 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %1736 = load ptr, ptr %1735, align 8, !tbaa !69
  %1737 = getelementptr inbounds %class.McPATComponent, ptr %1736, i32 0, i32 7
  %1738 = getelementptr inbounds %class.McPATOutput, ptr %1737, i32 0, i32 5
  store double %1734, ptr %1738, align 8, !tbaa !89
  %1739 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 5
  %1740 = load ptr, ptr %1739, align 8, !tbaa !69
  %1741 = getelementptr inbounds %class.McPATComponent, ptr %1740, i32 0, i32 7
  %1742 = getelementptr inbounds %class.McPATComponent, ptr %3, i32 0, i32 7
  call void @_ZN11McPATOutputpLERKS_(ptr noundef nonnull align 8 dereferenceable(48) %1742, ptr noundef nonnull align 8 dereferenceable(48) %1741)
  br label %1743

1743:                                             ; preds = %1695, %1691
  %1744 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 6
  %1745 = load ptr, ptr %1744, align 8, !tbaa !73
  %1746 = icmp ne ptr %1745, null
  br i1 %1746, label %1747, label %1795

1747:                                             ; preds = %1743
  %1748 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 6
  %1749 = load ptr, ptr %1748, align 8, !tbaa !73
  %1750 = getelementptr inbounds %class.McPATComponent, ptr %1749, i32 0, i32 10
  %1751 = getelementptr inbounds %class.powerDef, ptr %1750, i32 0, i32 0
  %1752 = getelementptr inbounds %class.powerComponents, ptr %1751, i32 0, i32 0
  %1753 = load double, ptr %1752, align 8, !tbaa !47
  %1754 = getelementptr inbounds %class.McPATComponent, ptr %3, i32 0, i32 5
  %1755 = load double, ptr %1754, align 8, !tbaa !85
  %1756 = fmul double %1753, %1755
  %1757 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 6
  %1758 = load ptr, ptr %1757, align 8, !tbaa !73
  %1759 = getelementptr inbounds %class.McPATComponent, ptr %1758, i32 0, i32 7
  %1760 = getelementptr inbounds %class.McPATOutput, ptr %1759, i32 0, i32 2
  store double %1756, ptr %1760, align 8, !tbaa !86
  %1761 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 6
  %1762 = load ptr, ptr %1761, align 8, !tbaa !73
  %1763 = getelementptr inbounds %class.McPATComponent, ptr %1762, i32 0, i32 10
  %1764 = getelementptr inbounds %class.powerDef, ptr %1763, i32 0, i32 0
  %1765 = getelementptr inbounds %class.powerComponents, ptr %1764, i32 0, i32 1
  %1766 = load double, ptr %1765, align 8, !tbaa !50
  %1767 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 6
  %1768 = load ptr, ptr %1767, align 8, !tbaa !73
  %1769 = getelementptr inbounds %class.McPATComponent, ptr %1768, i32 0, i32 7
  %1770 = getelementptr inbounds %class.McPATOutput, ptr %1769, i32 0, i32 3
  store double %1766, ptr %1770, align 8, !tbaa !87
  %1771 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 6
  %1772 = load ptr, ptr %1771, align 8, !tbaa !73
  %1773 = getelementptr inbounds %class.McPATComponent, ptr %1772, i32 0, i32 10
  %1774 = getelementptr inbounds %class.powerDef, ptr %1773, i32 0, i32 0
  %1775 = getelementptr inbounds %class.powerComponents, ptr %1774, i32 0, i32 2
  %1776 = load double, ptr %1775, align 8, !tbaa !52
  %1777 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 6
  %1778 = load ptr, ptr %1777, align 8, !tbaa !73
  %1779 = getelementptr inbounds %class.McPATComponent, ptr %1778, i32 0, i32 7
  %1780 = getelementptr inbounds %class.McPATOutput, ptr %1779, i32 0, i32 4
  store double %1776, ptr %1780, align 8, !tbaa !88
  %1781 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 6
  %1782 = load ptr, ptr %1781, align 8, !tbaa !73
  %1783 = getelementptr inbounds %class.McPATComponent, ptr %1782, i32 0, i32 11
  %1784 = getelementptr inbounds %class.powerDef, ptr %1783, i32 0, i32 0
  %1785 = getelementptr inbounds %class.powerComponents, ptr %1784, i32 0, i32 0
  %1786 = load double, ptr %1785, align 8, !tbaa !53
  %1787 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 6
  %1788 = load ptr, ptr %1787, align 8, !tbaa !73
  %1789 = getelementptr inbounds %class.McPATComponent, ptr %1788, i32 0, i32 7
  %1790 = getelementptr inbounds %class.McPATOutput, ptr %1789, i32 0, i32 5
  store double %1786, ptr %1790, align 8, !tbaa !89
  %1791 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 6
  %1792 = load ptr, ptr %1791, align 8, !tbaa !73
  %1793 = getelementptr inbounds %class.McPATComponent, ptr %1792, i32 0, i32 7
  %1794 = getelementptr inbounds %class.McPATComponent, ptr %3, i32 0, i32 7
  call void @_ZN11McPATOutputpLERKS_(ptr noundef nonnull align 8 dereferenceable(48) %1794, ptr noundef nonnull align 8 dereferenceable(48) %1793)
  br label %1795

1795:                                             ; preds = %1747, %1743
  %1796 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 7
  %1797 = load ptr, ptr %1796, align 8, !tbaa !38
  %1798 = icmp ne ptr %1797, null
  br i1 %1798, label %1799, label %1847

1799:                                             ; preds = %1795
  %1800 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 7
  %1801 = load ptr, ptr %1800, align 8, !tbaa !38
  %1802 = getelementptr inbounds %class.McPATComponent, ptr %1801, i32 0, i32 10
  %1803 = getelementptr inbounds %class.powerDef, ptr %1802, i32 0, i32 0
  %1804 = getelementptr inbounds %class.powerComponents, ptr %1803, i32 0, i32 0
  %1805 = load double, ptr %1804, align 8, !tbaa !47
  %1806 = getelementptr inbounds %class.McPATComponent, ptr %3, i32 0, i32 5
  %1807 = load double, ptr %1806, align 8, !tbaa !85
  %1808 = fmul double %1805, %1807
  %1809 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 7
  %1810 = load ptr, ptr %1809, align 8, !tbaa !38
  %1811 = getelementptr inbounds %class.McPATComponent, ptr %1810, i32 0, i32 7
  %1812 = getelementptr inbounds %class.McPATOutput, ptr %1811, i32 0, i32 2
  store double %1808, ptr %1812, align 8, !tbaa !86
  %1813 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 7
  %1814 = load ptr, ptr %1813, align 8, !tbaa !38
  %1815 = getelementptr inbounds %class.McPATComponent, ptr %1814, i32 0, i32 10
  %1816 = getelementptr inbounds %class.powerDef, ptr %1815, i32 0, i32 0
  %1817 = getelementptr inbounds %class.powerComponents, ptr %1816, i32 0, i32 1
  %1818 = load double, ptr %1817, align 8, !tbaa !50
  %1819 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 7
  %1820 = load ptr, ptr %1819, align 8, !tbaa !38
  %1821 = getelementptr inbounds %class.McPATComponent, ptr %1820, i32 0, i32 7
  %1822 = getelementptr inbounds %class.McPATOutput, ptr %1821, i32 0, i32 3
  store double %1818, ptr %1822, align 8, !tbaa !87
  %1823 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 7
  %1824 = load ptr, ptr %1823, align 8, !tbaa !38
  %1825 = getelementptr inbounds %class.McPATComponent, ptr %1824, i32 0, i32 10
  %1826 = getelementptr inbounds %class.powerDef, ptr %1825, i32 0, i32 0
  %1827 = getelementptr inbounds %class.powerComponents, ptr %1826, i32 0, i32 2
  %1828 = load double, ptr %1827, align 8, !tbaa !52
  %1829 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 7
  %1830 = load ptr, ptr %1829, align 8, !tbaa !38
  %1831 = getelementptr inbounds %class.McPATComponent, ptr %1830, i32 0, i32 7
  %1832 = getelementptr inbounds %class.McPATOutput, ptr %1831, i32 0, i32 4
  store double %1828, ptr %1832, align 8, !tbaa !88
  %1833 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 7
  %1834 = load ptr, ptr %1833, align 8, !tbaa !38
  %1835 = getelementptr inbounds %class.McPATComponent, ptr %1834, i32 0, i32 11
  %1836 = getelementptr inbounds %class.powerDef, ptr %1835, i32 0, i32 0
  %1837 = getelementptr inbounds %class.powerComponents, ptr %1836, i32 0, i32 0
  %1838 = load double, ptr %1837, align 8, !tbaa !53
  %1839 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 7
  %1840 = load ptr, ptr %1839, align 8, !tbaa !38
  %1841 = getelementptr inbounds %class.McPATComponent, ptr %1840, i32 0, i32 7
  %1842 = getelementptr inbounds %class.McPATOutput, ptr %1841, i32 0, i32 5
  store double %1838, ptr %1842, align 8, !tbaa !89
  %1843 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 7
  %1844 = load ptr, ptr %1843, align 8, !tbaa !38
  %1845 = getelementptr inbounds %class.McPATComponent, ptr %1844, i32 0, i32 7
  %1846 = getelementptr inbounds %class.McPATComponent, ptr %3, i32 0, i32 7
  call void @_ZN11McPATOutputpLERKS_(ptr noundef nonnull align 8 dereferenceable(48) %1846, ptr noundef nonnull align 8 dereferenceable(48) %1845)
  br label %1847

1847:                                             ; preds = %1799, %1795
  %1848 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 8
  %1849 = load ptr, ptr %1848, align 8, !tbaa !54
  %1850 = icmp ne ptr %1849, null
  br i1 %1850, label %1851, label %1899

1851:                                             ; preds = %1847
  %1852 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 8
  %1853 = load ptr, ptr %1852, align 8, !tbaa !54
  %1854 = getelementptr inbounds %class.McPATComponent, ptr %1853, i32 0, i32 10
  %1855 = getelementptr inbounds %class.powerDef, ptr %1854, i32 0, i32 0
  %1856 = getelementptr inbounds %class.powerComponents, ptr %1855, i32 0, i32 0
  %1857 = load double, ptr %1856, align 8, !tbaa !47
  %1858 = getelementptr inbounds %class.McPATComponent, ptr %3, i32 0, i32 5
  %1859 = load double, ptr %1858, align 8, !tbaa !85
  %1860 = fmul double %1857, %1859
  %1861 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 8
  %1862 = load ptr, ptr %1861, align 8, !tbaa !54
  %1863 = getelementptr inbounds %class.McPATComponent, ptr %1862, i32 0, i32 7
  %1864 = getelementptr inbounds %class.McPATOutput, ptr %1863, i32 0, i32 2
  store double %1860, ptr %1864, align 8, !tbaa !86
  %1865 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 8
  %1866 = load ptr, ptr %1865, align 8, !tbaa !54
  %1867 = getelementptr inbounds %class.McPATComponent, ptr %1866, i32 0, i32 10
  %1868 = getelementptr inbounds %class.powerDef, ptr %1867, i32 0, i32 0
  %1869 = getelementptr inbounds %class.powerComponents, ptr %1868, i32 0, i32 1
  %1870 = load double, ptr %1869, align 8, !tbaa !50
  %1871 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 8
  %1872 = load ptr, ptr %1871, align 8, !tbaa !54
  %1873 = getelementptr inbounds %class.McPATComponent, ptr %1872, i32 0, i32 7
  %1874 = getelementptr inbounds %class.McPATOutput, ptr %1873, i32 0, i32 3
  store double %1870, ptr %1874, align 8, !tbaa !87
  %1875 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 8
  %1876 = load ptr, ptr %1875, align 8, !tbaa !54
  %1877 = getelementptr inbounds %class.McPATComponent, ptr %1876, i32 0, i32 10
  %1878 = getelementptr inbounds %class.powerDef, ptr %1877, i32 0, i32 0
  %1879 = getelementptr inbounds %class.powerComponents, ptr %1878, i32 0, i32 2
  %1880 = load double, ptr %1879, align 8, !tbaa !52
  %1881 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 8
  %1882 = load ptr, ptr %1881, align 8, !tbaa !54
  %1883 = getelementptr inbounds %class.McPATComponent, ptr %1882, i32 0, i32 7
  %1884 = getelementptr inbounds %class.McPATOutput, ptr %1883, i32 0, i32 4
  store double %1880, ptr %1884, align 8, !tbaa !88
  %1885 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 8
  %1886 = load ptr, ptr %1885, align 8, !tbaa !54
  %1887 = getelementptr inbounds %class.McPATComponent, ptr %1886, i32 0, i32 11
  %1888 = getelementptr inbounds %class.powerDef, ptr %1887, i32 0, i32 0
  %1889 = getelementptr inbounds %class.powerComponents, ptr %1888, i32 0, i32 0
  %1890 = load double, ptr %1889, align 8, !tbaa !53
  %1891 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 8
  %1892 = load ptr, ptr %1891, align 8, !tbaa !54
  %1893 = getelementptr inbounds %class.McPATComponent, ptr %1892, i32 0, i32 7
  %1894 = getelementptr inbounds %class.McPATOutput, ptr %1893, i32 0, i32 5
  store double %1890, ptr %1894, align 8, !tbaa !89
  %1895 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 8
  %1896 = load ptr, ptr %1895, align 8, !tbaa !54
  %1897 = getelementptr inbounds %class.McPATComponent, ptr %1896, i32 0, i32 7
  %1898 = getelementptr inbounds %class.McPATComponent, ptr %3, i32 0, i32 7
  call void @_ZN11McPATOutputpLERKS_(ptr noundef nonnull align 8 dereferenceable(48) %1898, ptr noundef nonnull align 8 dereferenceable(48) %1897)
  br label %1899

1899:                                             ; preds = %1851, %1847
  %1900 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 9
  %1901 = load ptr, ptr %1900, align 8, !tbaa !90
  %1902 = icmp ne ptr %1901, null
  br i1 %1902, label %1903, label %1908

1903:                                             ; preds = %1899
  %1904 = getelementptr inbounds %class.RENAMINGU, ptr %3, i32 0, i32 9
  %1905 = load ptr, ptr %1904, align 8, !tbaa !90
  %1906 = getelementptr inbounds %class.McPATComponent, ptr %1905, i32 0, i32 7
  %1907 = getelementptr inbounds %class.McPATComponent, ptr %3, i32 0, i32 7
  call void @_ZN11McPATOutputpLERKS_(ptr noundef nonnull align 8 dereferenceable(48) %1907, ptr noundef nonnull align 8 dereferenceable(48) %1906)
  br label %1908

1908:                                             ; preds = %1903, %1899, %7
  ret void
}

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

!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, !19, i64 2664}
!10 = !{!"_ZTS9RENAMINGU", !11, 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, !17, i64 1424, !31, i64 1792, !35, i64 2272, !19, i64 2664}
!11 = !{!"_ZTS14McPATComponent", !12, i64 8, !6, i64 288, !17, i64 296, !21, i64 664, !14, i64 696, !24, i64 704, !28, i64 728, !29, i64 776, !29, i64 944, !15, i64 1112, !15, i64 1232}
!12 = !{!"_ZTS9Component", !13, i64 0, !15, i64 24, !15, i64 144, !14, i64 264, !14, i64 272}
!13 = !{!"_ZTS4Area", !14, i64 0, !14, i64 8, !14, i64 16}
!14 = !{!"double", !7, i64 0}
!15 = !{!"_ZTS8powerDef", !16, i64 0, !16, i64 40, !16, i64 80}
!16 = !{!"_ZTS15powerComponents", !14, i64 0, !14, i64 8, !14, i64 16, !14, i64 24, !14, i64 32}
!17 = !{!"_ZTS14InputParameter", !18, i64 0, !18, i64 4, !18, i64 8, !18, i64 12, !18, i64 16, !19, i64 20, !18, i64 24, !18, i64 28, !18, i64 32, !18, i64 36, !18, i64 40, !18, i64 44, !14, i64 48, !14, i64 56, !18, i64 64, !18, i64 68, !18, i64 72, !18, i64 76, !18, i64 80, !19, i64 84, !19, i64 85, !19, i64 86, !19, i64 87, !19, i64 88, !18, i64 92, !18, i64 96, !18, i64 100, !18, i64 104, !18, i64 108, !18, i64 112, !18, i64 116, !18, i64 120, !18, i64 124, !18, i64 128, !18, i64 132, !18, i64 136, !18, i64 140, !18, i64 144, !18, i64 148, !20, i64 152, !18, i64 156, !19, i64 160, !18, i64 164, !18, i64 168, !18, i64 172, !18, i64 176, !18, i64 180, !18, i64 184, !18, i64 188, !19, i64 192, !18, i64 196, !18, i64 200, !18, i64 204, !18, i64 208, !18, i64 212, !18, i64 216, !18, i64 220, !18, i64 224, !18, i64 228, !18, i64 232, !18, i64 236, !18, i64 240, !18, i64 244, !18, i64 248, !18, i64 252, !18, i64 256, !18, i64 260, !18, i64 264, !18, i64 268, !18, i64 272, !18, i64 276, !18, i64 280, !18, i64 284, !18, i64 288, !18, i64 292, !18, i64 296, !19, i64 300, !18, i64 304, !18, i64 308, !18, i64 312, !19, i64 316, !19, i64 317, !18, i64 320, !18, i64 324, !19, i64 328, !14, i64 336, !14, i64 344, !19, i64 352, !18, i64 356, !18, i64 360, !19, i64 364}
!18 = !{!"int", !7, i64 0}
!19 = !{!"bool", !7, i64 0}
!20 = !{!"_ZTS9Wire_type", !7, i64 0}
!21 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !22, i64 0, !23, i64 8, !7, i64 16}
!22 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!23 = !{!"long", !7, i64 0}
!24 = !{!"_ZTSSt6vectorIP14McPATComponentSaIS1_EE", !25, i64 0}
!25 = !{!"_ZTSSt12_Vector_baseIP14McPATComponentSaIS1_EE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseIP14McPATComponentSaIS1_EE12_Vector_implE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseIP14McPATComponentSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!28 = !{!"_ZTS11McPATOutput", !14, i64 0, !14, i64 8, !14, i64 16, !14, i64 24, !14, i64 32, !14, i64 40}
!29 = !{!"_ZTS8statsDef", !30, i64 0, !30, i64 24, !30, i64 48, !30, i64 72, !30, i64 96, !30, i64 120, !30, i64 144}
!30 = !{!"_ZTS15statsComponents", !14, i64 0, !14, i64 8, !14, i64 16}
!31 = !{!"_ZTS14CoreParameters", !19, i64 0, !19, i64 1, !19, i64 2, !32, i64 4, !33, i64 8, !34, i64 12, !14, i64 16, !18, i64 24, !18, i64 28, !18, i64 32, !18, i64 36, !18, i64 40, !18, i64 44, !18, i64 48, !18, i64 52, !18, i64 56, !18, i64 60, !18, i64 64, !18, i64 68, !18, i64 72, !18, i64 76, !18, i64 80, !18, i64 84, !18, i64 88, !18, i64 92, !18, i64 96, !18, i64 100, !18, i64 104, !18, i64 108, !18, i64 112, !18, i64 116, !18, i64 120, !18, i64 124, !18, i64 128, !18, i64 132, !18, i64 136, !18, i64 140, !18, i64 144, !18, i64 148, !14, i64 152, !18, i64 160, !18, i64 164, !18, i64 168, !18, i64 172, !19, i64 176, !19, i64 177, !7, i64 184, !18, i64 216, !18, i64 220, !18, i64 224, !18, i64 228, !18, i64 232, !18, i64 236, !18, i64 240, !14, i64 248, !14, i64 256, !18, i64 264, !18, i64 268, !18, i64 272, !18, i64 276, !18, i64 280, !18, i64 284, !18, i64 288, !18, i64 292, !18, i64 296, !18, i64 300, !18, i64 304, !18, i64 308, !18, i64 312, !18, i64 316, !18, i64 320, !18, i64 324, !18, i64 328, !18, i64 332, !18, i64 336, !18, i64 340, !18, i64 344, !18, i64 348, !18, i64 352, !18, i64 356, !18, i64 360, !18, i64 364, !18, i64 368, !18, i64 372, !18, i64 376, !18, i64 380, !18, i64 384, !18, i64 388, !18, i64 392, !18, i64 396, !18, i64 400, !18, i64 404, !18, i64 408, !18, i64 412, !18, i64 416, !18, i64 420, !20, i64 424, !20, i64 428, !18, i64 432, !14, i64 440, !14, i64 448, !18, i64 456, !14, i64 464, !14, i64 472}
!32 = !{!"_ZTS9Core_type", !7, i64 0}
!33 = !{!"_ZTS13Renaming_type", !7, i64 0}
!34 = !{!"_ZTS14Scheduler_type", !7, i64 0}
!35 = !{!"_ZTS14CoreStatistics", !14, i64 0, !14, i64 8, !14, i64 16, !14, i64 24, !14, i64 32, !14, i64 40, !14, i64 48, !14, i64 56, !14, i64 64, !14, i64 72, !14, i64 80, !14, i64 88, !14, i64 96, !14, i64 104, !14, i64 112, !14, i64 120, !14, i64 128, !14, i64 136, !14, i64 144, !14, i64 152, !14, i64 160, !14, i64 168, !14, i64 176, !14, i64 184, !14, i64 192, !14, i64 200, !14, i64 208, !14, i64 216, !14, i64 224, !14, i64 232, !14, i64 240, !14, i64 248, !14, i64 256, !14, i64 264, !14, i64 272, !14, i64 280, !14, i64 288, !14, i64 296, !14, i64 304, !14, i64 312, !14, i64 320, !14, i64 328, !14, i64 336, !14, i64 344, !14, i64 352, !14, i64 360, !14, i64 368, !14, i64 376, !14, i64 384}
!36 = !{i8 0, i8 2}
!37 = !{}
!38 = !{!10, !6, i64 1400}
!39 = !{!10, !32, i64 1796}
!40 = !{!10, !18, i64 1860}
!41 = !{!11, !14, i64 776}
!42 = !{!10, !14, i64 2488}
!43 = !{!11, !14, i64 944}
!44 = !{!10, !18, i64 1864}
!45 = !{!10, !14, i64 2416}
!46 = !{!12, !14, i64 24}
!47 = !{!11, !14, i64 1112}
!48 = !{!12, !14, i64 32}
!49 = !{!10, !18, i64 1916}
!50 = !{!11, !14, i64 1120}
!51 = !{!12, !14, i64 40}
!52 = !{!11, !14, i64 1128}
!53 = !{!11, !14, i64 1232}
!54 = !{!10, !6, i64 1408}
!55 = !{!10, !18, i64 1884}
!56 = !{!10, !14, i64 2512}
!57 = !{!10, !14, i64 2424}
!58 = !{!10, !6, i64 1368}
!59 = !{!60, !18, i64 1420}
!60 = !{!"_ZTS7ArrayST", !11, i64 0, !17, i64 1352, !61, i64 1720, !19, i64 1724, !32, i64 1728, !19, i64 1732, !62, i64 1736, !29, i64 9936}
!61 = !{!"_ZTS9Device_ty", !7, i64 0}
!62 = !{!"_ZTS9uca_org_t", !6, i64 0, !6, i64 8, !14, i64 16, !14, i64 24, !14, i64 32, !14, i64 40, !15, i64 48, !14, i64 168, !14, i64 176, !14, i64 184, !7, i64 192, !14, i64 296, !19, i64 304, !63, i64 312, !63, i64 4256}
!63 = !{!"_ZTS17results_mem_array", !18, i64 0, !18, i64 4, !14, i64 8, !18, i64 16, !18, i64 20, !18, i64 24, !18, i64 28, !18, i64 32, !18, i64 36, !14, i64 40, !14, i64 48, !14, i64 56, !14, i64 64, !14, i64 72, !14, i64 80, !14, i64 88, !14, i64 96, !14, i64 104, !14, i64 112, !14, i64 120, !14, i64 128, !14, i64 136, !14, i64 144, !14, i64 152, !14, i64 160, !14, i64 168, !14, i64 176, !14, i64 184, !14, i64 192, !14, i64 200, !14, i64 208, !14, i64 216, !14, i64 224, !14, i64 232, !14, i64 240, !14, i64 248, !14, i64 256, !14, i64 264, !15, i64 272, !15, i64 392, !15, i64 512, !15, i64 632, !15, i64 752, !15, i64 872, !15, i64 992, !15, i64 1112, !15, i64 1232, !15, i64 1352, !15, i64 1472, !15, i64 1592, !15, i64 1712, !15, i64 1832, !15, i64 1952, !15, i64 2072, !15, i64 2192, !15, i64 2312, !15, i64 2432, !15, i64 2552, !15, i64 2672, !15, i64 2792, !15, i64 2912, !15, i64 3032, !15, i64 3152, !15, i64 3272, !15, i64 3392, !15, i64 3512, !15, i64 3632, !14, i64 3752, !14, i64 3760, !14, i64 3768, !14, i64 3776, !14, i64 3784, !14, i64 3792, !14, i64 3800, !14, i64 3808, !14, i64 3816, !14, i64 3824, !14, i64 3832, !14, i64 3840, !14, i64 3848, !14, i64 3856, !14, i64 3864, !14, i64 3872, !14, i64 3880, !14, i64 3888, !14, i64 3896, !14, i64 3904, !14, i64 3912, !14, i64 3920, !14, i64 3928, !14, i64 3936}
!64 = !{!60, !18, i64 1424}
!65 = !{!11, !14, i64 800}
!66 = !{!10, !14, i64 2496}
!67 = !{!11, !14, i64 968}
!68 = !{!12, !14, i64 64}
!69 = !{!10, !6, i64 1384}
!70 = !{!10, !34, i64 1804}
!71 = !{!10, !14, i64 2504}
!72 = !{!10, !6, i64 1376}
!73 = !{!10, !6, i64 1392}
!74 = !{!10, !6, i64 1352}
!75 = !{!10, !33, i64 1800}
!76 = !{!60, !18, i64 1432}
!77 = !{!11, !14, i64 824}
!78 = !{!10, !14, i64 2472}
!79 = !{!11, !14, i64 992}
!80 = !{!60, !14, i64 1784}
!81 = !{!60, !14, i64 1824}
!82 = !{!60, !14, i64 1864}
!83 = !{!10, !6, i64 1360}
!84 = !{!10, !14, i64 2480}
!85 = !{!11, !14, i64 696}
!86 = !{!11, !14, i64 744}
!87 = !{!11, !14, i64 752}
!88 = !{!11, !14, i64 760}
!89 = !{!11, !14, i64 768}
!90 = !{!10, !6, i64 1416}


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

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

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

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

declare void @_ZN11McPATOutput5resetEv(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #2

declare void @_ZN11McPATOutputpLERKS_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN9RENAMINGU13computeEnergyEv(ptr noundef nonnull align 8 dereferenceable(2665) %0) unnamed_addr #1 align 2 {
  %2 = getelementptr inbounds i8, ptr %0, i64 2664
  %3 = load i8, ptr %2, align 8, !tbaa !5, !range !35, !noundef !36
  %4 = trunc nuw i8 %3 to i1
  br i1 %4, label %5, label %709

5:                                                ; preds = %1
  %6 = getelementptr inbounds i8, ptr %0, i64 1400
  %7 = load ptr, ptr %6, align 8, !tbaa !37
  %8 = getelementptr inbounds i8, ptr %7, i64 776
  tail call void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %8)
  %9 = load ptr, ptr %6, align 8, !tbaa !37
  %10 = getelementptr inbounds i8, ptr %9, i64 944
  tail call void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %10)
  %11 = load ptr, ptr %6, align 8, !tbaa !37
  %12 = getelementptr inbounds i8, ptr %11, i64 1112
  tail call void @_ZN8powerDef5resetEv(ptr noundef nonnull align 8 dereferenceable(120) %12)
  %13 = load ptr, ptr %6, align 8, !tbaa !37
  %14 = getelementptr inbounds i8, ptr %13, i64 1232
  tail call void @_ZN8powerDef5resetEv(ptr noundef nonnull align 8 dereferenceable(120) %14)
  %15 = getelementptr inbounds i8, ptr %0, i64 1796
  %16 = load i32, ptr %15, align 4, !tbaa !38
  %17 = icmp eq i32 %16, 0
  %18 = load ptr, ptr %6, align 8, !tbaa !37
  br i1 %17, label %19, label %31

19:                                               ; preds = %5
  %20 = getelementptr inbounds i8, ptr %0, i64 1860
  %21 = load i32, ptr %20, align 4, !tbaa !39
  %22 = sitofp i32 %21 to double
  %23 = getelementptr inbounds i8, ptr %18, i64 776
  store double %22, ptr %23, align 8, !tbaa !40
  %24 = mul nsw i32 %21, 3
  %25 = mul nsw i32 %24, %21
  %26 = sitofp i32 %25 to double
  %27 = getelementptr inbounds i8, ptr %0, i64 2488
  %28 = load double, ptr %27, align 8, !tbaa !41
  %29 = fmul double %28, %26
  %30 = getelementptr inbounds i8, ptr %18, i64 944
  store double %29, ptr %30, align 8, !tbaa !42
  br label %44

31:                                               ; preds = %5
  %32 = getelementptr inbounds i8, ptr %0, i64 1864
  %33 = load i32, ptr %32, align 8, !tbaa !43
  %34 = icmp sgt i32 %33, 1
  br i1 %34, label %35, label %._crit_edge

._crit_edge:                                      ; preds = %31
  %.phi.trans.insert = getelementptr inbounds i8, ptr %18, i64 776
  %.pre33 = load double, ptr %.phi.trans.insert, align 8, !tbaa !40
  %.phi.trans.insert34 = getelementptr inbounds i8, ptr %18, i64 944
  %.pre35 = load double, ptr %.phi.trans.insert34, align 8, !tbaa !42
  br label %44

35:                                               ; preds = %31
  %36 = getelementptr inbounds i8, ptr %0, i64 1860
  %37 = load i32, ptr %36, align 4, !tbaa !39
  %38 = sitofp i32 %37 to double
  %39 = getelementptr inbounds i8, ptr %18, i64 776
  store double %38, ptr %39, align 8, !tbaa !40
  %40 = getelementptr inbounds i8, ptr %0, i64 2416
  %41 = load double, ptr %40, align 8, !tbaa !44
  %42 = fmul double %41, 2.000000e+00
  %43 = getelementptr inbounds i8, ptr %18, i64 944
  store double %42, ptr %43, align 8, !tbaa !42
  br label %44

44:                                               ; preds = %._crit_edge, %35, %19
  %45 = phi double [ %.pre35, %._crit_edge ], [ %42, %35 ], [ %29, %19 ]
  %46 = phi double [ %.pre33, %._crit_edge ], [ %38, %35 ], [ %22, %19 ]
  %47 = getelementptr inbounds i8, ptr %18, i64 32
  %48 = getelementptr inbounds i8, ptr %18, i64 1112
  %49 = getelementptr inbounds i8, ptr %0, i64 1916
  %50 = load i32, ptr %49, align 4, !tbaa !45
  %51 = sitofp i32 %50 to double
  %52 = load <2 x double>, ptr %47, align 8, !tbaa !46
  %53 = insertelement <2 x double> poison, double %46, i64 0
  %54 = insertelement <2 x double> %53, double %51, i64 1
  %55 = fmul <2 x double> %54, %52
  store <2 x double> %55, ptr %48, align 8, !tbaa !46
  %56 = getelementptr inbounds i8, ptr %18, i64 48
  %57 = load double, ptr %56, align 8, !tbaa !47
  %58 = fmul double %57, %51
  %59 = getelementptr inbounds i8, ptr %18, i64 1128
  store double %58, ptr %59, align 8, !tbaa !48
  %60 = extractelement <2 x double> %52, i64 0
  %61 = fmul double %60, %45
  %62 = getelementptr inbounds i8, ptr %18, i64 1232
  store double %61, ptr %62, align 8, !tbaa !49
  %63 = getelementptr inbounds i8, ptr %0, i64 1408
  %64 = load ptr, ptr %63, align 8, !tbaa !50
  %65 = getelementptr inbounds i8, ptr %64, i64 776
  tail call void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %65)
  %66 = load ptr, ptr %63, align 8, !tbaa !50
  %67 = getelementptr inbounds i8, ptr %66, i64 944
  tail call void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %67)
  %68 = load ptr, ptr %63, align 8, !tbaa !50
  %69 = getelementptr inbounds i8, ptr %68, i64 1112
  tail call void @_ZN8powerDef5resetEv(ptr noundef nonnull align 8 dereferenceable(120) %69)
  %70 = load ptr, ptr %63, align 8, !tbaa !50
  %71 = getelementptr inbounds i8, ptr %70, i64 1232
  tail call void @_ZN8powerDef5resetEv(ptr noundef nonnull align 8 dereferenceable(120) %71)
  %72 = load i32, ptr %15, align 4, !tbaa !38
  %73 = icmp eq i32 %72, 0
  %74 = load ptr, ptr %63, align 8, !tbaa !50
  br i1 %73, label %75, label %89

75:                                               ; preds = %44
  %76 = getelementptr inbounds i8, ptr %0, i64 1860
  %77 = load i32, ptr %76, align 4, !tbaa !39
  %78 = sitofp i32 %77 to double
  %79 = getelementptr inbounds i8, ptr %74, i64 776
  store double %78, ptr %79, align 8, !tbaa !40
  %80 = getelementptr inbounds i8, ptr %0, i64 1884
  %81 = load i32, ptr %80, align 4, !tbaa !51
  %82 = mul nsw i32 %81, 3
  %83 = mul nsw i32 %82, %81
  %84 = sitofp i32 %83 to double
  %85 = getelementptr inbounds i8, ptr %0, i64 2512
  %86 = load double, ptr %85, align 8, !tbaa !52
  %87 = fmul double %86, %84
  %88 = getelementptr inbounds i8, ptr %74, i64 944
  store double %87, ptr %88, align 8, !tbaa !42
  br label %101

89:                                               ; preds = %44
  %90 = getelementptr inbounds i8, ptr %0, i64 1864
  %91 = load i32, ptr %90, align 8, !tbaa !43
  %92 = icmp sgt i32 %91, 1
  br i1 %92, label %93, label %._crit_edge37

._crit_edge37:                                    ; preds = %89
  %.phi.trans.insert38 = getelementptr inbounds i8, ptr %74, i64 776
  %.pre39 = load double, ptr %.phi.trans.insert38, align 8, !tbaa !40
  %.phi.trans.insert40 = getelementptr inbounds i8, ptr %74, i64 944
  %.pre41 = load double, ptr %.phi.trans.insert40, align 8, !tbaa !42
  br label %101

93:                                               ; preds = %89
  %94 = getelementptr inbounds i8, ptr %0, i64 1860
  %95 = load i32, ptr %94, align 4, !tbaa !39
  %96 = sitofp i32 %95 to double
  %97 = getelementptr inbounds i8, ptr %74, i64 776
  store double %96, ptr %97, align 8, !tbaa !40
  %98 = getelementptr inbounds i8, ptr %0, i64 2424
  %99 = load double, ptr %98, align 8, !tbaa !53
  %100 = getelementptr inbounds i8, ptr %74, i64 944
  store double %99, ptr %100, align 8, !tbaa !42
  br label %101

101:                                              ; preds = %._crit_edge37, %93, %75
  %102 = phi double [ %.pre41, %._crit_edge37 ], [ %99, %93 ], [ %87, %75 ]
  %103 = phi double [ %.pre39, %._crit_edge37 ], [ %96, %93 ], [ %78, %75 ]
  %104 = getelementptr inbounds i8, ptr %74, i64 32
  %105 = getelementptr inbounds i8, ptr %74, i64 1112
  %106 = load i32, ptr %49, align 4, !tbaa !45
  %107 = sitofp i32 %106 to double
  %108 = load <2 x double>, ptr %104, align 8, !tbaa !46
  %109 = insertelement <2 x double> poison, double %103, i64 0
  %110 = insertelement <2 x double> %109, double %107, i64 1
  %111 = fmul <2 x double> %110, %108
  store <2 x double> %111, ptr %105, align 8, !tbaa !46
  %112 = getelementptr inbounds i8, ptr %74, i64 48
  %113 = load double, ptr %112, align 8, !tbaa !47
  %114 = fmul double %113, %107
  %115 = getelementptr inbounds i8, ptr %74, i64 1128
  store double %114, ptr %115, align 8, !tbaa !48
  %116 = extractelement <2 x double> %108, i64 0
  %117 = fmul double %116, %102
  %118 = getelementptr inbounds i8, ptr %74, i64 1232
  store double %117, ptr %118, align 8, !tbaa !49
  %119 = getelementptr inbounds i8, ptr %0, i64 1368
  %120 = load ptr, ptr %119, align 8, !tbaa !54
  %.not = icmp eq ptr %120, null
  br i1 %.not, label %176, label %121

121:                                              ; preds = %101
  %122 = getelementptr inbounds i8, ptr %120, i64 776
  tail call void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %122)
  %123 = load ptr, ptr %119, align 8, !tbaa !54
  %124 = getelementptr inbounds i8, ptr %123, i64 1420
  %125 = load i32, ptr %124, align 4, !tbaa !55
  %126 = uitofp i32 %125 to double
  %127 = getelementptr inbounds i8, ptr %123, i64 776
  store double %126, ptr %127, align 8, !tbaa !40
  %128 = getelementptr inbounds i8, ptr %123, i64 1424
  %129 = load i32, ptr %128, align 8, !tbaa !60
  %130 = uitofp i32 %129 to double
  %131 = getelementptr inbounds i8, ptr %123, i64 800
  store double %130, ptr %131, align 8, !tbaa !61
  %132 = getelementptr inbounds i8, ptr %123, i64 944
  tail call void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %132)
  %133 = getelementptr inbounds i8, ptr %0, i64 2496
  %134 = load double, ptr %133, align 8, !tbaa !62
  %135 = load ptr, ptr %119, align 8, !tbaa !54
  %136 = getelementptr inbounds i8, ptr %135, i64 944
  store double %134, ptr %136, align 8, !tbaa !42
  %137 = getelementptr inbounds i8, ptr %135, i64 968
  store double %134, ptr %137, align 8, !tbaa !63
  %138 = getelementptr inbounds i8, ptr %135, i64 1112
  tail call void @_ZN8powerDef5resetEv(ptr noundef nonnull align 8 dereferenceable(120) %138)
  %139 = load ptr, ptr %119, align 8, !tbaa !54
  %140 = getelementptr inbounds i8, ptr %139, i64 776
  %141 = load double, ptr %140, align 8, !tbaa !40
  %142 = getelementptr inbounds i8, ptr %139, i64 32
  %143 = load double, ptr %142, align 8, !tbaa !64
  %144 = getelementptr inbounds i8, ptr %139, i64 800
  %145 = load double, ptr %144, align 8, !tbaa !61
  %146 = getelementptr inbounds i8, ptr %139, i64 72
  %147 = load double, ptr %146, align 8, !tbaa !65
  %148 = fmul double %145, %147
  %149 = tail call double @llvm.fmuladd.f64(double %141, double %143, double %148)
  %150 = getelementptr inbounds i8, ptr %139, i64 1112
  %151 = load double, ptr %150, align 8, !tbaa !66
  %152 = fadd double %151, %149
  store double %152, ptr %150, align 8, !tbaa !66
  %153 = getelementptr inbounds i8, ptr %139, i64 1232
  tail call void @_ZN8powerDef5resetEv(ptr noundef nonnull align 8 dereferenceable(120) %153)
  %154 = load ptr, ptr %119, align 8, !tbaa !54
  %155 = getelementptr inbounds i8, ptr %154, i64 944
  %156 = load double, ptr %155, align 8, !tbaa !42
  %157 = getelementptr inbounds i8, ptr %154, i64 32
  %158 = load double, ptr %157, align 8, !tbaa !64
  %159 = getelementptr inbounds i8, ptr %154, i64 968
  %160 = load double, ptr %159, align 8, !tbaa !63
  %161 = getelementptr inbounds i8, ptr %154, i64 72
  %162 = load double, ptr %161, align 8, !tbaa !65
  %163 = fmul double %160, %162
  %164 = tail call double @llvm.fmuladd.f64(double %156, double %158, double %163)
  %165 = getelementptr inbounds i8, ptr %154, i64 1232
  %166 = load double, ptr %165, align 8, !tbaa !49
  %167 = fadd double %166, %164
  store double %167, ptr %165, align 8, !tbaa !49
  %168 = getelementptr inbounds i8, ptr %154, i64 40
  %169 = load i32, ptr %49, align 4, !tbaa !45
  %170 = sitofp i32 %169 to double
  %171 = getelementptr inbounds i8, ptr %154, i64 1120
  %172 = load <2 x double>, ptr %168, align 8, !tbaa !46
  %173 = insertelement <2 x double> poison, double %170, i64 0
  %174 = shufflevector <2 x double> %173, <2 x double> poison, <2 x i32> zeroinitializer
  %175 = fmul <2 x double> %172, %174
  store <2 x double> %175, ptr %171, align 8, !tbaa !46
  br label %176

176:                                              ; preds = %121, %101
  %177 = getelementptr inbounds i8, ptr %0, i64 1384
  %178 = load ptr, ptr %177, align 8, !tbaa !67
  %.not16 = icmp eq ptr %178, null
  br i1 %.not16, label %254, label %179

179:                                              ; preds = %176
  %180 = getelementptr inbounds i8, ptr %178, i64 776
  tail call void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %180)
  %181 = getelementptr inbounds i8, ptr %0, i64 1860
  %182 = load i32, ptr %181, align 4, !tbaa !39
  %183 = sitofp i32 %182 to double
  %184 = load ptr, ptr %177, align 8, !tbaa !67
  %185 = getelementptr inbounds i8, ptr %184, i64 776
  store double %183, ptr %185, align 8, !tbaa !40
  %186 = getelementptr inbounds i8, ptr %184, i64 800
  store double %183, ptr %186, align 8, !tbaa !61
  %187 = getelementptr inbounds i8, ptr %184, i64 944
  tail call void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %187)
  %188 = getelementptr inbounds i8, ptr %0, i64 1804
  %189 = load i32, ptr %188, align 4, !tbaa !68
  switch i32 %189, label %._crit_edge42 [
    i32 0, label %190
    i32 1, label %199
  ]

._crit_edge42:                                    ; preds = %179
  %.pre43 = load ptr, ptr %177, align 8, !tbaa !67
  br label %214

190:                                              ; preds = %179
  %191 = getelementptr inbounds i8, ptr %0, i64 2488
  %192 = load double, ptr %191, align 8, !tbaa !41
  %193 = load ptr, ptr %177, align 8, !tbaa !67
  %194 = getelementptr inbounds i8, ptr %193, i64 944
  store double %192, ptr %194, align 8, !tbaa !42
  %195 = getelementptr inbounds i8, ptr %0, i64 2496
  %196 = load double, ptr %195, align 8, !tbaa !62
  %197 = fmul double %196, 2.000000e+00
  %198 = getelementptr inbounds i8, ptr %193, i64 968
  store double %197, ptr %198, align 8, !tbaa !63
  br label %214

199:                                              ; preds = %179
  %200 = getelementptr inbounds i8, ptr %0, i64 2488
  %201 = load double, ptr %200, align 8, !tbaa !41
  %202 = getelementptr inbounds i8, ptr %0, i64 2504
  %203 = load double, ptr %202, align 8, !tbaa !69
  %204 = fadd double %201, %203
  %205 = load ptr, ptr %177, align 8, !tbaa !67
  %206 = getelementptr inbounds i8, ptr %205, i64 944
  store double %204, ptr %206, align 8, !tbaa !42
  %207 = getelementptr inbounds i8, ptr %0, i64 2496
  %208 = load double, ptr %207, align 8, !tbaa !62
  %209 = getelementptr inbounds i8, ptr %0, i64 2512
  %210 = load double, ptr %209, align 8, !tbaa !52
  %211 = fadd double %208, %210
  %212 = fmul double %211, 2.000000e+00
  %213 = getelementptr inbounds i8, ptr %205, i64 968
  store double %212, ptr %213, align 8, !tbaa !63
  br label %214

214:                                              ; preds = %._crit_edge42, %199, %190
  %215 = phi ptr [ %.pre43, %._crit_edge42 ], [ %205, %199 ], [ %193, %190 ]
  %216 = getelementptr inbounds i8, ptr %215, i64 1112
  tail call void @_ZN8powerDef5resetEv(ptr noundef nonnull align 8 dereferenceable(120) %216)
  %217 = load ptr, ptr %177, align 8, !tbaa !67
  %218 = getelementptr inbounds i8, ptr %217, i64 776
  %219 = load double, ptr %218, align 8, !tbaa !40
  %220 = getelementptr inbounds i8, ptr %217, i64 32
  %221 = load double, ptr %220, align 8, !tbaa !64
  %222 = getelementptr inbounds i8, ptr %217, i64 800
  %223 = load double, ptr %222, align 8, !tbaa !61
  %224 = getelementptr inbounds i8, ptr %217, i64 72
  %225 = load double, ptr %224, align 8, !tbaa !65
  %226 = fmul double %223, %225
  %227 = tail call double @llvm.fmuladd.f64(double %219, double %221, double %226)
  %228 = getelementptr inbounds i8, ptr %217, i64 1112
  %229 = load double, ptr %228, align 8, !tbaa !66
  %230 = fadd double %229, %227
  store double %230, ptr %228, align 8, !tbaa !66
  %231 = getelementptr inbounds i8, ptr %217, i64 1232
  tail call void @_ZN8powerDef5resetEv(ptr noundef nonnull align 8 dereferenceable(120) %231)
  %232 = load ptr, ptr %177, align 8, !tbaa !67
  %233 = getelementptr inbounds i8, ptr %232, i64 944
  %234 = load double, ptr %233, align 8, !tbaa !42
  %235 = getelementptr inbounds i8, ptr %232, i64 32
  %236 = load double, ptr %235, align 8, !tbaa !64
  %237 = getelementptr inbounds i8, ptr %232, i64 968
  %238 = load double, ptr %237, align 8, !tbaa !63
  %239 = getelementptr inbounds i8, ptr %232, i64 72
  %240 = load double, ptr %239, align 8, !tbaa !65
  %241 = fmul double %238, %240
  %242 = tail call double @llvm.fmuladd.f64(double %234, double %236, double %241)
  %243 = getelementptr inbounds i8, ptr %232, i64 1232
  %244 = load double, ptr %243, align 8, !tbaa !49
  %245 = fadd double %244, %242
  store double %245, ptr %243, align 8, !tbaa !49
  %246 = getelementptr inbounds i8, ptr %232, i64 40
  %247 = load i32, ptr %49, align 4, !tbaa !45
  %248 = sitofp i32 %247 to double
  %249 = getelementptr inbounds i8, ptr %232, i64 1120
  %250 = load <2 x double>, ptr %246, align 8, !tbaa !46
  %251 = insertelement <2 x double> poison, double %248, i64 0
  %252 = shufflevector <2 x double> %251, <2 x double> poison, <2 x i32> zeroinitializer
  %253 = fmul <2 x double> %250, %252
  store <2 x double> %253, ptr %249, align 8, !tbaa !46
  br label %254

254:                                              ; preds = %214, %176
  %255 = getelementptr inbounds i8, ptr %0, i64 1376
  %256 = load ptr, ptr %255, align 8, !tbaa !70
  %.not17 = icmp eq ptr %256, null
  br i1 %.not17, label %312, label %257

257:                                              ; preds = %254
  %258 = getelementptr inbounds i8, ptr %256, i64 776
  tail call void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %258)
  %259 = load ptr, ptr %255, align 8, !tbaa !70
  %260 = getelementptr inbounds i8, ptr %259, i64 1420
  %261 = load i32, ptr %260, align 4, !tbaa !55
  %262 = uitofp i32 %261 to double
  %263 = getelementptr inbounds i8, ptr %259, i64 776
  store double %262, ptr %263, align 8, !tbaa !40
  %264 = getelementptr inbounds i8, ptr %259, i64 1424
  %265 = load i32, ptr %264, align 8, !tbaa !60
  %266 = uitofp i32 %265 to double
  %267 = getelementptr inbounds i8, ptr %259, i64 800
  store double %266, ptr %267, align 8, !tbaa !61
  %268 = getelementptr inbounds i8, ptr %259, i64 944
  tail call void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %268)
  %269 = getelementptr inbounds i8, ptr %0, i64 2512
  %270 = load double, ptr %269, align 8, !tbaa !52
  %271 = load ptr, ptr %255, align 8, !tbaa !70
  %272 = getelementptr inbounds i8, ptr %271, i64 944
  store double %270, ptr %272, align 8, !tbaa !42
  %273 = getelementptr inbounds i8, ptr %271, i64 968
  store double %270, ptr %273, align 8, !tbaa !63
  %274 = getelementptr inbounds i8, ptr %271, i64 1112
  tail call void @_ZN8powerDef5resetEv(ptr noundef nonnull align 8 dereferenceable(120) %274)
  %275 = load ptr, ptr %255, align 8, !tbaa !70
  %276 = getelementptr inbounds i8, ptr %275, i64 776
  %277 = load double, ptr %276, align 8, !tbaa !40
  %278 = getelementptr inbounds i8, ptr %275, i64 32
  %279 = load double, ptr %278, align 8, !tbaa !64
  %280 = getelementptr inbounds i8, ptr %275, i64 800
  %281 = load double, ptr %280, align 8, !tbaa !61
  %282 = getelementptr inbounds i8, ptr %275, i64 72
  %283 = load double, ptr %282, align 8, !tbaa !65
  %284 = fmul double %281, %283
  %285 = tail call double @llvm.fmuladd.f64(double %277, double %279, double %284)
  %286 = getelementptr inbounds i8, ptr %275, i64 1112
  %287 = load double, ptr %286, align 8, !tbaa !66
  %288 = fadd double %287, %285
  store double %288, ptr %286, align 8, !tbaa !66
  %289 = getelementptr inbounds i8, ptr %275, i64 1232
  tail call void @_ZN8powerDef5resetEv(ptr noundef nonnull align 8 dereferenceable(120) %289)
  %290 = load ptr, ptr %255, align 8, !tbaa !70
  %291 = getelementptr inbounds i8, ptr %290, i64 944
  %292 = load double, ptr %291, align 8, !tbaa !42
  %293 = getelementptr inbounds i8, ptr %290, i64 32
  %294 = load double, ptr %293, align 8, !tbaa !64
  %295 = getelementptr inbounds i8, ptr %290, i64 968
  %296 = load double, ptr %295, align 8, !tbaa !63
  %297 = getelementptr inbounds i8, ptr %290, i64 72
  %298 = load double, ptr %297, align 8, !tbaa !65
  %299 = fmul double %296, %298
  %300 = tail call double @llvm.fmuladd.f64(double %292, double %294, double %299)
  %301 = getelementptr inbounds i8, ptr %290, i64 1232
  %302 = load double, ptr %301, align 8, !tbaa !49
  %303 = fadd double %302, %300
  store double %303, ptr %301, align 8, !tbaa !49
  %304 = getelementptr inbounds i8, ptr %290, i64 40
  %305 = load i32, ptr %49, align 4, !tbaa !45
  %306 = sitofp i32 %305 to double
  %307 = getelementptr inbounds i8, ptr %290, i64 1120
  %308 = load <2 x double>, ptr %304, align 8, !tbaa !46
  %309 = insertelement <2 x double> poison, double %306, i64 0
  %310 = shufflevector <2 x double> %309, <2 x double> poison, <2 x i32> zeroinitializer
  %311 = fmul <2 x double> %308, %310
  store <2 x double> %311, ptr %307, align 8, !tbaa !46
  br label %312

312:                                              ; preds = %257, %254
  %313 = getelementptr inbounds i8, ptr %0, i64 1392
  %314 = load ptr, ptr %313, align 8, !tbaa !71
  %.not18 = icmp eq ptr %314, null
  br i1 %.not18, label %370, label %315

315:                                              ; preds = %312
  %316 = getelementptr inbounds i8, ptr %314, i64 776
  tail call void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %316)
  %317 = getelementptr inbounds i8, ptr %0, i64 1860
  %318 = load i32, ptr %317, align 4, !tbaa !39
  %319 = sitofp i32 %318 to double
  %320 = load ptr, ptr %313, align 8, !tbaa !71
  %321 = getelementptr inbounds i8, ptr %320, i64 776
  store double %319, ptr %321, align 8, !tbaa !40
  %322 = getelementptr inbounds i8, ptr %320, i64 800
  store double %319, ptr %322, align 8, !tbaa !61
  %323 = getelementptr inbounds i8, ptr %320, i64 944
  tail call void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %323)
  %324 = getelementptr inbounds i8, ptr %0, i64 2504
  %325 = load double, ptr %324, align 8, !tbaa !69
  %326 = load ptr, ptr %313, align 8, !tbaa !71
  %327 = getelementptr inbounds i8, ptr %326, i64 944
  store double %325, ptr %327, align 8, !tbaa !42
  %328 = getelementptr inbounds i8, ptr %0, i64 2512
  %329 = load double, ptr %328, align 8, !tbaa !52
  %330 = fmul double %329, 2.000000e+00
  %331 = getelementptr inbounds i8, ptr %326, i64 968
  store double %330, ptr %331, align 8, !tbaa !63
  %332 = getelementptr inbounds i8, ptr %326, i64 1112
  tail call void @_ZN8powerDef5resetEv(ptr noundef nonnull align 8 dereferenceable(120) %332)
  %333 = load ptr, ptr %313, align 8, !tbaa !71
  %334 = getelementptr inbounds i8, ptr %333, i64 776
  %335 = load double, ptr %334, align 8, !tbaa !40
  %336 = getelementptr inbounds i8, ptr %333, i64 32
  %337 = load double, ptr %336, align 8, !tbaa !64
  %338 = getelementptr inbounds i8, ptr %333, i64 800
  %339 = load double, ptr %338, align 8, !tbaa !61
  %340 = getelementptr inbounds i8, ptr %333, i64 72
  %341 = load double, ptr %340, align 8, !tbaa !65
  %342 = fmul double %339, %341
  %343 = tail call double @llvm.fmuladd.f64(double %335, double %337, double %342)
  %344 = getelementptr inbounds i8, ptr %333, i64 1112
  %345 = load double, ptr %344, align 8, !tbaa !66
  %346 = fadd double %345, %343
  store double %346, ptr %344, align 8, !tbaa !66
  %347 = getelementptr inbounds i8, ptr %333, i64 1232
  tail call void @_ZN8powerDef5resetEv(ptr noundef nonnull align 8 dereferenceable(120) %347)
  %348 = load ptr, ptr %313, align 8, !tbaa !71
  %349 = getelementptr inbounds i8, ptr %348, i64 944
  %350 = load double, ptr %349, align 8, !tbaa !42
  %351 = getelementptr inbounds i8, ptr %348, i64 32
  %352 = load double, ptr %351, align 8, !tbaa !64
  %353 = getelementptr inbounds i8, ptr %348, i64 968
  %354 = load double, ptr %353, align 8, !tbaa !63
  %355 = getelementptr inbounds i8, ptr %348, i64 72
  %356 = load double, ptr %355, align 8, !tbaa !65
  %357 = fmul double %354, %356
  %358 = tail call double @llvm.fmuladd.f64(double %350, double %352, double %357)
  %359 = getelementptr inbounds i8, ptr %348, i64 1232
  %360 = load double, ptr %359, align 8, !tbaa !49
  %361 = fadd double %360, %358
  store double %361, ptr %359, align 8, !tbaa !49
  %362 = getelementptr inbounds i8, ptr %348, i64 40
  %363 = load i32, ptr %49, align 4, !tbaa !45
  %364 = sitofp i32 %363 to double
  %365 = getelementptr inbounds i8, ptr %348, i64 1120
  %366 = load <2 x double>, ptr %362, align 8, !tbaa !46
  %367 = insertelement <2 x double> poison, double %364, i64 0
  %368 = shufflevector <2 x double> %367, <2 x double> poison, <2 x i32> zeroinitializer
  %369 = fmul <2 x double> %366, %368
  store <2 x double> %369, ptr %365, align 8, !tbaa !46
  br label %370

370:                                              ; preds = %315, %312
  %371 = getelementptr inbounds i8, ptr %0, i64 1352
  %372 = load ptr, ptr %371, align 8, !tbaa !72
  %.not19 = icmp eq ptr %372, null
  br i1 %.not19, label %476, label %373

373:                                              ; preds = %370
  %374 = getelementptr inbounds i8, ptr %0, i64 776
  tail call void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %374)
  %375 = getelementptr inbounds i8, ptr %0, i64 1800
  %376 = load i32, ptr %375, align 8, !tbaa !73
  switch i32 %376, label %401 [
    i32 0, label %377
    i32 1, label %391
  ]

377:                                              ; preds = %373
  %378 = load ptr, ptr %371, align 8, !tbaa !72
  %379 = getelementptr inbounds i8, ptr %378, i64 1420
  %380 = load i32, ptr %379, align 4, !tbaa !55
  %381 = uitofp i32 %380 to double
  %382 = getelementptr inbounds i8, ptr %378, i64 776
  store double %381, ptr %382, align 8, !tbaa !40
  %383 = getelementptr inbounds i8, ptr %378, i64 1424
  %384 = load i32, ptr %383, align 8, !tbaa !60
  %385 = uitofp i32 %384 to double
  %386 = getelementptr inbounds i8, ptr %378, i64 800
  store double %385, ptr %386, align 8, !tbaa !61
  %387 = getelementptr inbounds i8, ptr %378, i64 1432
  %388 = load i32, ptr %387, align 8, !tbaa !74
  %389 = uitofp i32 %388 to double
  %390 = getelementptr inbounds i8, ptr %378, i64 824
  store double %389, ptr %390, align 8, !tbaa !75
  br label %401

391:                                              ; preds = %373
  %392 = load ptr, ptr %371, align 8, !tbaa !72
  %393 = getelementptr inbounds i8, ptr %392, i64 1432
  %394 = load i32, ptr %393, align 8, !tbaa !74
  %395 = uitofp i32 %394 to double
  %396 = getelementptr inbounds i8, ptr %392, i64 776
  store double %395, ptr %396, align 8, !tbaa !40
  %397 = getelementptr inbounds i8, ptr %392, i64 1424
  %398 = load i32, ptr %397, align 8, !tbaa !60
  %399 = uitofp i32 %398 to double
  %400 = getelementptr inbounds i8, ptr %392, i64 800
  store double %399, ptr %400, align 8, !tbaa !61
  br label %401

401:                                              ; preds = %373, %391, %377
  %402 = getelementptr inbounds i8, ptr %0, i64 944
  tail call void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %402)
  %403 = getelementptr inbounds i8, ptr %0, i64 2488
  %404 = load double, ptr %403, align 8, !tbaa !41
  %405 = load ptr, ptr %371, align 8, !tbaa !72
  %406 = getelementptr inbounds i8, ptr %405, i64 944
  store double %404, ptr %406, align 8, !tbaa !42
  %407 = getelementptr inbounds i8, ptr %0, i64 2496
  %408 = load double, ptr %407, align 8, !tbaa !62
  %409 = getelementptr inbounds i8, ptr %405, i64 968
  store double %408, ptr %409, align 8, !tbaa !63
  %410 = getelementptr inbounds i8, ptr %0, i64 1804
  %411 = load i32, ptr %410, align 4, !tbaa !68
  %412 = icmp eq i32 %411, 1
  %413 = load i32, ptr %375, align 8
  %414 = icmp eq i32 %413, 0
  %or.cond = select i1 %412, i1 %414, i1 false
  br i1 %or.cond, label %415, label %419

415:                                              ; preds = %401
  %416 = getelementptr inbounds i8, ptr %0, i64 2472
  %417 = load double, ptr %416, align 8, !tbaa !76
  %418 = getelementptr inbounds i8, ptr %405, i64 992
  store double %417, ptr %418, align 8, !tbaa !77
  br label %419

419:                                              ; preds = %415, %401
  %420 = getelementptr inbounds i8, ptr %405, i64 1112
  tail call void @_ZN8powerDef5resetEv(ptr noundef nonnull align 8 dereferenceable(120) %420)
  %421 = load ptr, ptr %371, align 8, !tbaa !72
  %422 = getelementptr inbounds i8, ptr %421, i64 776
  %423 = load double, ptr %422, align 8, !tbaa !40
  %424 = getelementptr inbounds i8, ptr %421, i64 1784
  %425 = load double, ptr %424, align 8, !tbaa !78
  %426 = load ptr, ptr %6, align 8, !tbaa !37
  %427 = getelementptr inbounds i8, ptr %426, i64 32
  %428 = load double, ptr %427, align 8, !tbaa !64
  %429 = fadd double %425, %428
  %430 = getelementptr inbounds i8, ptr %421, i64 800
  %431 = load double, ptr %430, align 8, !tbaa !61
  %432 = getelementptr inbounds i8, ptr %421, i64 1824
  %433 = load double, ptr %432, align 8, !tbaa !79
  %434 = fmul double %431, %433
  %435 = tail call double @llvm.fmuladd.f64(double %423, double %429, double %434)
  %436 = getelementptr inbounds i8, ptr %421, i64 824
  %437 = load double, ptr %436, align 8, !tbaa !75
  %438 = getelementptr inbounds i8, ptr %421, i64 1864
  %439 = load double, ptr %438, align 8, !tbaa !80
  %440 = tail call double @llvm.fmuladd.f64(double %437, double %439, double %435)
  %441 = getelementptr inbounds i8, ptr %421, i64 1112
  %442 = load double, ptr %441, align 8, !tbaa !66
  %443 = fadd double %442, %440
  store double %443, ptr %441, align 8, !tbaa !66
  %444 = getelementptr inbounds i8, ptr %421, i64 40
  %445 = load i32, ptr %49, align 4, !tbaa !45
  %446 = sitofp i32 %445 to double
  %447 = getelementptr inbounds i8, ptr %421, i64 1120
  %448 = load <2 x double>, ptr %444, align 8, !tbaa !46
  %449 = insertelement <2 x double> poison, double %446, i64 0
  %450 = shufflevector <2 x double> %449, <2 x double> poison, <2 x i32> zeroinitializer
  %451 = fmul <2 x double> %448, %450
  store <2 x double> %451, ptr %447, align 8, !tbaa !46
  %452 = getelementptr inbounds i8, ptr %421, i64 1232
  tail call void @_ZN8powerDef5resetEv(ptr noundef nonnull align 8 dereferenceable(120) %452)
  %453 = load ptr, ptr %371, align 8, !tbaa !72
  %454 = getelementptr inbounds i8, ptr %453, i64 944
  %455 = load double, ptr %454, align 8, !tbaa !42
  %456 = getelementptr inbounds i8, ptr %453, i64 1784
  %457 = load double, ptr %456, align 8, !tbaa !78
  %458 = load ptr, ptr %6, align 8, !tbaa !37
  %459 = getelementptr inbounds i8, ptr %458, i64 32
  %460 = load double, ptr %459, align 8, !tbaa !64
  %461 = fadd double %457, %460
  %462 = getelementptr inbounds i8, ptr %453, i64 968
  %463 = load double, ptr %462, align 8, !tbaa !63
  %464 = getelementptr inbounds i8, ptr %453, i64 1824
  %465 = load double, ptr %464, align 8, !tbaa !79
  %466 = fmul double %463, %465
  %467 = tail call double @llvm.fmuladd.f64(double %455, double %461, double %466)
  %468 = getelementptr inbounds i8, ptr %453, i64 992
  %469 = load double, ptr %468, align 8, !tbaa !77
  %470 = getelementptr inbounds i8, ptr %453, i64 1864
  %471 = load double, ptr %470, align 8, !tbaa !80
  %472 = tail call double @llvm.fmuladd.f64(double %469, double %471, double %467)
  %473 = getelementptr inbounds i8, ptr %453, i64 1232
  %474 = load double, ptr %473, align 8, !tbaa !49
  %475 = fadd double %474, %472
  store double %475, ptr %473, align 8, !tbaa !49
  br label %476

476:                                              ; preds = %419, %370
  %477 = getelementptr inbounds i8, ptr %0, i64 1360
  %478 = load ptr, ptr %477, align 8, !tbaa !81
  %.not20 = icmp eq ptr %478, null
  br i1 %.not20, label %575, label %479

479:                                              ; preds = %476
  %480 = getelementptr inbounds i8, ptr %0, i64 776
  tail call void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %480)
  %481 = load ptr, ptr %477, align 8, !tbaa !81
  %482 = getelementptr inbounds i8, ptr %481, i64 1424
  %483 = load i32, ptr %482, align 8, !tbaa !60
  %484 = uitofp i32 %483 to double
  %485 = getelementptr inbounds i8, ptr %481, i64 800
  store double %484, ptr %485, align 8, !tbaa !61
  %486 = getelementptr inbounds i8, ptr %0, i64 1800
  %487 = load i32, ptr %486, align 8, !tbaa !73
  switch i32 %487, label %500 [
    i32 1, label %.sink.split
    i32 0, label %488
  ]

488:                                              ; preds = %479
  %489 = getelementptr inbounds i8, ptr %481, i64 1420
  %490 = load i32, ptr %489, align 4, !tbaa !55
  %491 = uitofp i32 %490 to double
  %492 = getelementptr inbounds i8, ptr %481, i64 776
  store double %491, ptr %492, align 8, !tbaa !40
  %493 = getelementptr inbounds i8, ptr %0, i64 1804
  %494 = load i32, ptr %493, align 4, !tbaa !68
  %495 = icmp eq i32 %494, 1
  br i1 %495, label %.sink.split, label %500

.sink.split:                                      ; preds = %488, %479
  %.sink45 = phi i64 [ 776, %479 ], [ 824, %488 ]
  %496 = getelementptr inbounds i8, ptr %481, i64 1432
  %497 = load i32, ptr %496, align 8, !tbaa !74
  %498 = uitofp i32 %497 to double
  %499 = getelementptr inbounds i8, ptr %481, i64 %.sink45
  store double %498, ptr %499, align 8, !tbaa !46
  br label %500

500:                                              ; preds = %.sink.split, %479, %488
  %501 = getelementptr inbounds i8, ptr %0, i64 944
  tail call void @_ZN8statsDef5resetEv(ptr noundef nonnull align 8 dereferenceable(168) %501)
  %502 = getelementptr inbounds i8, ptr %0, i64 2504
  %503 = load double, ptr %502, align 8, !tbaa !69
  %504 = load ptr, ptr %477, align 8, !tbaa !81
  %505 = getelementptr inbounds i8, ptr %504, i64 944
  store double %503, ptr %505, align 8, !tbaa !42
  %506 = getelementptr inbounds i8, ptr %0, i64 2512
  %507 = load double, ptr %506, align 8, !tbaa !52
  %508 = getelementptr inbounds i8, ptr %504, i64 968
  store double %507, ptr %508, align 8, !tbaa !63
  %509 = getelementptr inbounds i8, ptr %0, i64 1804
  %510 = load i32, ptr %509, align 4, !tbaa !68
  %511 = icmp eq i32 %510, 1
  %512 = load i32, ptr %486, align 8
  %513 = icmp eq i32 %512, 0
  %or.cond32 = select i1 %511, i1 %513, i1 false
  br i1 %or.cond32, label %514, label %518

514:                                              ; preds = %500
  %515 = getelementptr inbounds i8, ptr %0, i64 2480
  %516 = load double, ptr %515, align 8, !tbaa !82
  %517 = getelementptr inbounds i8, ptr %504, i64 992
  store double %516, ptr %517, align 8, !tbaa !77
  br label %518

518:                                              ; preds = %514, %500
  %519 = getelementptr inbounds i8, ptr %504, i64 1112
  tail call void @_ZN8powerDef5resetEv(ptr noundef nonnull align 8 dereferenceable(120) %519)
  %520 = load ptr, ptr %477, align 8, !tbaa !81
  %521 = getelementptr inbounds i8, ptr %520, i64 776
  %522 = load double, ptr %521, align 8, !tbaa !40
  %523 = getelementptr inbounds i8, ptr %520, i64 1784
  %524 = load double, ptr %523, align 8, !tbaa !78
  %525 = load ptr, ptr %63, align 8, !tbaa !50
  %526 = getelementptr inbounds i8, ptr %525, i64 32
  %527 = load double, ptr %526, align 8, !tbaa !64
  %528 = fadd double %524, %527
  %529 = getelementptr inbounds i8, ptr %520, i64 800
  %530 = load double, ptr %529, align 8, !tbaa !61
  %531 = getelementptr inbounds i8, ptr %520, i64 1824
  %532 = load double, ptr %531, align 8, !tbaa !79
  %533 = fmul double %530, %532
  %534 = tail call double @llvm.fmuladd.f64(double %522, double %528, double %533)
  %535 = getelementptr inbounds i8, ptr %520, i64 824
  %536 = load double, ptr %535, align 8, !tbaa !75
  %537 = getelementptr inbounds i8, ptr %520, i64 1864
  %538 = load double, ptr %537, align 8, !tbaa !80
  %539 = tail call double @llvm.fmuladd.f64(double %536, double %538, double %534)
  %540 = getelementptr inbounds i8, ptr %520, i64 1112
  %541 = load double, ptr %540, align 8, !tbaa !66
  %542 = fadd double %541, %539
  store double %542, ptr %540, align 8, !tbaa !66
  %543 = getelementptr inbounds i8, ptr %520, i64 40
  %544 = load i32, ptr %49, align 4, !tbaa !45
  %545 = sitofp i32 %544 to double
  %546 = getelementptr inbounds i8, ptr %520, i64 1120
  %547 = load <2 x double>, ptr %543, align 8, !tbaa !46
  %548 = insertelement <2 x double> poison, double %545, i64 0
  %549 = shufflevector <2 x double> %548, <2 x double> poison, <2 x i32> zeroinitializer
  %550 = fmul <2 x double> %547, %549
  store <2 x double> %550, ptr %546, align 8, !tbaa !46
  %551 = getelementptr inbounds i8, ptr %520, i64 1232
  tail call void @_ZN8powerDef5resetEv(ptr noundef nonnull align 8 dereferenceable(120) %551)
  %552 = load ptr, ptr %477, align 8, !tbaa !81
  %553 = getelementptr inbounds i8, ptr %552, i64 944
  %554 = load double, ptr %553, align 8, !tbaa !42
  %555 = getelementptr inbounds i8, ptr %552, i64 1784
  %556 = load double, ptr %555, align 8, !tbaa !78
  %557 = load ptr, ptr %63, align 8, !tbaa !50
  %558 = getelementptr inbounds i8, ptr %557, i64 32
  %559 = load double, ptr %558, align 8, !tbaa !64
  %560 = fadd double %556, %559
  %561 = getelementptr inbounds i8, ptr %552, i64 968
  %562 = load double, ptr %561, align 8, !tbaa !63
  %563 = getelementptr inbounds i8, ptr %552, i64 1824
  %564 = load double, ptr %563, align 8, !tbaa !79
  %565 = fmul double %562, %564
  %566 = tail call double @llvm.fmuladd.f64(double %554, double %560, double %565)
  %567 = getelementptr inbounds i8, ptr %552, i64 992
  %568 = load double, ptr %567, align 8, !tbaa !77
  %569 = getelementptr inbounds i8, ptr %552, i64 1864
  %570 = load double, ptr %569, align 8, !tbaa !80
  %571 = tail call double @llvm.fmuladd.f64(double %568, double %570, double %566)
  %572 = getelementptr inbounds i8, ptr %552, i64 1232
  %573 = load double, ptr %572, align 8, !tbaa !49
  %574 = fadd double %573, %571
  store double %574, ptr %572, align 8, !tbaa !49
  br label %575

575:                                              ; preds = %518, %476
  %576 = getelementptr inbounds i8, ptr %0, i64 728
  tail call void @_ZN11McPATOutput5resetEv(ptr noundef nonnull align 8 dereferenceable(48) %576)
  %577 = load ptr, ptr %371, align 8, !tbaa !72
  %.not21 = icmp eq ptr %577, null
  br i1 %.not21, label %592, label %578

578:                                              ; preds = %575
  %579 = getelementptr inbounds i8, ptr %577, i64 1112
  %580 = load double, ptr %579, align 8, !tbaa !66
  %581 = getelementptr inbounds i8, ptr %0, i64 696
  %582 = load double, ptr %581, align 8, !tbaa !83
  %583 = fmul double %580, %582
  %584 = getelementptr inbounds i8, ptr %577, i64 744
  store double %583, ptr %584, align 8, !tbaa !84
  %585 = getelementptr inbounds i8, ptr %577, i64 1120
  %586 = getelementptr inbounds i8, ptr %577, i64 752
  %587 = load <2 x double>, ptr %585, align 8, !tbaa !46
  store <2 x double> %587, ptr %586, align 8, !tbaa !46
  %588 = getelementptr inbounds i8, ptr %577, i64 1232
  %589 = load double, ptr %588, align 8, !tbaa !49
  %590 = getelementptr inbounds i8, ptr %577, i64 768
  store double %589, ptr %590, align 8, !tbaa !85
  %591 = getelementptr inbounds i8, ptr %577, i64 728
  tail call void @_ZN11McPATOutputpLERKS_(ptr noundef nonnull align 8 dereferenceable(48) %576, ptr noundef nonnull align 8 dereferenceable(48) %591)
  br label %592

592:                                              ; preds = %578, %575
  %593 = load ptr, ptr %477, align 8, !tbaa !81
  %.not22 = icmp eq ptr %593, null
  br i1 %.not22, label %608, label %594

594:                                              ; preds = %592
  %595 = getelementptr inbounds i8, ptr %593, i64 1112
  %596 = load double, ptr %595, align 8, !tbaa !66
  %597 = getelementptr inbounds i8, ptr %0, i64 696
  %598 = load double, ptr %597, align 8, !tbaa !83
  %599 = fmul double %596, %598
  %600 = getelementptr inbounds i8, ptr %593, i64 744
  store double %599, ptr %600, align 8, !tbaa !84
  %601 = getelementptr inbounds i8, ptr %593, i64 1120
  %602 = getelementptr inbounds i8, ptr %593, i64 752
  %603 = load <2 x double>, ptr %601, align 8, !tbaa !46
  store <2 x double> %603, ptr %602, align 8, !tbaa !46
  %604 = getelementptr inbounds i8, ptr %593, i64 1232
  %605 = load double, ptr %604, align 8, !tbaa !49
  %606 = getelementptr inbounds i8, ptr %593, i64 768
  store double %605, ptr %606, align 8, !tbaa !85
  %607 = getelementptr inbounds i8, ptr %593, i64 728
  tail call void @_ZN11McPATOutputpLERKS_(ptr noundef nonnull align 8 dereferenceable(48) %576, ptr noundef nonnull align 8 dereferenceable(48) %607)
  br label %608

608:                                              ; preds = %594, %592
  %609 = load ptr, ptr %119, align 8, !tbaa !54
  %.not23 = icmp eq ptr %609, null
  br i1 %.not23, label %624, label %610

610:                                              ; preds = %608
  %611 = getelementptr inbounds i8, ptr %609, i64 1112
  %612 = load double, ptr %611, align 8, !tbaa !66
  %613 = getelementptr inbounds i8, ptr %0, i64 696
  %614 = load double, ptr %613, align 8, !tbaa !83
  %615 = fmul double %612, %614
  %616 = getelementptr inbounds i8, ptr %609, i64 744
  store double %615, ptr %616, align 8, !tbaa !84
  %617 = getelementptr inbounds i8, ptr %609, i64 1120
  %618 = getelementptr inbounds i8, ptr %609, i64 752
  %619 = load <2 x double>, ptr %617, align 8, !tbaa !46
  store <2 x double> %619, ptr %618, align 8, !tbaa !46
  %620 = getelementptr inbounds i8, ptr %609, i64 1232
  %621 = load double, ptr %620, align 8, !tbaa !49
  %622 = getelementptr inbounds i8, ptr %609, i64 768
  store double %621, ptr %622, align 8, !tbaa !85
  %623 = getelementptr inbounds i8, ptr %609, i64 728
  tail call void @_ZN11McPATOutputpLERKS_(ptr noundef nonnull align 8 dereferenceable(48) %576, ptr noundef nonnull align 8 dereferenceable(48) %623)
  br label %624

624:                                              ; preds = %610, %608
  %625 = load ptr, ptr %255, align 8, !tbaa !70
  %.not24 = icmp eq ptr %625, null
  br i1 %.not24, label %640, label %626

626:                                              ; preds = %624
  %627 = getelementptr inbounds i8, ptr %625, i64 1112
  %628 = load double, ptr %627, align 8, !tbaa !66
  %629 = getelementptr inbounds i8, ptr %0, i64 696
  %630 = load double, ptr %629, align 8, !tbaa !83
  %631 = fmul double %628, %630
  %632 = getelementptr inbounds i8, ptr %625, i64 744
  store double %631, ptr %632, align 8, !tbaa !84
  %633 = getelementptr inbounds i8, ptr %625, i64 1120
  %634 = getelementptr inbounds i8, ptr %625, i64 752
  %635 = load <2 x double>, ptr %633, align 8, !tbaa !46
  store <2 x double> %635, ptr %634, align 8, !tbaa !46
  %636 = getelementptr inbounds i8, ptr %625, i64 1232
  %637 = load double, ptr %636, align 8, !tbaa !49
  %638 = getelementptr inbounds i8, ptr %625, i64 768
  store double %637, ptr %638, align 8, !tbaa !85
  %639 = getelementptr inbounds i8, ptr %625, i64 728
  tail call void @_ZN11McPATOutputpLERKS_(ptr noundef nonnull align 8 dereferenceable(48) %576, ptr noundef nonnull align 8 dereferenceable(48) %639)
  br label %640

640:                                              ; preds = %626, %624
  %641 = load ptr, ptr %177, align 8, !tbaa !67
  %.not25 = icmp eq ptr %641, null
  br i1 %.not25, label %656, label %642

642:                                              ; preds = %640
  %643 = getelementptr inbounds i8, ptr %641, i64 1112
  %644 = load double, ptr %643, align 8, !tbaa !66
  %645 = getelementptr inbounds i8, ptr %0, i64 696
  %646 = load double, ptr %645, align 8, !tbaa !83
  %647 = fmul double %644, %646
  %648 = getelementptr inbounds i8, ptr %641, i64 744
  store double %647, ptr %648, align 8, !tbaa !84
  %649 = getelementptr inbounds i8, ptr %641, i64 1120
  %650 = getelementptr inbounds i8, ptr %641, i64 752
  %651 = load <2 x double>, ptr %649, align 8, !tbaa !46
  store <2 x double> %651, ptr %650, align 8, !tbaa !46
  %652 = getelementptr inbounds i8, ptr %641, i64 1232
  %653 = load double, ptr %652, align 8, !tbaa !49
  %654 = getelementptr inbounds i8, ptr %641, i64 768
  store double %653, ptr %654, align 8, !tbaa !85
  %655 = getelementptr inbounds i8, ptr %641, i64 728
  tail call void @_ZN11McPATOutputpLERKS_(ptr noundef nonnull align 8 dereferenceable(48) %576, ptr noundef nonnull align 8 dereferenceable(48) %655)
  br label %656

656:                                              ; preds = %642, %640
  %657 = load ptr, ptr %313, align 8, !tbaa !71
  %.not26 = icmp eq ptr %657, null
  br i1 %.not26, label %672, label %658

658:                                              ; preds = %656
  %659 = getelementptr inbounds i8, ptr %657, i64 1112
  %660 = load double, ptr %659, align 8, !tbaa !66
  %661 = getelementptr inbounds i8, ptr %0, i64 696
  %662 = load double, ptr %661, align 8, !tbaa !83
  %663 = fmul double %660, %662
  %664 = getelementptr inbounds i8, ptr %657, i64 744
  store double %663, ptr %664, align 8, !tbaa !84
  %665 = getelementptr inbounds i8, ptr %657, i64 1120
  %666 = getelementptr inbounds i8, ptr %657, i64 752
  %667 = load <2 x double>, ptr %665, align 8, !tbaa !46
  store <2 x double> %667, ptr %666, align 8, !tbaa !46
  %668 = getelementptr inbounds i8, ptr %657, i64 1232
  %669 = load double, ptr %668, align 8, !tbaa !49
  %670 = getelementptr inbounds i8, ptr %657, i64 768
  store double %669, ptr %670, align 8, !tbaa !85
  %671 = getelementptr inbounds i8, ptr %657, i64 728
  tail call void @_ZN11McPATOutputpLERKS_(ptr noundef nonnull align 8 dereferenceable(48) %576, ptr noundef nonnull align 8 dereferenceable(48) %671)
  br label %672

672:                                              ; preds = %658, %656
  %673 = load ptr, ptr %6, align 8, !tbaa !37
  %.not27 = icmp eq ptr %673, null
  br i1 %.not27, label %688, label %674

674:                                              ; preds = %672
  %675 = getelementptr inbounds i8, ptr %673, i64 1112
  %676 = load double, ptr %675, align 8, !tbaa !66
  %677 = getelementptr inbounds i8, ptr %0, i64 696
  %678 = load double, ptr %677, align 8, !tbaa !83
  %679 = fmul double %676, %678
  %680 = getelementptr inbounds i8, ptr %673, i64 744
  store double %679, ptr %680, align 8, !tbaa !84
  %681 = getelementptr inbounds i8, ptr %673, i64 1120
  %682 = getelementptr inbounds i8, ptr %673, i64 752
  %683 = load <2 x double>, ptr %681, align 8, !tbaa !46
  store <2 x double> %683, ptr %682, align 8, !tbaa !46
  %684 = getelementptr inbounds i8, ptr %673, i64 1232
  %685 = load double, ptr %684, align 8, !tbaa !49
  %686 = getelementptr inbounds i8, ptr %673, i64 768
  store double %685, ptr %686, align 8, !tbaa !85
  %687 = getelementptr inbounds i8, ptr %673, i64 728
  tail call void @_ZN11McPATOutputpLERKS_(ptr noundef nonnull align 8 dereferenceable(48) %576, ptr noundef nonnull align 8 dereferenceable(48) %687)
  br label %688

688:                                              ; preds = %674, %672
  %689 = load ptr, ptr %63, align 8, !tbaa !50
  %.not28 = icmp eq ptr %689, null
  br i1 %.not28, label %704, label %690

690:                                              ; preds = %688
  %691 = getelementptr inbounds i8, ptr %689, i64 1112
  %692 = load double, ptr %691, align 8, !tbaa !66
  %693 = getelementptr inbounds i8, ptr %0, i64 696
  %694 = load double, ptr %693, align 8, !tbaa !83
  %695 = fmul double %692, %694
  %696 = getelementptr inbounds i8, ptr %689, i64 744
  store double %695, ptr %696, align 8, !tbaa !84
  %697 = getelementptr inbounds i8, ptr %689, i64 1120
  %698 = getelementptr inbounds i8, ptr %689, i64 752
  %699 = load <2 x double>, ptr %697, align 8, !tbaa !46
  store <2 x double> %699, ptr %698, align 8, !tbaa !46
  %700 = getelementptr inbounds i8, ptr %689, i64 1232
  %701 = load double, ptr %700, align 8, !tbaa !49
  %702 = getelementptr inbounds i8, ptr %689, i64 768
  store double %701, ptr %702, align 8, !tbaa !85
  %703 = getelementptr inbounds i8, ptr %689, i64 728
  tail call void @_ZN11McPATOutputpLERKS_(ptr noundef nonnull align 8 dereferenceable(48) %576, ptr noundef nonnull align 8 dereferenceable(48) %703)
  br label %704

704:                                              ; preds = %690, %688
  %705 = getelementptr inbounds i8, ptr %0, i64 1416
  %706 = load ptr, ptr %705, align 8, !tbaa !86
  %.not29 = icmp eq ptr %706, null
  br i1 %.not29, label %709, label %707

707:                                              ; preds = %704
  %708 = getelementptr inbounds i8, ptr %706, i64 728
  tail call void @_ZN11McPATOutputpLERKS_(ptr noundef nonnull align 8 dereferenceable(48) %576, ptr noundef nonnull align 8 dereferenceable(48) %708)
  br label %709

709:                                              ; preds = %1, %707, %704
  ret void
}

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

!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, !18, i64 2664}
!6 = !{!"_ZTS9RENAMINGU", !7, i64 0, !15, i64 1352, !15, i64 1360, !15, i64 1368, !15, i64 1376, !15, i64 1384, !15, i64 1392, !15, i64 1400, !15, i64 1408, !15, i64 1416, !16, i64 1424, !30, i64 1792, !34, i64 2272, !18, i64 2664}
!7 = !{!"_ZTS14McPATComponent", !8, i64 8, !15, i64 288, !16, i64 296, !20, i64 664, !10, i64 696, !23, i64 704, !27, i64 728, !28, i64 776, !28, i64 944, !13, i64 1112, !13, i64 1232}
!8 = !{!"_ZTS9Component", !9, i64 0, !13, i64 24, !13, i64 144, !10, i64 264, !10, i64 272}
!9 = !{!"_ZTS4Area", !10, i64 0, !10, i64 8, !10, i64 16}
!10 = !{!"double", !11, i64 0}
!11 = !{!"omnipotent char", !12, i64 0}
!12 = !{!"Simple C++ TBAA"}
!13 = !{!"_ZTS8powerDef", !14, i64 0, !14, i64 40, !14, i64 80}
!14 = !{!"_ZTS15powerComponents", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!15 = !{!"any pointer", !11, i64 0}
!16 = !{!"_ZTS14InputParameter", !17, i64 0, !17, i64 4, !17, i64 8, !17, i64 12, !17, i64 16, !18, i64 20, !17, i64 24, !17, i64 28, !17, i64 32, !17, i64 36, !17, i64 40, !17, i64 44, !10, i64 48, !10, i64 56, !17, i64 64, !17, i64 68, !17, i64 72, !17, i64 76, !17, i64 80, !18, i64 84, !18, i64 85, !18, i64 86, !18, i64 87, !18, i64 88, !17, i64 92, !17, i64 96, !17, i64 100, !17, i64 104, !17, i64 108, !17, i64 112, !17, i64 116, !17, i64 120, !17, i64 124, !17, i64 128, !17, i64 132, !17, i64 136, !17, i64 140, !17, i64 144, !17, i64 148, !19, i64 152, !17, i64 156, !18, i64 160, !17, i64 164, !17, i64 168, !17, i64 172, !17, i64 176, !17, i64 180, !17, i64 184, !17, i64 188, !18, i64 192, !17, i64 196, !17, i64 200, !17, i64 204, !17, i64 208, !17, i64 212, !17, i64 216, !17, i64 220, !17, i64 224, !17, i64 228, !17, i64 232, !17, i64 236, !17, i64 240, !17, i64 244, !17, i64 248, !17, i64 252, !17, i64 256, !17, i64 260, !17, i64 264, !17, i64 268, !17, i64 272, !17, i64 276, !17, i64 280, !17, i64 284, !17, i64 288, !17, i64 292, !17, i64 296, !18, i64 300, !17, i64 304, !17, i64 308, !17, i64 312, !18, i64 316, !18, i64 317, !17, i64 320, !17, i64 324, !18, i64 328, !10, i64 336, !10, i64 344, !18, i64 352, !17, i64 356, !17, i64 360, !18, i64 364}
!17 = !{!"int", !11, i64 0}
!18 = !{!"bool", !11, i64 0}
!19 = !{!"_ZTS9Wire_type", !11, i64 0}
!20 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !21, i64 0, !22, i64 8, !11, i64 16}
!21 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !15, i64 0}
!22 = !{!"long", !11, i64 0}
!23 = !{!"_ZTSSt6vectorIP14McPATComponentSaIS1_EE", !24, i64 0}
!24 = !{!"_ZTSSt12_Vector_baseIP14McPATComponentSaIS1_EE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseIP14McPATComponentSaIS1_EE12_Vector_implE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseIP14McPATComponentSaIS1_EE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!27 = !{!"_ZTS11McPATOutput", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!28 = !{!"_ZTS8statsDef", !29, i64 0, !29, i64 24, !29, i64 48, !29, i64 72, !29, i64 96, !29, i64 120, !29, i64 144}
!29 = !{!"_ZTS15statsComponents", !10, i64 0, !10, i64 8, !10, i64 16}
!30 = !{!"_ZTS14CoreParameters", !18, i64 0, !18, i64 1, !18, i64 2, !31, i64 4, !32, i64 8, !33, i64 12, !10, i64 16, !17, i64 24, !17, i64 28, !17, i64 32, !17, i64 36, !17, i64 40, !17, i64 44, !17, i64 48, !17, i64 52, !17, i64 56, !17, i64 60, !17, i64 64, !17, i64 68, !17, i64 72, !17, i64 76, !17, i64 80, !17, i64 84, !17, i64 88, !17, i64 92, !17, i64 96, !17, i64 100, !17, i64 104, !17, i64 108, !17, i64 112, !17, i64 116, !17, i64 120, !17, i64 124, !17, i64 128, !17, i64 132, !17, i64 136, !17, i64 140, !17, i64 144, !17, i64 148, !10, i64 152, !17, i64 160, !17, i64 164, !17, i64 168, !17, i64 172, !18, i64 176, !18, i64 177, !11, i64 184, !17, i64 216, !17, i64 220, !17, i64 224, !17, i64 228, !17, i64 232, !17, i64 236, !17, i64 240, !10, i64 248, !10, i64 256, !17, i64 264, !17, i64 268, !17, i64 272, !17, i64 276, !17, i64 280, !17, i64 284, !17, i64 288, !17, i64 292, !17, i64 296, !17, i64 300, !17, i64 304, !17, i64 308, !17, i64 312, !17, i64 316, !17, i64 320, !17, i64 324, !17, i64 328, !17, i64 332, !17, i64 336, !17, i64 340, !17, i64 344, !17, i64 348, !17, i64 352, !17, i64 356, !17, i64 360, !17, i64 364, !17, i64 368, !17, i64 372, !17, i64 376, !17, i64 380, !17, i64 384, !17, i64 388, !17, i64 392, !17, i64 396, !17, i64 400, !17, i64 404, !17, i64 408, !17, i64 412, !17, i64 416, !17, i64 420, !19, i64 424, !19, i64 428, !17, i64 432, !10, i64 440, !10, i64 448, !17, i64 456, !10, i64 464, !10, i64 472}
!31 = !{!"_ZTS9Core_type", !11, i64 0}
!32 = !{!"_ZTS13Renaming_type", !11, i64 0}
!33 = !{!"_ZTS14Scheduler_type", !11, i64 0}
!34 = !{!"_ZTS14CoreStatistics", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !10, i64 88, !10, i64 96, !10, i64 104, !10, i64 112, !10, i64 120, !10, i64 128, !10, i64 136, !10, i64 144, !10, i64 152, !10, i64 160, !10, i64 168, !10, i64 176, !10, i64 184, !10, i64 192, !10, i64 200, !10, i64 208, !10, i64 216, !10, i64 224, !10, i64 232, !10, i64 240, !10, i64 248, !10, i64 256, !10, i64 264, !10, i64 272, !10, i64 280, !10, i64 288, !10, i64 296, !10, i64 304, !10, i64 312, !10, i64 320, !10, i64 328, !10, i64 336, !10, i64 344, !10, i64 352, !10, i64 360, !10, i64 368, !10, i64 376, !10, i64 384}
!35 = !{i8 0, i8 2}
!36 = !{}
!37 = !{!6, !15, i64 1400}
!38 = !{!6, !31, i64 1796}
!39 = !{!6, !17, i64 1860}
!40 = !{!7, !10, i64 776}
!41 = !{!6, !10, i64 2488}
!42 = !{!7, !10, i64 944}
!43 = !{!6, !17, i64 1864}
!44 = !{!6, !10, i64 2416}
!45 = !{!6, !17, i64 1916}
!46 = !{!10, !10, i64 0}
!47 = !{!8, !10, i64 40}
!48 = !{!7, !10, i64 1128}
!49 = !{!7, !10, i64 1232}
!50 = !{!6, !15, i64 1408}
!51 = !{!6, !17, i64 1884}
!52 = !{!6, !10, i64 2512}
!53 = !{!6, !10, i64 2424}
!54 = !{!6, !15, i64 1368}
!55 = !{!56, !17, i64 1420}
!56 = !{!"_ZTS7ArrayST", !7, i64 0, !16, i64 1352, !57, i64 1720, !18, i64 1724, !31, i64 1728, !18, i64 1732, !58, i64 1736, !28, i64 9936}
!57 = !{!"_ZTS9Device_ty", !11, i64 0}
!58 = !{!"_ZTS9uca_org_t", !15, i64 0, !15, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !13, i64 48, !10, i64 168, !10, i64 176, !10, i64 184, !11, i64 192, !10, i64 296, !18, i64 304, !59, i64 312, !59, i64 4256}
!59 = !{!"_ZTS17results_mem_array", !17, i64 0, !17, i64 4, !10, i64 8, !17, i64 16, !17, i64 20, !17, i64 24, !17, i64 28, !17, i64 32, !17, i64 36, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !10, i64 88, !10, i64 96, !10, i64 104, !10, i64 112, !10, i64 120, !10, i64 128, !10, i64 136, !10, i64 144, !10, i64 152, !10, i64 160, !10, i64 168, !10, i64 176, !10, i64 184, !10, i64 192, !10, i64 200, !10, i64 208, !10, i64 216, !10, i64 224, !10, i64 232, !10, i64 240, !10, i64 248, !10, i64 256, !10, i64 264, !13, i64 272, !13, i64 392, !13, i64 512, !13, i64 632, !13, i64 752, !13, i64 872, !13, i64 992, !13, i64 1112, !13, i64 1232, !13, i64 1352, !13, i64 1472, !13, i64 1592, !13, i64 1712, !13, i64 1832, !13, i64 1952, !13, i64 2072, !13, i64 2192, !13, i64 2312, !13, i64 2432, !13, i64 2552, !13, i64 2672, !13, i64 2792, !13, i64 2912, !13, i64 3032, !13, i64 3152, !13, i64 3272, !13, i64 3392, !13, i64 3512, !13, i64 3632, !10, i64 3752, !10, i64 3760, !10, i64 3768, !10, i64 3776, !10, i64 3784, !10, i64 3792, !10, i64 3800, !10, i64 3808, !10, i64 3816, !10, i64 3824, !10, i64 3832, !10, i64 3840, !10, i64 3848, !10, i64 3856, !10, i64 3864, !10, i64 3872, !10, i64 3880, !10, i64 3888, !10, i64 3896, !10, i64 3904, !10, i64 3912, !10, i64 3920, !10, i64 3928, !10, i64 3936}
!60 = !{!56, !17, i64 1424}
!61 = !{!7, !10, i64 800}
!62 = !{!6, !10, i64 2496}
!63 = !{!7, !10, i64 968}
!64 = !{!8, !10, i64 24}
!65 = !{!8, !10, i64 64}
!66 = !{!7, !10, i64 1112}
!67 = !{!6, !15, i64 1384}
!68 = !{!6, !33, i64 1804}
!69 = !{!6, !10, i64 2504}
!70 = !{!6, !15, i64 1376}
!71 = !{!6, !15, i64 1392}
!72 = !{!6, !15, i64 1352}
!73 = !{!6, !32, i64 1800}
!74 = !{!56, !17, i64 1432}
!75 = !{!7, !10, i64 824}
!76 = !{!6, !10, i64 2472}
!77 = !{!7, !10, i64 992}
!78 = !{!56, !10, i64 1784}
!79 = !{!56, !10, i64 1824}
!80 = !{!56, !10, i64 1864}
!81 = !{!6, !15, i64 1360}
!82 = !{!6, !10, i64 2480}
!83 = !{!7, !10, i64 696}
!84 = !{!7, !10, i64 744}
!85 = !{!7, !10, i64 768}
!86 = !{!6, !15, i64 1416}


; Effective O3 passes: BDCEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass