; LLVM IR from romerojosh/zefr :: src/quads.ll (ZN5Quads8set_locsEv)

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

%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::initializer_list" = type { ptr, i64 }
%"class.std::allocator.2" = type { i8 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::__cxx11::basic_stringstream" = type { %"class.std::basic_iostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_iostream.base" = type { %"class.std::basic_istream.base", %"class.std::basic_ostream.base" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.__gnu_cxx::__normal_iterator.160" = type { ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%class.Elements = type { ptr, ptr, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [4 x i8], %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %"class.std::vector.0", %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector.5, %class.mdvector.5, %class.mdvector.5, %class.mdvector.5, %class.mdvector.5, %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, i32, %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector", %"class.std::vector.7", %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, i64, i64, i64, i64, i64, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdview, %class.mdview, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, i32, [4 x i8], %class.mdvector, %class.mdvector, i32, ptr, %"class.std::vector.7", %class.mdvector.5, %class.mdvector, %class.mdvector, %class.mdvector }
%class.mdview = type { %class.mdvector.12, %class.mdvector.5, i32, [4 x i8] }
%class.mdvector.12 = type <{ i32, [4 x i8], i64, i64, %"struct.std::array", %"struct.std::array", %"class.std::vector.13", ptr, i8, [7 x i8] }>
%"struct.std::array" = type { [6 x i32] }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<double *, std::allocator<double *>>::_Vector_impl" }
%"struct.std::_Vector_base<double *, std::allocator<double *>>::_Vector_impl" = type { %"struct.std::_Vector_base<double *, std::allocator<double *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double *, std::allocator<double *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.7" = type { %"struct.std::_Vector_base.8" }
%"struct.std::_Vector_base.8" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.mdvector.5 = type <{ i32, [4 x i8], i64, i64, %"struct.std::array", %"struct.std::array", %"class.std::vector.0", ptr, i8, [7 x i8] }>
%class.mdvector = type <{ i32, [4 x i8], i64, i64, %"struct.std::array", %"struct.std::array", %"class.std::vector", ptr, i8, [7 x i8] }>
%struct.InputStruct = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i8, i8, i8, i8, i8, i8, i8, i8, %"class.std::vector.0", %"class.std::vector.0", i32, i32, double, double, double, double, double, double, double, double, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, %class.mdvector, 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, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, double, double, double, double, double, double, double, i32, i32, double, double, i32, double, double, double, double, double, double, double, double, i16, i16, i16, i16, i32, i32, i32, %"class.std::__cxx11::basic_string", i8, i8, i8, i8, i32, i32, i8, i8, i8, i8, i32, i32, i32, i32, %"class.std::vector.22", %"class.std::vector.7", double, double, double, double, double, double, [3 x double], double, [3 x double], [3 x double], [3 x double], [3 x double], double, [3 x double], [3 x double], double, [9 x double], %"class.std::map", i8, i8, i8, i8, i8, i8, i8, i8, double, double, double, double, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, double, double, %class.Timer }
%"class.std::vector.22" = type { %"struct.std::_Vector_base.23" }
%"struct.std::_Vector_base.23" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%class.Timer = type { %"class.std::chrono::time_point", %"class.std::chrono::time_point", double, %"class.std::__cxx11::basic_string" }
%"class.std::chrono::time_point" = type { %"class.std::chrono::duration" }
%"class.std::chrono::duration" = type { i64 }

@.str = external hidden unnamed_addr constant [9 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@__func__._ZN5Quads8set_locsEv = external hidden unnamed_addr constant [9 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [26 x i8], align 1
@_ZTISt13runtime_error = external constant ptr

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5Quads8set_locsEv(ptr noundef nonnull align 8 dereferenceable(13968) %0) unnamed_addr #1 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca %"class.std::vector.0", align 8
  %4 = alloca %"class.std::initializer_list", align 8
  %5 = alloca [2 x i32], align 4
  %6 = alloca %"class.std::allocator.2", align 1
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca %"class.std::vector.0", align 8
  %10 = alloca %"class.std::initializer_list", align 8
  %11 = alloca [2 x i32], align 4
  %12 = alloca %"class.std::allocator.2", align 1
  %13 = alloca %"class.std::vector.0", align 8
  %14 = alloca %"class.std::initializer_list", align 8
  %15 = alloca [2 x i32], align 4
  %16 = alloca %"class.std::allocator.2", align 1
  %17 = alloca %"class.std::vector.0", align 8
  %18 = alloca %"class.std::initializer_list", align 8
  %19 = alloca [2 x i32], align 4
  %20 = alloca %"class.std::allocator.2", align 1
  %21 = alloca %"class.std::vector.0", align 8
  %22 = alloca %"class.std::initializer_list", align 8
  %23 = alloca [2 x i32], align 4
  %24 = alloca %"class.std::allocator.2", align 1
  %25 = alloca %"class.std::vector.0", align 8
  %26 = alloca %"class.std::initializer_list", align 8
  %27 = alloca [2 x i32], align 4
  %28 = alloca %"class.std::allocator.2", align 1
  %29 = alloca %"class.std::vector.0", align 8
  %30 = alloca %"class.std::initializer_list", align 8
  %31 = alloca [2 x i32], align 4
  %32 = alloca %"class.std::allocator.2", align 1
  %33 = alloca %"class.std::vector.0", align 8
  %34 = alloca %"class.std::initializer_list", align 8
  %35 = alloca [2 x i32], align 4
  %36 = alloca %"class.std::allocator.2", align 1
  %37 = alloca %"class.std::vector", align 8
  %38 = alloca %"class.std::vector", align 8
  %39 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca i1, align 1
  %43 = alloca %"class.std::vector", align 8
  %44 = alloca %"class.std::vector.0", align 8
  %45 = alloca %"class.std::initializer_list", align 8
  %46 = alloca [1 x i32], align 4
  %47 = alloca %"class.std::allocator.2", align 1
  %48 = alloca i32, align 4
  %49 = alloca %"class.__gnu_cxx::__normal_iterator.160", align 8
  %50 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %51 = alloca double, align 8
  %52 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %53 = alloca %"class.__gnu_cxx::__normal_iterator.160", align 8
  %54 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %55 = alloca double, align 8
  %56 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %57 = alloca %"class.std::vector.0", align 8
  %58 = alloca %"class.std::initializer_list", align 8
  %59 = alloca [1 x i32], align 4
  %60 = alloca %"class.std::allocator.2", align 1
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca %"class.std::vector", align 8
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca %"class.std::vector", align 8
  %73 = alloca %"class.std::vector", align 8
  %74 = alloca %"class.std::vector.0", align 8
  %75 = alloca %"class.std::initializer_list", align 8
  %76 = alloca [1 x i32], align 4
  %77 = alloca %"class.std::allocator.2", align 1
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  %81 = load ptr, ptr %2, align 8
  %82 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 28
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #7
  %83 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 12
  %84 = load i32, ptr %83, align 4, !tbaa !9
  store i32 %84, ptr %5, align 4, !tbaa !36
  %85 = getelementptr inbounds i32, ptr %5, i64 1
  %86 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 10
  %87 = load i32, ptr %86, align 4, !tbaa !37
  store i32 %87, ptr %85, align 4, !tbaa !36
  %88 = getelementptr inbounds %"class.std::initializer_list", ptr %4, i32 0, i32 0
  store ptr %5, ptr %88, align 8, !tbaa !38
  %89 = getelementptr inbounds %"class.std::initializer_list", ptr %4, i32 0, i32 1
  store i64 2, ptr %89, align 8, !tbaa !40
  call void @llvm.lifetime.start.p0(i64 1, ptr %6) #7
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  %90 = getelementptr inbounds { ptr, i64 }, ptr %4, i32 0, i32 0
  %91 = load ptr, ptr %90, align 8
  %92 = getelementptr inbounds { ptr, i64 }, ptr %4, i32 0, i32 1
  %93 = load i64, ptr %92, align 8
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %3, ptr %91, i64 %93, ptr noundef nonnull align 1 dereferenceable(1) %6)
          to label %94 unwind label %204

94:                                               ; preds = %1
  invoke void @_ZN8mdvectorIdE6assignESt6vectorIjSaIjEEdb(ptr noundef nonnull align 8 dereferenceable(105) %82, ptr noundef %3, double noundef 0.000000e+00, i1 noundef zeroext false)
          to label %95 unwind label %208

95:                                               ; preds = %94
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #7
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %6) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #7
  %96 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 33
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #7
  %97 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 12
  %98 = load i32, ptr %97, align 4, !tbaa !9
  store i32 %98, ptr %11, align 4, !tbaa !36
  %99 = getelementptr inbounds i32, ptr %11, i64 1
  %100 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 10
  %101 = load i32, ptr %100, align 4, !tbaa !37
  store i32 %101, ptr %99, align 4, !tbaa !36
  %102 = getelementptr inbounds %"class.std::initializer_list", ptr %10, i32 0, i32 0
  store ptr %11, ptr %102, align 8, !tbaa !38
  %103 = getelementptr inbounds %"class.std::initializer_list", ptr %10, i32 0, i32 1
  store i64 2, ptr %103, align 8, !tbaa !40
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #7
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  %104 = getelementptr inbounds { ptr, i64 }, ptr %10, i32 0, i32 0
  %105 = load ptr, ptr %104, align 8
  %106 = getelementptr inbounds { ptr, i64 }, ptr %10, i32 0, i32 1
  %107 = load i64, ptr %106, align 8
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr %105, i64 %107, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %108 unwind label %213

108:                                              ; preds = %95
  invoke void @_ZN8mdvectorIjE6assignESt6vectorIjSaIjEEjb(ptr noundef nonnull align 8 dereferenceable(105) %96, ptr noundef %9, i32 noundef 0, i1 noundef zeroext false)
          to label %109 unwind label %217

109:                                              ; preds = %108
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  %110 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 29
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #7
  %111 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 13
  %112 = load i32, ptr %111, align 8, !tbaa !41
  store i32 %112, ptr %15, align 4, !tbaa !36
  %113 = getelementptr inbounds i32, ptr %15, i64 1
  %114 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 10
  %115 = load i32, ptr %114, align 4, !tbaa !37
  store i32 %115, ptr %113, align 4, !tbaa !36
  %116 = getelementptr inbounds %"class.std::initializer_list", ptr %14, i32 0, i32 0
  store ptr %15, ptr %116, align 8, !tbaa !38
  %117 = getelementptr inbounds %"class.std::initializer_list", ptr %14, i32 0, i32 1
  store i64 2, ptr %117, align 8, !tbaa !40
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #7
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  %118 = getelementptr inbounds { ptr, i64 }, ptr %14, i32 0, i32 0
  %119 = load ptr, ptr %118, align 8
  %120 = getelementptr inbounds { ptr, i64 }, ptr %14, i32 0, i32 1
  %121 = load i64, ptr %120, align 8
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %13, ptr %119, i64 %121, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %122 unwind label %222

122:                                              ; preds = %109
  invoke void @_ZN8mdvectorIdE6assignESt6vectorIjSaIjEEdb(ptr noundef nonnull align 8 dereferenceable(105) %110, ptr noundef %13, double noundef 0.000000e+00, i1 noundef zeroext false)
          to label %123 unwind label %226

123:                                              ; preds = %122
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #7
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  %124 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 34
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #7
  %125 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 13
  %126 = load i32, ptr %125, align 8, !tbaa !41
  store i32 %126, ptr %19, align 4, !tbaa !36
  %127 = getelementptr inbounds i32, ptr %19, i64 1
  %128 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 10
  %129 = load i32, ptr %128, align 4, !tbaa !37
  store i32 %129, ptr %127, align 4, !tbaa !36
  %130 = getelementptr inbounds %"class.std::initializer_list", ptr %18, i32 0, i32 0
  store ptr %19, ptr %130, align 8, !tbaa !38
  %131 = getelementptr inbounds %"class.std::initializer_list", ptr %18, i32 0, i32 1
  store i64 2, ptr %131, align 8, !tbaa !40
  call void @llvm.lifetime.start.p0(i64 1, ptr %20) #7
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  %132 = getelementptr inbounds { ptr, i64 }, ptr %18, i32 0, i32 0
  %133 = load ptr, ptr %132, align 8
  %134 = getelementptr inbounds { ptr, i64 }, ptr %18, i32 0, i32 1
  %135 = load i64, ptr %134, align 8
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %17, ptr %133, i64 %135, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %136 unwind label %231

136:                                              ; preds = %123
  invoke void @_ZN8mdvectorIjE6assignESt6vectorIjSaIjEEjb(ptr noundef nonnull align 8 dereferenceable(105) %124, ptr noundef %17, i32 noundef 0, i1 noundef zeroext false)
          to label %137 unwind label %235

137:                                              ; preds = %136
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #7
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  %138 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 30
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #7
  %139 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 15
  %140 = load i32, ptr %139, align 8, !tbaa !42
  store i32 %140, ptr %23, align 4, !tbaa !36
  %141 = getelementptr inbounds i32, ptr %23, i64 1
  %142 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 10
  %143 = load i32, ptr %142, align 4, !tbaa !37
  store i32 %143, ptr %141, align 4, !tbaa !36
  %144 = getelementptr inbounds %"class.std::initializer_list", ptr %22, i32 0, i32 0
  store ptr %23, ptr %144, align 8, !tbaa !38
  %145 = getelementptr inbounds %"class.std::initializer_list", ptr %22, i32 0, i32 1
  store i64 2, ptr %145, align 8, !tbaa !40
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #7
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  %146 = getelementptr inbounds { ptr, i64 }, ptr %22, i32 0, i32 0
  %147 = load ptr, ptr %146, align 8
  %148 = getelementptr inbounds { ptr, i64 }, ptr %22, i32 0, i32 1
  %149 = load i64, ptr %148, align 8
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %21, ptr %147, i64 %149, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %150 unwind label %240

150:                                              ; preds = %137
  invoke void @_ZN8mdvectorIdE6assignESt6vectorIjSaIjEEdb(ptr noundef nonnull align 8 dereferenceable(105) %138, ptr noundef %21, double noundef 0.000000e+00, i1 noundef zeroext false)
          to label %151 unwind label %244

151:                                              ; preds = %150
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #7
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  %152 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 35
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #7
  %153 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 15
  %154 = load i32, ptr %153, align 8, !tbaa !42
  store i32 %154, ptr %27, align 4, !tbaa !36
  %155 = getelementptr inbounds i32, ptr %27, i64 1
  %156 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 10
  %157 = load i32, ptr %156, align 4, !tbaa !37
  store i32 %157, ptr %155, align 4, !tbaa !36
  %158 = getelementptr inbounds %"class.std::initializer_list", ptr %26, i32 0, i32 0
  store ptr %27, ptr %158, align 8, !tbaa !38
  %159 = getelementptr inbounds %"class.std::initializer_list", ptr %26, i32 0, i32 1
  store i64 2, ptr %159, align 8, !tbaa !40
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #7
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #7
  %160 = getelementptr inbounds { ptr, i64 }, ptr %26, i32 0, i32 0
  %161 = load ptr, ptr %160, align 8
  %162 = getelementptr inbounds { ptr, i64 }, ptr %26, i32 0, i32 1
  %163 = load i64, ptr %162, align 8
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %25, ptr %161, i64 %163, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %164 unwind label %249

164:                                              ; preds = %151
  invoke void @_ZN8mdvectorIjE6assignESt6vectorIjSaIjEEjb(ptr noundef nonnull align 8 dereferenceable(105) %152, ptr noundef %25, i32 noundef 0, i1 noundef zeroext false)
          to label %165 unwind label %253

165:                                              ; preds = %164
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #7
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  %166 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 32
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #7
  %167 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 16
  %168 = load i32, ptr %167, align 4, !tbaa !43
  store i32 %168, ptr %31, align 4, !tbaa !36
  %169 = getelementptr inbounds i32, ptr %31, i64 1
  %170 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 10
  %171 = load i32, ptr %170, align 4, !tbaa !37
  store i32 %171, ptr %169, align 4, !tbaa !36
  %172 = getelementptr inbounds %"class.std::initializer_list", ptr %30, i32 0, i32 0
  store ptr %31, ptr %172, align 8, !tbaa !38
  %173 = getelementptr inbounds %"class.std::initializer_list", ptr %30, i32 0, i32 1
  store i64 2, ptr %173, align 8, !tbaa !40
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #7
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  %174 = getelementptr inbounds { ptr, i64 }, ptr %30, i32 0, i32 0
  %175 = load ptr, ptr %174, align 8
  %176 = getelementptr inbounds { ptr, i64 }, ptr %30, i32 0, i32 1
  %177 = load i64, ptr %176, align 8
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %29, ptr %175, i64 %177, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %178 unwind label %258

178:                                              ; preds = %165
  invoke void @_ZN8mdvectorIdE6assignESt6vectorIjSaIjEEdb(ptr noundef nonnull align 8 dereferenceable(105) %166, ptr noundef %29, double noundef 0.000000e+00, i1 noundef zeroext false)
          to label %179 unwind label %262

179:                                              ; preds = %178
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #7
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #7
  %180 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 37
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #7
  %181 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 16
  %182 = load i32, ptr %181, align 4, !tbaa !43
  store i32 %182, ptr %35, align 4, !tbaa !36
  %183 = getelementptr inbounds i32, ptr %35, i64 1
  %184 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 10
  %185 = load i32, ptr %184, align 4, !tbaa !37
  store i32 %185, ptr %183, align 4, !tbaa !36
  %186 = getelementptr inbounds %"class.std::initializer_list", ptr %34, i32 0, i32 0
  store ptr %35, ptr %186, align 8, !tbaa !38
  %187 = getelementptr inbounds %"class.std::initializer_list", ptr %34, i32 0, i32 1
  store i64 2, ptr %187, align 8, !tbaa !40
  call void @llvm.lifetime.start.p0(i64 1, ptr %36) #7
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  %188 = getelementptr inbounds { ptr, i64 }, ptr %34, i32 0, i32 0
  %189 = load ptr, ptr %188, align 8
  %190 = getelementptr inbounds { ptr, i64 }, ptr %34, i32 0, i32 1
  %191 = load i64, ptr %190, align 8
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %33, ptr %189, i64 %191, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %192 unwind label %267

192:                                              ; preds = %179
  invoke void @_ZN8mdvectorIjE6assignESt6vectorIjSaIjEEjb(ptr noundef nonnull align 8 dereferenceable(105) %180, ptr noundef %33, i32 noundef 0, i1 noundef zeroext false)
          to label %193 unwind label %271

193:                                              ; preds = %192
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %33) #7
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #7
  %194 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 1
  %195 = load ptr, ptr %194, align 8, !tbaa !44
  %196 = getelementptr inbounds %struct.InputStruct, ptr %195, i32 0, i32 20
  %197 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %196, ptr noundef @.str)
  br i1 %197, label %198, label %276

198:                                              ; preds = %193
  call void @llvm.lifetime.start.p0(i64 24, ptr %37) #7
  %199 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 5
  %200 = load i32, ptr %199, align 8, !tbaa !45
  %201 = add i32 %200, 1
  call void @_Z18Gauss_Legendre_ptsj(ptr dead_on_unwind writable sret(%"class.std::vector") align 8 %37, i32 noundef %201)
  %202 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 38
  %203 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %202, ptr noundef nonnull align 8 dereferenceable(24) %37) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %37) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %37) #7
  br label %337

204:                                              ; preds = %1
  %205 = landingpad { ptr, i32 }
          cleanup
  %206 = extractvalue { ptr, i32 } %205, 0
  store ptr %206, ptr %7, align 8
  %207 = extractvalue { ptr, i32 } %205, 1
  store i32 %207, ptr %8, align 4
  br label %212

208:                                              ; preds = %94
  %209 = landingpad { ptr, i32 }
          cleanup
  %210 = extractvalue { ptr, i32 } %209, 0
  store ptr %210, ptr %7, align 8
  %211 = extractvalue { ptr, i32 } %209, 1
  store i32 %211, ptr %8, align 4
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #7
  br label %212

212:                                              ; preds = %208, %204
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %6) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #7
  br label %836

213:                                              ; preds = %95
  %214 = landingpad { ptr, i32 }
          cleanup
  %215 = extractvalue { ptr, i32 } %214, 0
  store ptr %215, ptr %7, align 8
  %216 = extractvalue { ptr, i32 } %214, 1
  store i32 %216, ptr %8, align 4
  br label %221

217:                                              ; preds = %108
  %218 = landingpad { ptr, i32 }
          cleanup
  %219 = extractvalue { ptr, i32 } %218, 0
  store ptr %219, ptr %7, align 8
  %220 = extractvalue { ptr, i32 } %218, 1
  store i32 %220, ptr %8, align 4
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  br label %221

221:                                              ; preds = %217, %213
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  br label %836

222:                                              ; preds = %109
  %223 = landingpad { ptr, i32 }
          cleanup
  %224 = extractvalue { ptr, i32 } %223, 0
  store ptr %224, ptr %7, align 8
  %225 = extractvalue { ptr, i32 } %223, 1
  store i32 %225, ptr %8, align 4
  br label %230

226:                                              ; preds = %122
  %227 = landingpad { ptr, i32 }
          cleanup
  %228 = extractvalue { ptr, i32 } %227, 0
  store ptr %228, ptr %7, align 8
  %229 = extractvalue { ptr, i32 } %227, 1
  store i32 %229, ptr %8, align 4
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #7
  br label %230

230:                                              ; preds = %226, %222
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  br label %836

231:                                              ; preds = %123
  %232 = landingpad { ptr, i32 }
          cleanup
  %233 = extractvalue { ptr, i32 } %232, 0
  store ptr %233, ptr %7, align 8
  %234 = extractvalue { ptr, i32 } %232, 1
  store i32 %234, ptr %8, align 4
  br label %239

235:                                              ; preds = %136
  %236 = landingpad { ptr, i32 }
          cleanup
  %237 = extractvalue { ptr, i32 } %236, 0
  store ptr %237, ptr %7, align 8
  %238 = extractvalue { ptr, i32 } %236, 1
  store i32 %238, ptr %8, align 4
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #7
  br label %239

239:                                              ; preds = %235, %231
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  br label %836

240:                                              ; preds = %137
  %241 = landingpad { ptr, i32 }
          cleanup
  %242 = extractvalue { ptr, i32 } %241, 0
  store ptr %242, ptr %7, align 8
  %243 = extractvalue { ptr, i32 } %241, 1
  store i32 %243, ptr %8, align 4
  br label %248

244:                                              ; preds = %150
  %245 = landingpad { ptr, i32 }
          cleanup
  %246 = extractvalue { ptr, i32 } %245, 0
  store ptr %246, ptr %7, align 8
  %247 = extractvalue { ptr, i32 } %245, 1
  store i32 %247, ptr %8, align 4
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #7
  br label %248

248:                                              ; preds = %244, %240
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  br label %836

249:                                              ; preds = %151
  %250 = landingpad { ptr, i32 }
          cleanup
  %251 = extractvalue { ptr, i32 } %250, 0
  store ptr %251, ptr %7, align 8
  %252 = extractvalue { ptr, i32 } %250, 1
  store i32 %252, ptr %8, align 4
  br label %257

253:                                              ; preds = %164
  %254 = landingpad { ptr, i32 }
          cleanup
  %255 = extractvalue { ptr, i32 } %254, 0
  store ptr %255, ptr %7, align 8
  %256 = extractvalue { ptr, i32 } %254, 1
  store i32 %256, ptr %8, align 4
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #7
  br label %257

257:                                              ; preds = %253, %249
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  br label %836

258:                                              ; preds = %165
  %259 = landingpad { ptr, i32 }
          cleanup
  %260 = extractvalue { ptr, i32 } %259, 0
  store ptr %260, ptr %7, align 8
  %261 = extractvalue { ptr, i32 } %259, 1
  store i32 %261, ptr %8, align 4
  br label %266

262:                                              ; preds = %178
  %263 = landingpad { ptr, i32 }
          cleanup
  %264 = extractvalue { ptr, i32 } %263, 0
  store ptr %264, ptr %7, align 8
  %265 = extractvalue { ptr, i32 } %263, 1
  store i32 %265, ptr %8, align 4
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #7
  br label %266

266:                                              ; preds = %262, %258
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #7
  br label %836

267:                                              ; preds = %179
  %268 = landingpad { ptr, i32 }
          cleanup
  %269 = extractvalue { ptr, i32 } %268, 0
  store ptr %269, ptr %7, align 8
  %270 = extractvalue { ptr, i32 } %268, 1
  store i32 %270, ptr %8, align 4
  br label %275

271:                                              ; preds = %192
  %272 = landingpad { ptr, i32 }
          cleanup
  %273 = extractvalue { ptr, i32 } %272, 0
  store ptr %273, ptr %7, align 8
  %274 = extractvalue { ptr, i32 } %272, 1
  store i32 %274, ptr %8, align 4
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %33) #7
  br label %275

275:                                              ; preds = %271, %267
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #7
  br label %836

276:                                              ; preds = %193
  %277 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 1
  %278 = load ptr, ptr %277, align 8, !tbaa !44
  %279 = getelementptr inbounds %struct.InputStruct, ptr %278, i32 0, i32 20
  %280 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %279, ptr noundef @.str.1)
  br i1 %280, label %281, label %287

281:                                              ; preds = %276
  call void @llvm.lifetime.start.p0(i64 24, ptr %38) #7
  %282 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 5
  %283 = load i32, ptr %282, align 8, !tbaa !45
  %284 = add i32 %283, 1
  call void @_Z9DFRsp_ptsjd(ptr dead_on_unwind writable sret(%"class.std::vector") align 8 %38, i32 noundef %284, double noundef 0x3FD5BFFB2237A15D)
  %285 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 38
  %286 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %285, ptr noundef nonnull align 8 dereferenceable(24) %38) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %38) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %38) #7
  br label %336

287:                                              ; preds = %276
  call void @llvm.lifetime.start.p0(i64 392, ptr %39) #7
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %39)
  %288 = getelementptr inbounds i8, ptr %39, i64 16
  %289 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %288, ptr noundef @.str.2)
          to label %290 unwind label %310

290:                                              ; preds = %287
  %291 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %289, ptr noundef @.str.3)
          to label %292 unwind label %310

292:                                              ; preds = %290
  %293 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %291, i32 noundef 59)
          to label %294 unwind label %310

294:                                              ; preds = %292
  %295 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %293, ptr noundef @.str.3)
          to label %296 unwind label %310

296:                                              ; preds = %294
  %297 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %295, ptr noundef @__func__._ZN5Quads8set_locsEv)
          to label %298 unwind label %310

298:                                              ; preds = %296
  %299 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %297, ptr noundef @.str.4)
          to label %300 unwind label %310

300:                                              ; preds = %298
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #7
  %301 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 1
  %302 = load ptr, ptr %301, align 8, !tbaa !44
  %303 = getelementptr inbounds %struct.InputStruct, ptr %302, i32 0, i32 20
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %40, ptr noundef @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %303)
          to label %304 unwind label %314

304:                                              ; preds = %300
  %305 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %299, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %306 unwind label %318

306:                                              ; preds = %304
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #7
  store i1 true, ptr %42, align 1
  %307 = call ptr @__cxa_allocate_exception(i64 16) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #7
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull align 8 dereferenceable(128) %39)
          to label %308 unwind label %323

308:                                              ; preds = %306
  invoke void @_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %307, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %309 unwind label %327

309:                                              ; preds = %308
  store i1 false, ptr %42, align 1
  invoke void @__cxa_throw(ptr %307, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #8
          to label %841 unwind label %327

310:                                              ; preds = %298, %296, %294, %292, %290, %287
  %311 = landingpad { ptr, i32 }
          cleanup
  %312 = extractvalue { ptr, i32 } %311, 0
  store ptr %312, ptr %7, align 8
  %313 = extractvalue { ptr, i32 } %311, 1
  store i32 %313, ptr %8, align 4
  br label %335

314:                                              ; preds = %300
  %315 = landingpad { ptr, i32 }
          cleanup
  %316 = extractvalue { ptr, i32 } %315, 0
  store ptr %316, ptr %7, align 8
  %317 = extractvalue { ptr, i32 } %315, 1
  store i32 %317, ptr %8, align 4
  br label %322

318:                                              ; preds = %304
  %319 = landingpad { ptr, i32 }
          cleanup
  %320 = extractvalue { ptr, i32 } %319, 0
  store ptr %320, ptr %7, align 8
  %321 = extractvalue { ptr, i32 } %319, 1
  store i32 %321, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #7
  br label %322

322:                                              ; preds = %318, %314
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #7
  br label %335

323:                                              ; preds = %306
  %324 = landingpad { ptr, i32 }
          cleanup
  %325 = extractvalue { ptr, i32 } %324, 0
  store ptr %325, ptr %7, align 8
  %326 = extractvalue { ptr, i32 } %324, 1
  store i32 %326, ptr %8, align 4
  br label %331

327:                                              ; preds = %309, %308
  %328 = landingpad { ptr, i32 }
          cleanup
  %329 = extractvalue { ptr, i32 } %328, 0
  store ptr %329, ptr %7, align 8
  %330 = extractvalue { ptr, i32 } %328, 1
  store i32 %330, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #7
  br label %331

331:                                              ; preds = %327, %323
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #7
  %332 = load i1, ptr %42, align 1
  br i1 %332, label %333, label %334

333:                                              ; preds = %331
  call void @__cxa_free_exception(ptr %307) #7
  br label %334

334:                                              ; preds = %333, %331
  br label %335

335:                                              ; preds = %334, %322, %310
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %39) #7
  call void @llvm.lifetime.end.p0(i64 392, ptr %39) #7
  br label %836

336:                                              ; preds = %281
  br label %337

337:                                              ; preds = %336, %198
  call void @llvm.lifetime.start.p0(i64 24, ptr %43) #7
  %338 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 14
  %339 = load i32, ptr %338, align 4, !tbaa !46
  call void @_Z22Gauss_Legendre_weightsj(ptr dead_on_unwind writable sret(%"class.std::vector") align 8 %43, i32 noundef %339)
  %340 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 64
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #7
  %341 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 14
  %342 = load i32, ptr %341, align 4, !tbaa !46
  store i32 %342, ptr %46, align 4, !tbaa !36
  %343 = getelementptr inbounds %"class.std::initializer_list", ptr %45, i32 0, i32 0
  store ptr %46, ptr %343, align 8, !tbaa !38
  %344 = getelementptr inbounds %"class.std::initializer_list", ptr %45, i32 0, i32 1
  store i64 1, ptr %344, align 8, !tbaa !40
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #7
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #7
  %345 = getelementptr inbounds { ptr, i64 }, ptr %45, i32 0, i32 0
  %346 = load ptr, ptr %345, align 8
  %347 = getelementptr inbounds { ptr, i64 }, ptr %45, i32 0, i32 1
  %348 = load i64, ptr %347, align 8
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %44, ptr %346, i64 %348, ptr noundef nonnull align 1 dereferenceable(1) %47)
          to label %349 unwind label %357

349:                                              ; preds = %337
  invoke void @_ZN8mdvectorIdE6assignESt6vectorIjSaIjEEdb(ptr noundef nonnull align 8 dereferenceable(105) %340, ptr noundef %44, double noundef 0.000000e+00, i1 noundef zeroext false)
          to label %350 unwind label %361

350:                                              ; preds = %349
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %44) #7
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #7
  store i32 0, ptr %48, align 4, !tbaa !36
  br label %351

351:                                              ; preds = %375, %350
  %352 = load i32, ptr %48, align 4, !tbaa !36
  %353 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 14
  %354 = load i32, ptr %353, align 4, !tbaa !46
  %355 = icmp ult i32 %352, %354
  br i1 %355, label %366, label %356

356:                                              ; preds = %351
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #7
  br label %382

357:                                              ; preds = %337
  %358 = landingpad { ptr, i32 }
          cleanup
  %359 = extractvalue { ptr, i32 } %358, 0
  store ptr %359, ptr %7, align 8
  %360 = extractvalue { ptr, i32 } %358, 1
  store i32 %360, ptr %8, align 4
  br label %365

361:                                              ; preds = %349
  %362 = landingpad { ptr, i32 }
          cleanup
  %363 = extractvalue { ptr, i32 } %362, 0
  store ptr %363, ptr %7, align 8
  %364 = extractvalue { ptr, i32 } %362, 1
  store i32 %364, ptr %8, align 4
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %44) #7
  br label %365

365:                                              ; preds = %361, %357
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #7
  br label %835

366:                                              ; preds = %351
  %367 = load i32, ptr %48, align 4, !tbaa !36
  %368 = zext i32 %367 to i64
  %369 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %43, i64 noundef %368) #7
  %370 = load double, ptr %369, align 8, !tbaa !47
  %371 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 64
  %372 = load i32, ptr %48, align 4, !tbaa !36
  %373 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEj(ptr noundef nonnull align 8 dereferenceable(105) %371, i32 noundef %372)
          to label %374 unwind label %378

374:                                              ; preds = %366
  store double %370, ptr %373, align 8, !tbaa !47
  br label %375

375:                                              ; preds = %374
  %376 = load i32, ptr %48, align 4, !tbaa !36
  %377 = add i32 %376, 1
  store i32 %377, ptr %48, align 4, !tbaa !36
  br label %351, !llvm.loop !49

378:                                              ; preds = %366
  %379 = landingpad { ptr, i32 }
          cleanup
  %380 = extractvalue { ptr, i32 } %379, 0
  store ptr %380, ptr %7, align 8
  %381 = extractvalue { ptr, i32 } %379, 1
  store i32 %381, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #7
  br label %835

382:                                              ; preds = %356
  %383 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 38
  %384 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 41
  %385 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %384, ptr noundef nonnull align 8 dereferenceable(24) %383)
          to label %386 unwind label %422

386:                                              ; preds = %382
  %387 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 41
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #7
  %388 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 41
  %389 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %388) #7
  %390 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %50, i32 0, i32 0
  store ptr %389, ptr %390, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKdSt6vectorIdSaIdEEEC2IPdvEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %49, ptr noundef nonnull align 8 dereferenceable(8) %50) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #7
  store double -1.000000e+00, ptr %51, align 8, !tbaa !47
  %391 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.160", ptr %49, i32 0, i32 0
  %392 = load ptr, ptr %391, align 8
  %393 = invoke ptr @_ZNSt6vectorIdSaIdEE6insertEN9__gnu_cxx17__normal_iteratorIPKdS1_EEOd(ptr noundef nonnull align 8 dereferenceable(24) %387, ptr %392, ptr noundef nonnull align 8 dereferenceable(8) %51)
          to label %394 unwind label %426

394:                                              ; preds = %386
  %395 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %52, i32 0, i32 0
  store ptr %393, ptr %395, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #7
  %396 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 41
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #7
  %397 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 41
  %398 = call ptr @_ZNSt6vectorIdSaIdEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %397) #7
  %399 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %54, i32 0, i32 0
  store ptr %398, ptr %399, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKdSt6vectorIdSaIdEEEC2IPdvEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %53, ptr noundef nonnull align 8 dereferenceable(8) %54) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #7
  store double 1.000000e+00, ptr %55, align 8, !tbaa !47
  %400 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.160", ptr %53, i32 0, i32 0
  %401 = load ptr, ptr %400, align 8
  %402 = invoke ptr @_ZNSt6vectorIdSaIdEE6insertEN9__gnu_cxx17__normal_iteratorIPKdS1_EEOd(ptr noundef nonnull align 8 dereferenceable(24) %396, ptr %401, ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %403 unwind label %430

403:                                              ; preds = %394
  %404 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %56, i32 0, i32 0
  store ptr %402, ptr %404, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #7
  %405 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 63
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #7
  %406 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 12
  %407 = load i32, ptr %406, align 4, !tbaa !9
  store i32 %407, ptr %59, align 4, !tbaa !36
  %408 = getelementptr inbounds %"class.std::initializer_list", ptr %58, i32 0, i32 0
  store ptr %59, ptr %408, align 8, !tbaa !38
  %409 = getelementptr inbounds %"class.std::initializer_list", ptr %58, i32 0, i32 1
  store i64 1, ptr %409, align 8, !tbaa !40
  call void @llvm.lifetime.start.p0(i64 1, ptr %60) #7
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #7
  %410 = getelementptr inbounds { ptr, i64 }, ptr %58, i32 0, i32 0
  %411 = load ptr, ptr %410, align 8
  %412 = getelementptr inbounds { ptr, i64 }, ptr %58, i32 0, i32 1
  %413 = load i64, ptr %412, align 8
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %57, ptr %411, i64 %413, ptr noundef nonnull align 1 dereferenceable(1) %60)
          to label %414 unwind label %434

414:                                              ; preds = %403
  invoke void @_ZN8mdvectorIdE6assignESt6vectorIjSaIjEEdb(ptr noundef nonnull align 8 dereferenceable(105) %405, ptr noundef %57, double noundef 0.000000e+00, i1 noundef zeroext false)
          to label %415 unwind label %438

415:                                              ; preds = %414
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %57) #7
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #7
  store i32 0, ptr %61, align 4, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #7
  store i32 0, ptr %62, align 4, !tbaa !36
  br label %416

416:                                              ; preds = %502, %415
  %417 = load i32, ptr %62, align 4, !tbaa !36
  %418 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 14
  %419 = load i32, ptr %418, align 4, !tbaa !46
  %420 = icmp ult i32 %417, %419
  br i1 %420, label %443, label %421

421:                                              ; preds = %416
  store i32 5, ptr %63, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #7
  br label %505

422:                                              ; preds = %382
  %423 = landingpad { ptr, i32 }
          cleanup
  %424 = extractvalue { ptr, i32 } %423, 0
  store ptr %424, ptr %7, align 8
  %425 = extractvalue { ptr, i32 } %423, 1
  store i32 %425, ptr %8, align 4
  br label %835

426:                                              ; preds = %386
  %427 = landingpad { ptr, i32 }
          cleanup
  %428 = extractvalue { ptr, i32 } %427, 0
  store ptr %428, ptr %7, align 8
  %429 = extractvalue { ptr, i32 } %427, 1
  store i32 %429, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #7
  br label %835

430:                                              ; preds = %394
  %431 = landingpad { ptr, i32 }
          cleanup
  %432 = extractvalue { ptr, i32 } %431, 0
  store ptr %432, ptr %7, align 8
  %433 = extractvalue { ptr, i32 } %431, 1
  store i32 %433, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #7
  br label %835

434:                                              ; preds = %403
  %435 = landingpad { ptr, i32 }
          cleanup
  %436 = extractvalue { ptr, i32 } %435, 0
  store ptr %436, ptr %7, align 8
  %437 = extractvalue { ptr, i32 } %435, 1
  store i32 %437, ptr %8, align 4
  br label %442

438:                                              ; preds = %414
  %439 = landingpad { ptr, i32 }
          cleanup
  %440 = extractvalue { ptr, i32 } %439, 0
  store ptr %440, ptr %7, align 8
  %441 = extractvalue { ptr, i32 } %439, 1
  store i32 %441, ptr %8, align 4
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %57) #7
  br label %442

442:                                              ; preds = %438, %434
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #7
  br label %835

443:                                              ; preds = %416
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #7
  store i32 0, ptr %64, align 4, !tbaa !36
  br label %444

444:                                              ; preds = %494, %443
  %445 = load i32, ptr %64, align 4, !tbaa !36
  %446 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 14
  %447 = load i32, ptr %446, align 4, !tbaa !46
  %448 = icmp ult i32 %445, %447
  br i1 %448, label %450, label %449

449:                                              ; preds = %444
  store i32 8, ptr %63, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #7
  br label %501

450:                                              ; preds = %444
  %451 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 38
  %452 = load i32, ptr %64, align 4, !tbaa !36
  %453 = zext i32 %452 to i64
  %454 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %451, i64 noundef %453) #7
  %455 = load double, ptr %454, align 8, !tbaa !47
  %456 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 28
  %457 = load i32, ptr %61, align 4, !tbaa !36
  %458 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %456, i32 noundef %457, i32 noundef 0)
          to label %459 unwind label %497

459:                                              ; preds = %450
  store double %455, ptr %458, align 8, !tbaa !47
  %460 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 38
  %461 = load i32, ptr %62, align 4, !tbaa !36
  %462 = zext i32 %461 to i64
  %463 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %460, i64 noundef %462) #7
  %464 = load double, ptr %463, align 8, !tbaa !47
  %465 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 28
  %466 = load i32, ptr %61, align 4, !tbaa !36
  %467 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %465, i32 noundef %466, i32 noundef 1)
          to label %468 unwind label %497

468:                                              ; preds = %459
  store double %464, ptr %467, align 8, !tbaa !47
  %469 = load i32, ptr %64, align 4, !tbaa !36
  %470 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 33
  %471 = load i32, ptr %61, align 4, !tbaa !36
  %472 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %470, i32 noundef %471, i32 noundef 0)
          to label %473 unwind label %497

473:                                              ; preds = %468
  store i32 %469, ptr %472, align 4, !tbaa !36
  %474 = load i32, ptr %62, align 4, !tbaa !36
  %475 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 33
  %476 = load i32, ptr %61, align 4, !tbaa !36
  %477 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %475, i32 noundef %476, i32 noundef 1)
          to label %478 unwind label %497

478:                                              ; preds = %473
  store i32 %474, ptr %477, align 4, !tbaa !36
  %479 = load i32, ptr %62, align 4, !tbaa !36
  %480 = zext i32 %479 to i64
  %481 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %43, i64 noundef %480) #7
  %482 = load double, ptr %481, align 8, !tbaa !47
  %483 = load i32, ptr %64, align 4, !tbaa !36
  %484 = zext i32 %483 to i64
  %485 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %43, i64 noundef %484) #7
  %486 = load double, ptr %485, align 8, !tbaa !47
  %487 = fmul double %482, %486
  %488 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 63
  %489 = load i32, ptr %61, align 4, !tbaa !36
  %490 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEj(ptr noundef nonnull align 8 dereferenceable(105) %488, i32 noundef %489)
          to label %491 unwind label %497

491:                                              ; preds = %478
  store double %487, ptr %490, align 8, !tbaa !47
  %492 = load i32, ptr %61, align 4, !tbaa !36
  %493 = add i32 %492, 1
  store i32 %493, ptr %61, align 4, !tbaa !36
  br label %494

494:                                              ; preds = %491
  %495 = load i32, ptr %64, align 4, !tbaa !36
  %496 = add i32 %495, 1
  store i32 %496, ptr %64, align 4, !tbaa !36
  br label %444, !llvm.loop !51

497:                                              ; preds = %478, %473, %468, %459, %450
  %498 = landingpad { ptr, i32 }
          cleanup
  %499 = extractvalue { ptr, i32 } %498, 0
  store ptr %499, ptr %7, align 8
  %500 = extractvalue { ptr, i32 } %498, 1
  store i32 %500, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #7
  br label %834

501:                                              ; preds = %449
  br label %502

502:                                              ; preds = %501
  %503 = load i32, ptr %62, align 4, !tbaa !36
  %504 = add i32 %503, 1
  store i32 %504, ptr %62, align 4, !tbaa !36
  br label %416, !llvm.loop !52

505:                                              ; preds = %421
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #7
  store i32 0, ptr %65, align 4, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #7
  store i32 0, ptr %66, align 4, !tbaa !36
  br label %506

506:                                              ; preds = %644, %505
  %507 = load i32, ptr %66, align 4, !tbaa !36
  %508 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 18
  %509 = load i32, ptr %508, align 4, !tbaa !53
  %510 = icmp ult i32 %507, %509
  br i1 %510, label %512, label %511

511:                                              ; preds = %506
  store i32 11, ptr %63, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #7
  br label %647

512:                                              ; preds = %506
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #7
  store i32 0, ptr %67, align 4, !tbaa !36
  br label %513

513:                                              ; preds = %640, %512
  %514 = load i32, ptr %67, align 4, !tbaa !36
  %515 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 14
  %516 = load i32, ptr %515, align 4, !tbaa !46
  %517 = icmp ult i32 %514, %516
  br i1 %517, label %519, label %518

518:                                              ; preds = %513
  store i32 14, ptr %63, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #7
  br label %643

519:                                              ; preds = %513
  %520 = load i32, ptr %66, align 4, !tbaa !36
  switch i32 %520, label %637 [
    i32 0, label %521
    i32 1, label %548
    i32 2, label %573
    i32 3, label %606
  ]

521:                                              ; preds = %519
  %522 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 38
  %523 = load i32, ptr %67, align 4, !tbaa !36
  %524 = zext i32 %523 to i64
  %525 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %522, i64 noundef %524) #7
  %526 = load double, ptr %525, align 8, !tbaa !47
  %527 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 29
  %528 = load i32, ptr %65, align 4, !tbaa !36
  %529 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %527, i32 noundef %528, i32 noundef 0)
          to label %530 unwind label %544

530:                                              ; preds = %521
  store double %526, ptr %529, align 8, !tbaa !47
  %531 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 29
  %532 = load i32, ptr %65, align 4, !tbaa !36
  %533 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %531, i32 noundef %532, i32 noundef 1)
          to label %534 unwind label %544

534:                                              ; preds = %530
  store double -1.000000e+00, ptr %533, align 8, !tbaa !47
  %535 = load i32, ptr %67, align 4, !tbaa !36
  %536 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 34
  %537 = load i32, ptr %65, align 4, !tbaa !36
  %538 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %536, i32 noundef %537, i32 noundef 0)
          to label %539 unwind label %544

539:                                              ; preds = %534
  store i32 %535, ptr %538, align 4, !tbaa !36
  %540 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 34
  %541 = load i32, ptr %65, align 4, !tbaa !36
  %542 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %540, i32 noundef %541, i32 noundef 1)
          to label %543 unwind label %544

543:                                              ; preds = %539
  store i32 -1, ptr %542, align 4, !tbaa !36
  br label %637

544:                                              ; preds = %627, %623, %610, %606, %599, %590, %586, %573, %567, %561, %552, %548, %539, %534, %530, %521
  %545 = landingpad { ptr, i32 }
          cleanup
  %546 = extractvalue { ptr, i32 } %545, 0
  store ptr %546, ptr %7, align 8
  %547 = extractvalue { ptr, i32 } %545, 1
  store i32 %547, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #7
  br label %833

548:                                              ; preds = %519
  %549 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 29
  %550 = load i32, ptr %65, align 4, !tbaa !36
  %551 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %549, i32 noundef %550, i32 noundef 0)
          to label %552 unwind label %544

552:                                              ; preds = %548
  store double 1.000000e+00, ptr %551, align 8, !tbaa !47
  %553 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 38
  %554 = load i32, ptr %67, align 4, !tbaa !36
  %555 = zext i32 %554 to i64
  %556 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %553, i64 noundef %555) #7
  %557 = load double, ptr %556, align 8, !tbaa !47
  %558 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 29
  %559 = load i32, ptr %65, align 4, !tbaa !36
  %560 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %558, i32 noundef %559, i32 noundef 1)
          to label %561 unwind label %544

561:                                              ; preds = %552
  store double %557, ptr %560, align 8, !tbaa !47
  %562 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 14
  %563 = load i32, ptr %562, align 4, !tbaa !46
  %564 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 34
  %565 = load i32, ptr %65, align 4, !tbaa !36
  %566 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %564, i32 noundef %565, i32 noundef 0)
          to label %567 unwind label %544

567:                                              ; preds = %561
  store i32 %563, ptr %566, align 4, !tbaa !36
  %568 = load i32, ptr %67, align 4, !tbaa !36
  %569 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 34
  %570 = load i32, ptr %65, align 4, !tbaa !36
  %571 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %569, i32 noundef %570, i32 noundef 1)
          to label %572 unwind label %544

572:                                              ; preds = %567
  store i32 %568, ptr %571, align 4, !tbaa !36
  br label %637

573:                                              ; preds = %519
  %574 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 38
  %575 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 14
  %576 = load i32, ptr %575, align 4, !tbaa !46
  %577 = load i32, ptr %67, align 4, !tbaa !36
  %578 = sub i32 %576, %577
  %579 = sub i32 %578, 1
  %580 = zext i32 %579 to i64
  %581 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %574, i64 noundef %580) #7
  %582 = load double, ptr %581, align 8, !tbaa !47
  %583 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 29
  %584 = load i32, ptr %65, align 4, !tbaa !36
  %585 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %583, i32 noundef %584, i32 noundef 0)
          to label %586 unwind label %544

586:                                              ; preds = %573
  store double %582, ptr %585, align 8, !tbaa !47
  %587 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 29
  %588 = load i32, ptr %65, align 4, !tbaa !36
  %589 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %587, i32 noundef %588, i32 noundef 1)
          to label %590 unwind label %544

590:                                              ; preds = %586
  store double 1.000000e+00, ptr %589, align 8, !tbaa !47
  %591 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 14
  %592 = load i32, ptr %591, align 4, !tbaa !46
  %593 = load i32, ptr %67, align 4, !tbaa !36
  %594 = sub i32 %592, %593
  %595 = sub i32 %594, 1
  %596 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 34
  %597 = load i32, ptr %65, align 4, !tbaa !36
  %598 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %596, i32 noundef %597, i32 noundef 0)
          to label %599 unwind label %544

599:                                              ; preds = %590
  store i32 %595, ptr %598, align 4, !tbaa !36
  %600 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 14
  %601 = load i32, ptr %600, align 4, !tbaa !46
  %602 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 34
  %603 = load i32, ptr %65, align 4, !tbaa !36
  %604 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %602, i32 noundef %603, i32 noundef 1)
          to label %605 unwind label %544

605:                                              ; preds = %599
  store i32 %601, ptr %604, align 4, !tbaa !36
  br label %637

606:                                              ; preds = %519
  %607 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 29
  %608 = load i32, ptr %65, align 4, !tbaa !36
  %609 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %607, i32 noundef %608, i32 noundef 0)
          to label %610 unwind label %544

610:                                              ; preds = %606
  store double -1.000000e+00, ptr %609, align 8, !tbaa !47
  %611 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 38
  %612 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 14
  %613 = load i32, ptr %612, align 4, !tbaa !46
  %614 = load i32, ptr %67, align 4, !tbaa !36
  %615 = sub i32 %613, %614
  %616 = sub i32 %615, 1
  %617 = zext i32 %616 to i64
  %618 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %611, i64 noundef %617) #7
  %619 = load double, ptr %618, align 8, !tbaa !47
  %620 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 29
  %621 = load i32, ptr %65, align 4, !tbaa !36
  %622 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %620, i32 noundef %621, i32 noundef 1)
          to label %623 unwind label %544

623:                                              ; preds = %610
  store double %619, ptr %622, align 8, !tbaa !47
  %624 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 34
  %625 = load i32, ptr %65, align 4, !tbaa !36
  %626 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %624, i32 noundef %625, i32 noundef 0)
          to label %627 unwind label %544

627:                                              ; preds = %623
  store i32 -1, ptr %626, align 4, !tbaa !36
  %628 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 14
  %629 = load i32, ptr %628, align 4, !tbaa !46
  %630 = load i32, ptr %67, align 4, !tbaa !36
  %631 = sub i32 %629, %630
  %632 = sub i32 %631, 1
  %633 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 34
  %634 = load i32, ptr %65, align 4, !tbaa !36
  %635 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %633, i32 noundef %634, i32 noundef 1)
          to label %636 unwind label %544

636:                                              ; preds = %627
  store i32 %632, ptr %635, align 4, !tbaa !36
  br label %637

637:                                              ; preds = %636, %605, %572, %543, %519
  %638 = load i32, ptr %65, align 4, !tbaa !36
  %639 = add i32 %638, 1
  store i32 %639, ptr %65, align 4, !tbaa !36
  br label %640

640:                                              ; preds = %637
  %641 = load i32, ptr %67, align 4, !tbaa !36
  %642 = add i32 %641, 1
  store i32 %642, ptr %67, align 4, !tbaa !36
  br label %513, !llvm.loop !54

643:                                              ; preds = %518
  br label %644

644:                                              ; preds = %643
  %645 = load i32, ptr %66, align 4, !tbaa !36
  %646 = add i32 %645, 1
  store i32 %646, ptr %66, align 4, !tbaa !36
  br label %506, !llvm.loop !55

647:                                              ; preds = %511
  call void @llvm.lifetime.start.p0(i64 24, ptr %68) #7
  %648 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 5
  %649 = load i32, ptr %648, align 8, !tbaa !45
  invoke void @_Z9Shape_ptsj(ptr dead_on_unwind writable sret(%"class.std::vector") align 8 %68, i32 noundef %649)
          to label %650 unwind label %657

650:                                              ; preds = %647
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #7
  store i32 0, ptr %69, align 4, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #7
  store i32 0, ptr %70, align 4, !tbaa !36
  br label %651

651:                                              ; preds = %705, %650
  %652 = load i32, ptr %70, align 4, !tbaa !36
  %653 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 14
  %654 = load i32, ptr %653, align 4, !tbaa !46
  %655 = icmp ult i32 %652, %654
  br i1 %655, label %661, label %656

656:                                              ; preds = %651
  store i32 18, ptr %63, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #7
  br label %708

657:                                              ; preds = %647
  %658 = landingpad { ptr, i32 }
          cleanup
  %659 = extractvalue { ptr, i32 } %658, 0
  store ptr %659, ptr %7, align 8
  %660 = extractvalue { ptr, i32 } %658, 1
  store i32 %660, ptr %8, align 4
  br label %832

661:                                              ; preds = %651
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #7
  store i32 0, ptr %71, align 4, !tbaa !36
  br label %662

662:                                              ; preds = %697, %661
  %663 = load i32, ptr %71, align 4, !tbaa !36
  %664 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 14
  %665 = load i32, ptr %664, align 4, !tbaa !46
  %666 = icmp ult i32 %663, %665
  br i1 %666, label %668, label %667

667:                                              ; preds = %662
  store i32 21, ptr %63, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #7
  br label %704

668:                                              ; preds = %662
  %669 = load i32, ptr %71, align 4, !tbaa !36
  %670 = zext i32 %669 to i64
  %671 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %68, i64 noundef %670) #7
  %672 = load double, ptr %671, align 8, !tbaa !47
  %673 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 30
  %674 = load i32, ptr %69, align 4, !tbaa !36
  %675 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %673, i32 noundef %674, i32 noundef 0)
          to label %676 unwind label %700

676:                                              ; preds = %668
  store double %672, ptr %675, align 8, !tbaa !47
  %677 = load i32, ptr %70, align 4, !tbaa !36
  %678 = zext i32 %677 to i64
  %679 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %68, i64 noundef %678) #7
  %680 = load double, ptr %679, align 8, !tbaa !47
  %681 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 30
  %682 = load i32, ptr %69, align 4, !tbaa !36
  %683 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %681, i32 noundef %682, i32 noundef 1)
          to label %684 unwind label %700

684:                                              ; preds = %676
  store double %680, ptr %683, align 8, !tbaa !47
  %685 = load i32, ptr %71, align 4, !tbaa !36
  %686 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 35
  %687 = load i32, ptr %69, align 4, !tbaa !36
  %688 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %686, i32 noundef %687, i32 noundef 0)
          to label %689 unwind label %700

689:                                              ; preds = %684
  store i32 %685, ptr %688, align 4, !tbaa !36
  %690 = load i32, ptr %70, align 4, !tbaa !36
  %691 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 35
  %692 = load i32, ptr %69, align 4, !tbaa !36
  %693 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %691, i32 noundef %692, i32 noundef 1)
          to label %694 unwind label %700

694:                                              ; preds = %689
  store i32 %690, ptr %693, align 4, !tbaa !36
  %695 = load i32, ptr %69, align 4, !tbaa !36
  %696 = add i32 %695, 1
  store i32 %696, ptr %69, align 4, !tbaa !36
  br label %697

697:                                              ; preds = %694
  %698 = load i32, ptr %71, align 4, !tbaa !36
  %699 = add i32 %698, 1
  store i32 %699, ptr %71, align 4, !tbaa !36
  br label %662, !llvm.loop !56

700:                                              ; preds = %689, %684, %676, %668
  %701 = landingpad { ptr, i32 }
          cleanup
  %702 = extractvalue { ptr, i32 } %701, 0
  store ptr %702, ptr %7, align 8
  %703 = extractvalue { ptr, i32 } %701, 1
  store i32 %703, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #7
  br label %831

704:                                              ; preds = %667
  br label %705

705:                                              ; preds = %704
  %706 = load i32, ptr %70, align 4, !tbaa !36
  %707 = add i32 %706, 1
  store i32 %707, ptr %70, align 4, !tbaa !36
  br label %651, !llvm.loop !57

708:                                              ; preds = %656
  call void @llvm.lifetime.start.p0(i64 24, ptr %72) #7
  %709 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 1
  %710 = load ptr, ptr %709, align 8, !tbaa !44
  %711 = getelementptr inbounds %struct.InputStruct, ptr %710, i32 0, i32 5
  %712 = load i32, ptr %711, align 4, !tbaa !58
  invoke void @_Z18Gauss_Legendre_ptsj(ptr dead_on_unwind writable sret(%"class.std::vector") align 8 %72, i32 noundef %712)
          to label %713 unwind label %747

713:                                              ; preds = %708
  %714 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 40
  %715 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %714, ptr noundef nonnull align 8 dereferenceable(24) %72) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %72) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %72) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %73) #7
  %716 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 1
  %717 = load ptr, ptr %716, align 8, !tbaa !44
  %718 = getelementptr inbounds %struct.InputStruct, ptr %717, i32 0, i32 5
  %719 = load i32, ptr %718, align 4, !tbaa !58
  invoke void @_Z22Gauss_Legendre_weightsj(ptr dead_on_unwind writable sret(%"class.std::vector") align 8 %73, i32 noundef %719)
          to label %720 unwind label %751

720:                                              ; preds = %713
  %721 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 65
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #7
  %722 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 1
  %723 = load ptr, ptr %722, align 8, !tbaa !44
  %724 = getelementptr inbounds %struct.InputStruct, ptr %723, i32 0, i32 5
  %725 = load i32, ptr %724, align 4, !tbaa !58
  %726 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 1
  %727 = load ptr, ptr %726, align 8, !tbaa !44
  %728 = getelementptr inbounds %struct.InputStruct, ptr %727, i32 0, i32 5
  %729 = load i32, ptr %728, align 4, !tbaa !58
  %730 = mul i32 %725, %729
  store i32 %730, ptr %76, align 4, !tbaa !36
  %731 = getelementptr inbounds %"class.std::initializer_list", ptr %75, i32 0, i32 0
  store ptr %76, ptr %731, align 8, !tbaa !38
  %732 = getelementptr inbounds %"class.std::initializer_list", ptr %75, i32 0, i32 1
  store i64 1, ptr %732, align 8, !tbaa !40
  call void @llvm.lifetime.start.p0(i64 1, ptr %77) #7
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #7
  %733 = getelementptr inbounds { ptr, i64 }, ptr %75, i32 0, i32 0
  %734 = load ptr, ptr %733, align 8
  %735 = getelementptr inbounds { ptr, i64 }, ptr %75, i32 0, i32 1
  %736 = load i64, ptr %735, align 8
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %74, ptr %734, i64 %736, ptr noundef nonnull align 1 dereferenceable(1) %77)
          to label %737 unwind label %755

737:                                              ; preds = %720
  invoke void @_ZN8mdvectorIdE6assignESt6vectorIjSaIjEEdb(ptr noundef nonnull align 8 dereferenceable(105) %721, ptr noundef %74, double noundef 0.000000e+00, i1 noundef zeroext false)
          to label %738 unwind label %759

738:                                              ; preds = %737
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %74) #7
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %77) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #7
  store i32 0, ptr %78, align 4, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #7
  store i32 0, ptr %79, align 4, !tbaa !36
  br label %739

739:                                              ; preds = %825, %738
  %740 = load i32, ptr %79, align 4, !tbaa !36
  %741 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 1
  %742 = load ptr, ptr %741, align 8, !tbaa !44
  %743 = getelementptr inbounds %struct.InputStruct, ptr %742, i32 0, i32 5
  %744 = load i32, ptr %743, align 4, !tbaa !58
  %745 = icmp ult i32 %740, %744
  br i1 %745, label %764, label %746

746:                                              ; preds = %739
  store i32 24, ptr %63, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #7
  br label %828

747:                                              ; preds = %708
  %748 = landingpad { ptr, i32 }
          cleanup
  %749 = extractvalue { ptr, i32 } %748, 0
  store ptr %749, ptr %7, align 8
  %750 = extractvalue { ptr, i32 } %748, 1
  store i32 %750, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %72) #7
  br label %831

751:                                              ; preds = %713
  %752 = landingpad { ptr, i32 }
          cleanup
  %753 = extractvalue { ptr, i32 } %752, 0
  store ptr %753, ptr %7, align 8
  %754 = extractvalue { ptr, i32 } %752, 1
  store i32 %754, ptr %8, align 4
  br label %830

755:                                              ; preds = %720
  %756 = landingpad { ptr, i32 }
          cleanup
  %757 = extractvalue { ptr, i32 } %756, 0
  store ptr %757, ptr %7, align 8
  %758 = extractvalue { ptr, i32 } %756, 1
  store i32 %758, ptr %8, align 4
  br label %763

759:                                              ; preds = %737
  %760 = landingpad { ptr, i32 }
          cleanup
  %761 = extractvalue { ptr, i32 } %760, 0
  store ptr %761, ptr %7, align 8
  %762 = extractvalue { ptr, i32 } %760, 1
  store i32 %762, ptr %8, align 4
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %74) #7
  br label %763

763:                                              ; preds = %759, %755
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %77) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #7
  br label %829

764:                                              ; preds = %739
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #7
  store i32 0, ptr %80, align 4, !tbaa !36
  br label %765

765:                                              ; preds = %817, %764
  %766 = load i32, ptr %80, align 4, !tbaa !36
  %767 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 1
  %768 = load ptr, ptr %767, align 8, !tbaa !44
  %769 = getelementptr inbounds %struct.InputStruct, ptr %768, i32 0, i32 5
  %770 = load i32, ptr %769, align 4, !tbaa !58
  %771 = icmp ult i32 %766, %770
  br i1 %771, label %773, label %772

772:                                              ; preds = %765
  store i32 27, ptr %63, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #7
  br label %824

773:                                              ; preds = %765
  %774 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 40
  %775 = load i32, ptr %80, align 4, !tbaa !36
  %776 = zext i32 %775 to i64
  %777 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %774, i64 noundef %776) #7
  %778 = load double, ptr %777, align 8, !tbaa !47
  %779 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 32
  %780 = load i32, ptr %78, align 4, !tbaa !36
  %781 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %779, i32 noundef %780, i32 noundef 0)
          to label %782 unwind label %820

782:                                              ; preds = %773
  store double %778, ptr %781, align 8, !tbaa !47
  %783 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 40
  %784 = load i32, ptr %79, align 4, !tbaa !36
  %785 = zext i32 %784 to i64
  %786 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %783, i64 noundef %785) #7
  %787 = load double, ptr %786, align 8, !tbaa !47
  %788 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 32
  %789 = load i32, ptr %78, align 4, !tbaa !36
  %790 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %788, i32 noundef %789, i32 noundef 1)
          to label %791 unwind label %820

791:                                              ; preds = %782
  store double %787, ptr %790, align 8, !tbaa !47
  %792 = load i32, ptr %80, align 4, !tbaa !36
  %793 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 37
  %794 = load i32, ptr %78, align 4, !tbaa !36
  %795 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %793, i32 noundef %794, i32 noundef 0)
          to label %796 unwind label %820

796:                                              ; preds = %791
  store i32 %792, ptr %795, align 4, !tbaa !36
  %797 = load i32, ptr %79, align 4, !tbaa !36
  %798 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 37
  %799 = load i32, ptr %78, align 4, !tbaa !36
  %800 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %798, i32 noundef %799, i32 noundef 1)
          to label %801 unwind label %820

801:                                              ; preds = %796
  store i32 %797, ptr %800, align 4, !tbaa !36
  %802 = load i32, ptr %79, align 4, !tbaa !36
  %803 = zext i32 %802 to i64
  %804 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %73, i64 noundef %803) #7
  %805 = load double, ptr %804, align 8, !tbaa !47
  %806 = load i32, ptr %80, align 4, !tbaa !36
  %807 = zext i32 %806 to i64
  %808 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %73, i64 noundef %807) #7
  %809 = load double, ptr %808, align 8, !tbaa !47
  %810 = fmul double %805, %809
  %811 = getelementptr inbounds %class.Elements, ptr %81, i32 0, i32 65
  %812 = load i32, ptr %78, align 4, !tbaa !36
  %813 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEj(ptr noundef nonnull align 8 dereferenceable(105) %811, i32 noundef %812)
          to label %814 unwind label %820

814:                                              ; preds = %801
  store double %810, ptr %813, align 8, !tbaa !47
  %815 = load i32, ptr %78, align 4, !tbaa !36
  %816 = add i32 %815, 1
  store i32 %816, ptr %78, align 4, !tbaa !36
  br label %817

817:                                              ; preds = %814
  %818 = load i32, ptr %80, align 4, !tbaa !36
  %819 = add i32 %818, 1
  store i32 %819, ptr %80, align 4, !tbaa !36
  br label %765, !llvm.loop !78

820:                                              ; preds = %801, %796, %791, %782, %773
  %821 = landingpad { ptr, i32 }
          cleanup
  %822 = extractvalue { ptr, i32 } %821, 0
  store ptr %822, ptr %7, align 8
  %823 = extractvalue { ptr, i32 } %821, 1
  store i32 %823, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #7
  br label %829

824:                                              ; preds = %772
  br label %825

825:                                              ; preds = %824
  %826 = load i32, ptr %79, align 4, !tbaa !36
  %827 = add i32 %826, 1
  store i32 %827, ptr %79, align 4, !tbaa !36
  br label %739, !llvm.loop !79

828:                                              ; preds = %746
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %73) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %73) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %68) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %68) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %43) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %43) #7
  ret void

829:                                              ; preds = %820, %763
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %73) #7
  br label %830

830:                                              ; preds = %829, %751
  call void @llvm.lifetime.end.p0(i64 24, ptr %73) #7
  br label %831

831:                                              ; preds = %830, %747, %700
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #7
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %68) #7
  br label %832

832:                                              ; preds = %831, %657
  call void @llvm.lifetime.end.p0(i64 24, ptr %68) #7
  br label %833

833:                                              ; preds = %832, %544
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #7
  br label %834

834:                                              ; preds = %833, %497
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #7
  br label %835

835:                                              ; preds = %834, %442, %430, %426, %422, %378, %365
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %43) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %43) #7
  br label %836

836:                                              ; preds = %835, %335, %275, %266, %257, %248, %239, %230, %221, %212
  %837 = load ptr, ptr %7, align 8
  %838 = load i32, ptr %8, align 4
  %839 = insertvalue { ptr, i32 } poison, ptr %837, 0
  %840 = insertvalue { ptr, i32 } %839, i32 %838, 1
  resume { ptr, i32 } %840

841:                                              ; preds = %309
  unreachable
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8mdvectorIdE6assignESt6vectorIjSaIjEEdb(ptr noundef nonnull align 8 dereferenceable(105), ptr noundef, double noundef, i1 noundef zeroext) #1 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8mdvectorIjE6assignESt6vectorIjSaIjEEjb(ptr noundef nonnull align 8 dereferenceable(105), ptr noundef, i32 noundef, i1 noundef zeroext) #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #3

declare void @_Z18Gauss_Legendre_ptsj(ptr dead_on_unwind writable sret(%"class.std::vector") align 8, i32 noundef) #4

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

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

declare void @_Z9DFRsp_ptsjd(ptr dead_on_unwind writable sret(%"class.std::vector") align 8, i32 noundef, double noundef) #4

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128)) unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) #5

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #5

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

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

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

declare ptr @__cxa_allocate_exception(i64)

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

declare void @_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4

; Function Attrs: nounwind
declare void @_ZNSt13runtime_errorD1Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #6

declare void @__cxa_throw(ptr, ptr, ptr)

declare void @__cxa_free_exception(ptr)

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

declare void @_Z22Gauss_Legendre_weightsj(ptr dead_on_unwind writable sret(%"class.std::vector") align 8, i32 noundef) #4

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEj(ptr noundef nonnull align 8 dereferenceable(105), i32 noundef) #2 align 2

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105), i32 noundef, i32 noundef) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105), i32 noundef, i32 noundef) #2 align 2

declare void @_Z9Shape_ptsj(ptr dead_on_unwind writable sret(%"class.std::vector") align 8, i32 noundef) #4

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind }
attributes #8 = { noreturn }

!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, !12, i64 60}
!10 = !{!"_ZTS8Elements", !6, i64 8, !6, i64 16, !11, i64 24, !12, i64 28, !12, i64 32, !12, i64 36, !12, i64 40, !12, i64 44, !12, i64 48, !12, i64 52, !12, i64 56, !12, i64 60, !12, i64 64, !12, i64 68, !12, i64 72, !12, i64 76, !12, i64 80, !12, i64 84, !12, i64 88, !12, i64 92, !12, i64 96, !13, i64 104, !13, i64 216, !13, i64 328, !13, i64 440, !21, i64 552, !13, i64 576, !13, i64 688, !13, i64 800, !13, i64 912, !13, i64 1024, !25, i64 1136, !25, i64 1248, !25, i64 1360, !25, i64 1472, !25, i64 1584, !16, i64 1696, !16, i64 1720, !16, i64 1744, !16, i64 1768, !13, i64 1792, !13, i64 1904, !13, i64 2016, !13, i64 2128, !13, i64 2240, !13, i64 2352, !13, i64 2464, !13, i64 2576, !13, i64 2688, !13, i64 2800, !13, i64 2912, !13, i64 3024, !13, i64 3136, !13, i64 3248, !13, i64 3360, !13, i64 3472, !13, i64 3584, !13, i64 3696, !13, i64 3808, !13, i64 3920, !13, i64 4032, !13, i64 4144, !13, i64 4256, !13, i64 4368, !13, i64 4480, !13, i64 4592, !13, i64 4704, !13, i64 4816, !13, i64 4928, !13, i64 5040, !13, i64 5152, !13, i64 5264, !13, i64 5376, !13, i64 5488, !13, i64 5600, !13, i64 5712, !13, i64 5824, !13, i64 5936, !12, i64 6048, !16, i64 6056, !16, i64 6080, !16, i64 6104, !16, i64 6128, !16, i64 6152, !16, i64 6176, !16, i64 6200, !26, i64 6224, !13, i64 6248, !13, i64 6360, !13, i64 6472, !13, i64 6584, !13, i64 6696, !13, i64 6808, !13, i64 6920, !13, i64 7032, !13, i64 7144, !14, i64 7256, !14, i64 7264, !14, i64 7272, !14, i64 7280, !14, i64 7288, !13, i64 7296, !13, i64 7408, !13, i64 7520, !13, i64 7632, !13, i64 7744, !13, i64 7856, !13, i64 7968, !13, i64 8080, !13, i64 8192, !13, i64 8304, !13, i64 8416, !13, i64 8528, !13, i64 8640, !13, i64 8752, !13, i64 8864, !13, i64 8976, !13, i64 9088, !13, i64 9200, !13, i64 9312, !13, i64 9424, !13, i64 9536, !13, i64 9648, !13, i64 9760, !13, i64 9872, !13, i64 9984, !13, i64 10096, !13, i64 10208, !13, i64 10320, !13, i64 10432, !13, i64 10544, !13, i64 10656, !13, i64 10768, !13, i64 10880, !13, i64 10992, !13, i64 11104, !13, i64 11216, !13, i64 11328, !13, i64 11440, !13, i64 11552, !13, i64 11664, !13, i64 11776, !13, i64 11888, !13, i64 12000, !30, i64 12112, !30, i64 12344, !13, i64 12576, !13, i64 12688, !13, i64 12800, !13, i64 12912, !13, i64 13024, !13, i64 13136, !12, i64 13248, !13, i64 13256, !13, i64 13368, !12, i64 13480, !6, i64 13488, !26, i64 13496, !25, i64 13520, !13, i64 13632, !13, i64 13744, !13, i64 13856}
!11 = !{!"_ZTS8ELE_TYPE", !7, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!"_ZTS8mdvectorIdE", !12, i64 0, !14, i64 8, !14, i64 16, !15, i64 24, !15, i64 48, !16, i64 72, !6, i64 96, !20, i64 104}
!14 = !{!"long", !7, i64 0}
!15 = !{!"_ZTSSt5arrayIjLm6EE", !7, i64 0}
!16 = !{!"_ZTSSt6vectorIdSaIdEE", !17, i64 0}
!17 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!20 = !{!"bool", !7, i64 0}
!21 = !{!"_ZTSSt6vectorIjSaIjEE", !22, i64 0}
!22 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!25 = !{!"_ZTS8mdvectorIjE", !12, i64 0, !14, i64 8, !14, i64 16, !15, i64 24, !15, i64 48, !21, i64 72, !6, i64 96, !20, i64 104}
!26 = !{!"_ZTSSt6vectorIiSaIiEE", !27, i64 0}
!27 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!30 = !{!"_ZTS6mdviewIdE", !31, i64 0, !25, i64 112, !12, i64 224}
!31 = !{!"_ZTS8mdvectorIPdE", !12, i64 0, !14, i64 8, !14, i64 16, !15, i64 24, !15, i64 48, !32, i64 72, !6, i64 96, !20, i64 104}
!32 = !{!"_ZTSSt6vectorIPdSaIS0_EE", !33, i64 0}
!33 = !{!"_ZTSSt12_Vector_baseIPdSaIS0_EE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIPdSaIS0_EE12_Vector_implE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseIPdSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!36 = !{!12, !12, i64 0}
!37 = !{!10, !12, i64 52}
!38 = !{!39, !6, i64 0}
!39 = !{!"_ZTSSt16initializer_listIjE", !6, i64 0, !14, i64 8}
!40 = !{!39, !14, i64 8}
!41 = !{!10, !12, i64 64}
!42 = !{!10, !12, i64 72}
!43 = !{!10, !12, i64 76}
!44 = !{!10, !6, i64 8}
!45 = !{!10, !12, i64 32}
!46 = !{!10, !12, i64 68}
!47 = !{!48, !48, i64 0}
!48 = !{!"double", !7, i64 0}
!49 = distinct !{!49, !50}
!50 = !{!"llvm.loop.mustprogress"}
!51 = distinct !{!51, !50}
!52 = distinct !{!52, !50}
!53 = !{!10, !12, i64 84}
!54 = distinct !{!54, !50}
!55 = distinct !{!55, !50}
!56 = distinct !{!56, !50}
!57 = distinct !{!57, !50}
!58 = !{!59, !12, i64 20}
!59 = !{!"_ZTS11InputStruct", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !12, i64 20, !12, i64 24, !12, i64 28, !12, i64 32, !12, i64 36, !12, i64 40, !12, i64 44, !12, i64 48, !12, i64 52, !12, i64 56, !12, i64 60, !12, i64 64, !12, i64 68, !60, i64 72, !60, i64 104, !60, i64 136, !60, i64 168, !60, i64 200, !60, i64 232, !20, i64 264, !20, i64 265, !20, i64 266, !20, i64 267, !20, i64 268, !20, i64 269, !20, i64 270, !20, i64 271, !21, i64 272, !21, i64 296, !12, i64 320, !12, i64 324, !48, i64 328, !48, i64 336, !48, i64 344, !48, i64 352, !48, i64 360, !48, i64 368, !48, i64 376, !48, i64 384, !13, i64 392, !13, i64 504, !13, i64 616, !13, i64 728, !13, i64 840, !48, i64 952, !48, i64 960, !48, i64 968, !48, i64 976, !48, i64 984, !48, i64 992, !48, i64 1000, !48, i64 1008, !48, i64 1016, !48, i64 1024, !48, i64 1032, !48, i64 1040, !48, i64 1048, !48, i64 1056, !48, i64 1064, !48, i64 1072, !48, i64 1080, !48, i64 1088, !48, i64 1096, !48, i64 1104, !48, i64 1112, !48, i64 1120, !48, i64 1128, !48, i64 1136, !48, i64 1144, !48, i64 1152, !48, i64 1160, !48, i64 1168, !48, i64 1176, !48, i64 1184, !48, i64 1192, !48, i64 1200, !48, i64 1208, !48, i64 1216, !12, i64 1224, !12, i64 1228, !12, i64 1232, !12, i64 1236, !12, i64 1240, !12, i64 1244, !12, i64 1248, !12, i64 1252, !12, i64 1256, !12, i64 1260, !48, i64 1264, !48, i64 1272, !48, i64 1280, !48, i64 1288, !48, i64 1296, !48, i64 1304, !48, i64 1312, !12, i64 1320, !12, i64 1324, !48, i64 1328, !48, i64 1336, !12, i64 1344, !48, i64 1352, !48, i64 1360, !48, i64 1368, !48, i64 1376, !48, i64 1384, !48, i64 1392, !48, i64 1400, !48, i64 1408, !62, i64 1416, !62, i64 1418, !62, i64 1420, !62, i64 1422, !12, i64 1424, !12, i64 1428, !12, i64 1432, !60, i64 1440, !20, i64 1472, !20, i64 1473, !20, i64 1474, !20, i64 1475, !12, i64 1476, !12, i64 1480, !20, i64 1484, !20, i64 1485, !20, i64 1486, !20, i64 1487, !12, i64 1488, !12, i64 1492, !12, i64 1496, !12, i64 1500, !63, i64 1504, !26, i64 1528, !48, i64 1552, !48, i64 1560, !48, i64 1568, !48, i64 1576, !48, i64 1584, !48, i64 1592, !7, i64 1600, !48, i64 1624, !7, i64 1632, !7, i64 1656, !7, i64 1680, !7, i64 1704, !48, i64 1728, !7, i64 1736, !7, i64 1760, !48, i64 1784, !7, i64 1792, !67, i64 1864, !20, i64 1912, !20, i64 1913, !20, i64 1914, !20, i64 1915, !20, i64 1916, !20, i64 1917, !20, i64 1918, !20, i64 1919, !48, i64 1920, !48, i64 1928, !48, i64 1936, !48, i64 1944, !12, i64 1952, !12, i64 1956, !12, i64 1960, !12, i64 1964, !12, i64 1968, !12, i64 1972, !12, i64 1976, !12, i64 1980, !12, i64 1984, !20, i64 1988, !48, i64 1992, !48, i64 2000, !75, i64 2008}
!60 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !61, i64 0, !14, i64 8, !7, i64 16}
!61 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!62 = !{!"short", !7, i64 0}
!63 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !64, i64 0}
!64 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !65, i64 0}
!65 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !66, i64 0}
!66 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!67 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE", !68, i64 0}
!68 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE", !69, i64 0}
!69 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE13_Rb_tree_implISC_Lb1EEE", !70, i64 0, !72, i64 8}
!70 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !71, i64 0}
!71 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!72 = !{!"_ZTSSt15_Rb_tree_header", !73, i64 0, !14, i64 32}
!73 = !{!"_ZTSSt18_Rb_tree_node_base", !74, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!74 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!75 = !{!"_ZTS5Timer", !76, i64 0, !76, i64 8, !48, i64 16, !60, i64 24}
!76 = !{!"_ZTSNSt6chrono10time_pointINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEEEE", !77, i64 0}
!77 = !{!"_ZTSNSt6chrono8durationIlSt5ratioILl1ELl1000000000EEEE", !14, i64 0}
!78 = distinct !{!78, !50}
!79 = distinct !{!79, !50}


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

%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.2" = type { i8 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::__cxx11::basic_stringstream" = type { %"class.std::basic_iostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_iostream.base" = type { %"class.std::basic_istream.base", %"class.std::basic_ostream.base" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.__gnu_cxx::__normal_iterator.160" = type { ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }

@.str = external hidden unnamed_addr constant [9 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@__func__._ZN5Quads8set_locsEv = external hidden unnamed_addr constant [9 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [26 x i8], align 1
@_ZTISt13runtime_error = external constant ptr

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5Quads8set_locsEv(ptr noundef nonnull align 8 dereferenceable(13968) %0) unnamed_addr #1 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.std::vector.0", align 8
  %3 = alloca [2 x i32], align 4
  %4 = alloca %"class.std::allocator.2", align 1
  %5 = alloca %"class.std::vector.0", align 8
  %6 = alloca [2 x i32], align 4
  %7 = alloca %"class.std::allocator.2", align 1
  %8 = alloca %"class.std::vector.0", align 8
  %9 = alloca [2 x i32], align 4
  %10 = alloca %"class.std::allocator.2", align 1
  %11 = alloca %"class.std::vector.0", align 8
  %12 = alloca [2 x i32], align 4
  %13 = alloca %"class.std::allocator.2", align 1
  %14 = alloca %"class.std::vector.0", align 8
  %15 = alloca [2 x i32], align 4
  %16 = alloca %"class.std::allocator.2", align 1
  %17 = alloca %"class.std::vector.0", align 8
  %18 = alloca [2 x i32], align 4
  %19 = alloca %"class.std::allocator.2", align 1
  %20 = alloca %"class.std::vector.0", align 8
  %21 = alloca [2 x i32], align 4
  %22 = alloca %"class.std::allocator.2", align 1
  %23 = alloca %"class.std::vector.0", align 8
  %24 = alloca [2 x i32], align 4
  %25 = alloca %"class.std::allocator.2", align 1
  %26 = alloca %"class.std::vector", align 8
  %27 = alloca %"class.std::vector", align 8
  %28 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::vector", align 8
  %32 = alloca %"class.std::vector.0", align 8
  %33 = alloca [1 x i32], align 4
  %34 = alloca %"class.std::allocator.2", align 1
  %35 = alloca %"class.__gnu_cxx::__normal_iterator.160", align 8
  %36 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %37 = alloca double, align 8
  %38 = alloca %"class.__gnu_cxx::__normal_iterator.160", align 8
  %39 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %40 = alloca double, align 8
  %41 = alloca %"class.std::vector.0", align 8
  %42 = alloca [1 x i32], align 4
  %43 = alloca %"class.std::allocator.2", align 1
  %44 = alloca %"class.std::vector", align 8
  %45 = alloca %"class.std::vector", align 8
  %46 = alloca %"class.std::vector", align 8
  %47 = alloca %"class.std::vector.0", align 8
  %48 = alloca [1 x i32], align 4
  %49 = alloca %"class.std::allocator.2", align 1
  %50 = getelementptr inbounds i8, ptr %0, i64 576
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #8
  %51 = getelementptr inbounds i8, ptr %0, i64 60
  %52 = load i32, ptr %51, align 4, !tbaa !5
  store i32 %52, ptr %3, align 4, !tbaa !35
  %53 = getelementptr inbounds i8, ptr %3, i64 4
  %54 = getelementptr inbounds i8, ptr %0, i64 52
  %55 = load i32, ptr %54, align 4, !tbaa !36
  store i32 %55, ptr %53, align 4, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) #8
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %2, ptr nonnull %3, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %4)
          to label %56 unwind label %113

56:                                               ; preds = %1
  invoke void @_ZN8mdvectorIdE6assignESt6vectorIjSaIjEEdb(ptr noundef nonnull align 8 dereferenceable(105) %50, ptr noundef nonnull %2, double noundef 0.000000e+00, i1 noundef zeroext false)
          to label %57 unwind label %115

57:                                               ; preds = %56
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %2) #8
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #8
  %58 = getelementptr inbounds i8, ptr %0, i64 1136
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #8
  %59 = load i32, ptr %51, align 4, !tbaa !5
  store i32 %59, ptr %6, align 4, !tbaa !35
  %60 = getelementptr inbounds i8, ptr %6, i64 4
  %61 = load i32, ptr %54, align 4, !tbaa !36
  store i32 %61, ptr %60, align 4, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #8
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr nonnull %6, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %62 unwind label %118

62:                                               ; preds = %57
  invoke void @_ZN8mdvectorIjE6assignESt6vectorIjSaIjEEjb(ptr noundef nonnull align 8 dereferenceable(105) %58, ptr noundef nonnull %5, i32 noundef 0, i1 noundef zeroext false)
          to label %63 unwind label %120

63:                                               ; preds = %62
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #8
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #8
  %64 = getelementptr inbounds i8, ptr %0, i64 688
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #8
  %65 = getelementptr inbounds i8, ptr %0, i64 64
  %66 = load i32, ptr %65, align 8, !tbaa !37
  store i32 %66, ptr %9, align 4, !tbaa !35
  %67 = getelementptr inbounds i8, ptr %9, i64 4
  %68 = load i32, ptr %54, align 4, !tbaa !36
  store i32 %68, ptr %67, align 4, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #8
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #8
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr nonnull %9, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %69 unwind label %123

69:                                               ; preds = %63
  invoke void @_ZN8mdvectorIdE6assignESt6vectorIjSaIjEEdb(ptr noundef nonnull align 8 dereferenceable(105) %64, ptr noundef nonnull %8, double noundef 0.000000e+00, i1 noundef zeroext false)
          to label %70 unwind label %125

70:                                               ; preds = %69
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #8
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #8
  %71 = getelementptr inbounds i8, ptr %0, i64 1248
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #8
  %72 = load i32, ptr %65, align 8, !tbaa !37
  store i32 %72, ptr %12, align 4, !tbaa !35
  %73 = getelementptr inbounds i8, ptr %12, i64 4
  %74 = load i32, ptr %54, align 4, !tbaa !36
  store i32 %74, ptr %73, align 4, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %13) #8
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %11, ptr nonnull %12, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %75 unwind label %128

75:                                               ; preds = %70
  invoke void @_ZN8mdvectorIjE6assignESt6vectorIjSaIjEEjb(ptr noundef nonnull align 8 dereferenceable(105) %71, ptr noundef nonnull %11, i32 noundef 0, i1 noundef zeroext false)
          to label %76 unwind label %130

76:                                               ; preds = %75
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #8
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #8
  %77 = getelementptr inbounds i8, ptr %0, i64 800
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #8
  %78 = getelementptr inbounds i8, ptr %0, i64 72
  %79 = load i32, ptr %78, align 8, !tbaa !38
  store i32 %79, ptr %15, align 4, !tbaa !35
  %80 = getelementptr inbounds i8, ptr %15, i64 4
  %81 = load i32, ptr %54, align 4, !tbaa !36
  store i32 %81, ptr %80, align 4, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #8
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %14, ptr nonnull %15, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %82 unwind label %133

82:                                               ; preds = %76
  invoke void @_ZN8mdvectorIdE6assignESt6vectorIjSaIjEEdb(ptr noundef nonnull align 8 dereferenceable(105) %77, ptr noundef nonnull %14, double noundef 0.000000e+00, i1 noundef zeroext false)
          to label %83 unwind label %135

83:                                               ; preds = %82
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #8
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #8
  %84 = getelementptr inbounds i8, ptr %0, i64 1360
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #8
  %85 = load i32, ptr %78, align 8, !tbaa !38
  store i32 %85, ptr %18, align 4, !tbaa !35
  %86 = getelementptr inbounds i8, ptr %18, i64 4
  %87 = load i32, ptr %54, align 4, !tbaa !36
  store i32 %87, ptr %86, align 4, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #8
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #8
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %17, ptr nonnull %18, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %88 unwind label %138

88:                                               ; preds = %83
  invoke void @_ZN8mdvectorIjE6assignESt6vectorIjSaIjEEjb(ptr noundef nonnull align 8 dereferenceable(105) %84, ptr noundef nonnull %17, i32 noundef 0, i1 noundef zeroext false)
          to label %89 unwind label %140

89:                                               ; preds = %88
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #8
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #8
  %90 = getelementptr inbounds i8, ptr %0, i64 1024
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #8
  %91 = getelementptr inbounds i8, ptr %0, i64 76
  %92 = load i32, ptr %91, align 4, !tbaa !39
  store i32 %92, ptr %21, align 4, !tbaa !35
  %93 = getelementptr inbounds i8, ptr %21, i64 4
  %94 = load i32, ptr %54, align 4, !tbaa !36
  store i32 %94, ptr %93, align 4, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #8
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #8
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %20, ptr nonnull %21, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %95 unwind label %143

95:                                               ; preds = %89
  invoke void @_ZN8mdvectorIdE6assignESt6vectorIjSaIjEEdb(ptr noundef nonnull align 8 dereferenceable(105) %90, ptr noundef nonnull %20, double noundef 0.000000e+00, i1 noundef zeroext false)
          to label %96 unwind label %145

96:                                               ; preds = %95
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #8
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #8
  %97 = getelementptr inbounds i8, ptr %0, i64 1584
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #8
  %98 = load i32, ptr %91, align 4, !tbaa !39
  store i32 %98, ptr %24, align 4, !tbaa !35
  %99 = getelementptr inbounds i8, ptr %24, i64 4
  %100 = load i32, ptr %54, align 4, !tbaa !36
  store i32 %100, ptr %99, align 4, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %25) #8
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #8
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %23, ptr nonnull %24, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %101 unwind label %148

101:                                              ; preds = %96
  invoke void @_ZN8mdvectorIjE6assignESt6vectorIjSaIjEEjb(ptr noundef nonnull align 8 dereferenceable(105) %97, ptr noundef nonnull %23, i32 noundef 0, i1 noundef zeroext false)
          to label %102 unwind label %150

102:                                              ; preds = %101
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #8
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #8
  %103 = getelementptr inbounds i8, ptr %0, i64 8
  %104 = load ptr, ptr %103, align 8, !tbaa !40
  %105 = getelementptr inbounds i8, ptr %104, i64 136
  %106 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %105, ptr noundef nonnull @.str)
  br i1 %106, label %107, label %153

107:                                              ; preds = %102
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %26) #8
  %108 = getelementptr inbounds i8, ptr %0, i64 32
  %109 = load i32, ptr %108, align 8, !tbaa !41
  %110 = add i32 %109, 1
  call void @_Z18Gauss_Legendre_ptsj(ptr dead_on_unwind nonnull writable sret(%"class.std::vector") align 8 %26, i32 noundef %110)
  %111 = getelementptr inbounds i8, ptr %0, i64 1696
  %112 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %111, ptr noundef nonnull align 8 dereferenceable(24) %26) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %26) #8
  br label %198

113:                                              ; preds = %1
  %114 = landingpad { ptr, i32 }
          cleanup
  br label %117

115:                                              ; preds = %56
  %116 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %2) #8
  br label %117

117:                                              ; preds = %115, %113
  %.pn = phi { ptr, i32 } [ %116, %115 ], [ %114, %113 ]
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #8
  br label %419

118:                                              ; preds = %57
  %119 = landingpad { ptr, i32 }
          cleanup
  br label %122

120:                                              ; preds = %62
  %121 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #8
  br label %122

122:                                              ; preds = %120, %118
  %.pn144 = phi { ptr, i32 } [ %121, %120 ], [ %119, %118 ]
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #8
  br label %419

123:                                              ; preds = %63
  %124 = landingpad { ptr, i32 }
          cleanup
  br label %127

125:                                              ; preds = %69
  %126 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #8
  br label %127

127:                                              ; preds = %125, %123
  %.pn146 = phi { ptr, i32 } [ %126, %125 ], [ %124, %123 ]
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #8
  br label %419

128:                                              ; preds = %70
  %129 = landingpad { ptr, i32 }
          cleanup
  br label %132

130:                                              ; preds = %75
  %131 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #8
  br label %132

132:                                              ; preds = %130, %128
  %.pn148 = phi { ptr, i32 } [ %131, %130 ], [ %129, %128 ]
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #8
  br label %419

133:                                              ; preds = %76
  %134 = landingpad { ptr, i32 }
          cleanup
  br label %137

135:                                              ; preds = %82
  %136 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #8
  br label %137

137:                                              ; preds = %135, %133
  %.pn150 = phi { ptr, i32 } [ %136, %135 ], [ %134, %133 ]
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #8
  br label %419

138:                                              ; preds = %83
  %139 = landingpad { ptr, i32 }
          cleanup
  br label %142

140:                                              ; preds = %88
  %141 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #8
  br label %142

142:                                              ; preds = %140, %138
  %.pn152 = phi { ptr, i32 } [ %141, %140 ], [ %139, %138 ]
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #8
  br label %419

143:                                              ; preds = %89
  %144 = landingpad { ptr, i32 }
          cleanup
  br label %147

145:                                              ; preds = %95
  %146 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #8
  br label %147

147:                                              ; preds = %145, %143
  %.pn154 = phi { ptr, i32 } [ %146, %145 ], [ %144, %143 ]
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #8
  br label %419

148:                                              ; preds = %96
  %149 = landingpad { ptr, i32 }
          cleanup
  br label %152

150:                                              ; preds = %101
  %151 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #8
  br label %152

152:                                              ; preds = %150, %148
  %.pn156 = phi { ptr, i32 } [ %151, %150 ], [ %149, %148 ]
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #8
  br label %419

153:                                              ; preds = %102
  %154 = load ptr, ptr %103, align 8, !tbaa !40
  %155 = getelementptr inbounds i8, ptr %154, i64 136
  %156 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %155, ptr noundef nonnull @.str.1)
  br i1 %156, label %157, label %163

157:                                              ; preds = %153
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %27) #8
  %158 = getelementptr inbounds i8, ptr %0, i64 32
  %159 = load i32, ptr %158, align 8, !tbaa !41
  %160 = add i32 %159, 1
  call void @_Z9DFRsp_ptsjd(ptr dead_on_unwind nonnull writable sret(%"class.std::vector") align 8 %27, i32 noundef %160, double noundef 0x3FD5BFFB2237A15D)
  %161 = getelementptr inbounds i8, ptr %0, i64 1696
  %162 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %161, ptr noundef nonnull align 8 dereferenceable(24) %27) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %27) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %27) #8
  br label %198

163:                                              ; preds = %153
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %28) #8
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128) %28)
  %164 = getelementptr inbounds i8, ptr %28, i64 16
  %165 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %164, ptr noundef nonnull @.str.2)
          to label %166 unwind label %186

166:                                              ; preds = %163
  %167 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %165, ptr noundef nonnull @.str.3)
          to label %168 unwind label %186

168:                                              ; preds = %166
  %169 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %167, i32 noundef 59)
          to label %170 unwind label %186

170:                                              ; preds = %168
  %171 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %169, ptr noundef nonnull @.str.3)
          to label %172 unwind label %186

172:                                              ; preds = %170
  %173 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %171, ptr noundef nonnull @__func__._ZN5Quads8set_locsEv)
          to label %174 unwind label %186

174:                                              ; preds = %172
  %175 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %173, ptr noundef nonnull @.str.4)
          to label %176 unwind label %186

176:                                              ; preds = %174
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #8
  %177 = load ptr, ptr %103, align 8, !tbaa !40
  %178 = getelementptr inbounds i8, ptr %177, i64 136
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %178)
          to label %179 unwind label %188

179:                                              ; preds = %176
  %180 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %175, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %181 unwind label %190

181:                                              ; preds = %179
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #8
  %182 = call ptr @__cxa_allocate_exception(i64 16) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #8
  invoke void @_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 8 dereferenceable(128) %28)
          to label %183 unwind label %.thread

183:                                              ; preds = %181
  invoke void @_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %182, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %185 unwind label %.thread177

.thread177:                                       ; preds = %183
  %184 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #8
  br label %196

185:                                              ; preds = %183
  invoke void @__cxa_throw(ptr nonnull %182, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %420 unwind label %194

186:                                              ; preds = %174, %172, %170, %168, %166, %163
  %187 = landingpad { ptr, i32 }
          cleanup
  br label %197

188:                                              ; preds = %176
  %189 = landingpad { ptr, i32 }
          cleanup
  br label %192

190:                                              ; preds = %179
  %191 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #8
  br label %192

192:                                              ; preds = %190, %188
  %.pn158 = phi { ptr, i32 } [ %191, %190 ], [ %189, %188 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #8
  br label %197

.thread:                                          ; preds = %181
  %193 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #8
  br label %196

194:                                              ; preds = %185
  %195 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #8
  br label %197

196:                                              ; preds = %.thread177, %.thread
  %.pn160176 = phi { ptr, i32 } [ %193, %.thread ], [ %184, %.thread177 ]
  call void @__cxa_free_exception(ptr %182) #8
  br label %197

197:                                              ; preds = %194, %196, %192, %186
  %.pn160.pn = phi { ptr, i32 } [ %.pn160176, %196 ], [ %195, %194 ], [ %.pn158, %192 ], [ %187, %186 ]
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %28) #8
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %28) #8
  br label %419

198:                                              ; preds = %157, %107
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %31) #8
  %199 = getelementptr inbounds i8, ptr %0, i64 68
  %200 = load i32, ptr %199, align 4, !tbaa !42
  call void @_Z22Gauss_Legendre_weightsj(ptr dead_on_unwind nonnull writable sret(%"class.std::vector") align 8 %31, i32 noundef %200)
  %201 = getelementptr inbounds i8, ptr %0, i64 4256
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #8
  %202 = load i32, ptr %199, align 4, !tbaa !42
  store i32 %202, ptr %33, align 4, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %34) #8
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #8
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %32, ptr nonnull %33, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %203 unwind label %209

203:                                              ; preds = %198
  invoke void @_ZN8mdvectorIdE6assignESt6vectorIjSaIjEEdb(ptr noundef nonnull align 8 dereferenceable(105) %201, ptr noundef nonnull %32, double noundef 0.000000e+00, i1 noundef zeroext false)
          to label %204 unwind label %211

204:                                              ; preds = %203
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %32) #8
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #8
  %205 = load i32, ptr %199, align 4, !tbaa !42
  %.not = icmp eq i32 %205, 0
  br i1 %.not, label %._crit_edge, label %.lr.ph

._crit_edge:                                      ; preds = %.lr.ph, %204
  %206 = getelementptr inbounds i8, ptr %0, i64 1696
  %207 = getelementptr inbounds i8, ptr %0, i64 1768
  %208 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %207, ptr noundef nonnull align 8 dereferenceable(24) %206)
          to label %221 unwind label %239

209:                                              ; preds = %198
  %210 = landingpad { ptr, i32 }
          cleanup
  br label %213

211:                                              ; preds = %203
  %212 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %32) #8
  br label %213

213:                                              ; preds = %211, %209
  %.pn163 = phi { ptr, i32 } [ %212, %211 ], [ %210, %209 ]
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #8
  br label %418

.lr.ph:                                           ; preds = %204, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 0, %204 ]
  %214 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %indvars.iv) #8
  %215 = load double, ptr %214, align 8, !tbaa !43
  %216 = trunc nuw i64 %indvars.iv to i32
  %217 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEj(ptr noundef nonnull align 8 dereferenceable(105) %201, i32 noundef %216)
  store double %215, ptr %217, align 8, !tbaa !43
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %218 = load i32, ptr %199, align 4, !tbaa !42
  %219 = zext i32 %218 to i64
  %220 = icmp ult i64 %indvars.iv.next, %219
  br i1 %220, label %.lr.ph, label %._crit_edge, !llvm.loop !45

221:                                              ; preds = %._crit_edge
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #8
  %222 = call ptr @_ZNSt6vectorIdSaIdEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %207) #8
  store ptr %222, ptr %36, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKdSt6vectorIdSaIdEEEC2IPdvEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef nonnull align 8 dereferenceable(8) %36) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #8
  store double -1.000000e+00, ptr %37, align 8, !tbaa !43
  %223 = load ptr, ptr %35, align 8
  %224 = invoke ptr @_ZNSt6vectorIdSaIdEE6insertEN9__gnu_cxx17__normal_iteratorIPKdS1_EEOd(ptr noundef nonnull align 8 dereferenceable(24) %207, ptr %223, ptr noundef nonnull align 8 dereferenceable(8) %37)
          to label %225 unwind label %241

225:                                              ; preds = %221
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #8
  %226 = call ptr @_ZNSt6vectorIdSaIdEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %207) #8
  store ptr %226, ptr %39, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKdSt6vectorIdSaIdEEEC2IPdvEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %38, ptr noundef nonnull align 8 dereferenceable(8) %39) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #8
  store double 1.000000e+00, ptr %40, align 8, !tbaa !43
  %227 = load ptr, ptr %38, align 8
  %228 = invoke ptr @_ZNSt6vectorIdSaIdEE6insertEN9__gnu_cxx17__normal_iteratorIPKdS1_EEOd(ptr noundef nonnull align 8 dereferenceable(24) %207, ptr %227, ptr noundef nonnull align 8 dereferenceable(8) %40)
          to label %229 unwind label %243

229:                                              ; preds = %225
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #8
  %230 = getelementptr inbounds i8, ptr %0, i64 4144
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #8
  %231 = load i32, ptr %51, align 4, !tbaa !5
  store i32 %231, ptr %42, align 4, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %43) #8
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #8
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %41, ptr nonnull %42, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %43)
          to label %232 unwind label %245

232:                                              ; preds = %229
  invoke void @_ZN8mdvectorIdE6assignESt6vectorIjSaIjEEdb(ptr noundef nonnull align 8 dereferenceable(105) %230, ptr noundef nonnull %41, double noundef 0.000000e+00, i1 noundef zeroext false)
          to label %233 unwind label %247

233:                                              ; preds = %232
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %41) #8
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %43) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #8
  %234 = load i32, ptr %199, align 4, !tbaa !42
  %.not230 = icmp eq i32 %234, 0
  br i1 %.not230, label %._crit_edge213, label %.preheader183

.preheader183:                                    ; preds = %233, %._crit_edge188
  %235 = phi i32 [ %250, %._crit_edge188 ], [ 1, %233 ]
  %indvars.iv261 = phi i64 [ %indvars.iv.next262, %._crit_edge188 ], [ 0, %233 ]
  %.0137189 = phi i32 [ %.1138.lcssa, %._crit_edge188 ], [ 0, %233 ]
  %.not232 = icmp eq i32 %235, 0
  br i1 %.not232, label %._crit_edge188, label %.lr.ph187

.lr.ph187:                                        ; preds = %.preheader183
  %236 = trunc nuw i64 %indvars.iv261 to i32
  br label %253

.preheader182:                                    ; preds = %._crit_edge188
  %237 = getelementptr inbounds i8, ptr %0, i64 84
  %238 = load i32, ptr %237, align 4, !tbaa !47
  %.not233 = icmp eq i32 %238, 0
  %.not234 = icmp eq i32 %250, 0
  %or.cond = or i1 %.not233, %.not234
  br i1 %or.cond, label %._crit_edge213, label %.preheader181

239:                                              ; preds = %._crit_edge
  %240 = landingpad { ptr, i32 }
          cleanup
  br label %418

241:                                              ; preds = %221
  %242 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #8
  br label %418

243:                                              ; preds = %225
  %244 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #8
  br label %418

245:                                              ; preds = %229
  %246 = landingpad { ptr, i32 }
          cleanup
  br label %249

247:                                              ; preds = %232
  %248 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %41) #8
  br label %249

249:                                              ; preds = %247, %245
  %.pn165 = phi { ptr, i32 } [ %248, %247 ], [ %246, %245 ]
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %43) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #8
  br label %418

._crit_edge188:                                   ; preds = %253, %.preheader183
  %250 = phi i32 [ 0, %.preheader183 ], [ %270, %253 ]
  %.1138.lcssa = phi i32 [ %.0137189, %.preheader183 ], [ %269, %253 ]
  %indvars.iv.next262 = add nuw nsw i64 %indvars.iv261, 1
  %251 = zext i32 %250 to i64
  %252 = icmp ult i64 %indvars.iv.next262, %251
  br i1 %252, label %.preheader183, label %.preheader182, !llvm.loop !48

253:                                              ; preds = %.lr.ph187, %253
  %indvars.iv258 = phi i64 [ 0, %.lr.ph187 ], [ %indvars.iv.next259, %253 ]
  %.1138185 = phi i32 [ %.0137189, %.lr.ph187 ], [ %269, %253 ]
  %254 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %206, i64 noundef %indvars.iv258) #8
  %255 = load double, ptr %254, align 8, !tbaa !43
  %256 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %50, i32 noundef %.1138185, i32 noundef 0)
  store double %255, ptr %256, align 8, !tbaa !43
  %257 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %206, i64 noundef %indvars.iv261) #8
  %258 = load double, ptr %257, align 8, !tbaa !43
  %259 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %50, i32 noundef %.1138185, i32 noundef 1)
  store double %258, ptr %259, align 8, !tbaa !43
  %260 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %58, i32 noundef %.1138185, i32 noundef 0)
  %261 = trunc nuw i64 %indvars.iv258 to i32
  store i32 %261, ptr %260, align 4, !tbaa !35
  %262 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %58, i32 noundef %.1138185, i32 noundef 1)
  store i32 %236, ptr %262, align 4, !tbaa !35
  %263 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %indvars.iv261) #8
  %264 = load double, ptr %263, align 8, !tbaa !43
  %265 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %indvars.iv258) #8
  %266 = load double, ptr %265, align 8, !tbaa !43
  %267 = fmul double %264, %266
  %268 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEj(ptr noundef nonnull align 8 dereferenceable(105) %230, i32 noundef %.1138185)
  store double %267, ptr %268, align 8, !tbaa !43
  %269 = add i32 %.1138185, 1
  %indvars.iv.next259 = add nuw nsw i64 %indvars.iv258, 1
  %270 = load i32, ptr %199, align 4, !tbaa !42
  %271 = zext i32 %270 to i64
  %272 = icmp ult i64 %indvars.iv.next259, %271
  br i1 %272, label %253, label %._crit_edge188, !llvm.loop !50

.preheader181:                                    ; preds = %.preheader182, %._crit_edge194
  %273 = phi i32 [ %335, %._crit_edge194 ], [ %250, %.preheader182 ]
  %274 = phi i32 [ %336, %._crit_edge194 ], [ %250, %.preheader182 ]
  %.0132212 = phi i32 [ %337, %._crit_edge194 ], [ 0, %.preheader182 ]
  %.0133211 = phi i32 [ %.1134.lcssa, %._crit_edge194 ], [ 0, %.preheader182 ]
  %.not235 = icmp eq i32 %274, 0
  br i1 %.not235, label %._crit_edge194, label %.lr.ph193

.lr.ph193:                                        ; preds = %.preheader181
  switch i32 %.0132212, label %.lr.ph193.split [
    i32 0, label %.lr.ph193.split.us
    i32 1, label %.lr.ph193.split.us196
    i32 2, label %.lr.ph193.split.us201
    i32 3, label %.lr.ph193.split.us206
  ]

.lr.ph193.split.us:                               ; preds = %.lr.ph193, %.lr.ph193.split.us
  %indvars.iv267 = phi i64 [ %indvars.iv.next268, %.lr.ph193.split.us ], [ 0, %.lr.ph193 ]
  %.1134191.us = phi i32 [ %282, %.lr.ph193.split.us ], [ %.0133211, %.lr.ph193 ]
  %275 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %206, i64 noundef %indvars.iv267) #8
  %276 = load double, ptr %275, align 8, !tbaa !43
  %277 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %64, i32 noundef %.1134191.us, i32 noundef 0)
  store double %276, ptr %277, align 8, !tbaa !43
  %278 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %64, i32 noundef %.1134191.us, i32 noundef 1)
  store double -1.000000e+00, ptr %278, align 8, !tbaa !43
  %279 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %71, i32 noundef %.1134191.us, i32 noundef 0)
  %280 = trunc nuw i64 %indvars.iv267 to i32
  store i32 %280, ptr %279, align 4, !tbaa !35
  %281 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %71, i32 noundef %.1134191.us, i32 noundef 1)
  store i32 -1, ptr %281, align 4, !tbaa !35
  %282 = add i32 %.1134191.us, 1
  %indvars.iv.next268 = add nuw nsw i64 %indvars.iv267, 1
  %283 = load i32, ptr %199, align 4, !tbaa !42
  %284 = zext i32 %283 to i64
  %285 = icmp ult i64 %indvars.iv.next268, %284
  br i1 %285, label %.lr.ph193.split.us, label %._crit_edge194, !llvm.loop !51

.lr.ph193.split.us196:                            ; preds = %.lr.ph193, %.lr.ph193.split.us196
  %indvars.iv264 = phi i64 [ %indvars.iv.next265, %.lr.ph193.split.us196 ], [ 0, %.lr.ph193 ]
  %.1134191.us198 = phi i32 [ %294, %.lr.ph193.split.us196 ], [ %.0133211, %.lr.ph193 ]
  %286 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %64, i32 noundef %.1134191.us198, i32 noundef 0)
  store double 1.000000e+00, ptr %286, align 8, !tbaa !43
  %287 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %206, i64 noundef %indvars.iv264) #8
  %288 = load double, ptr %287, align 8, !tbaa !43
  %289 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %64, i32 noundef %.1134191.us198, i32 noundef 1)
  store double %288, ptr %289, align 8, !tbaa !43
  %290 = load i32, ptr %199, align 4, !tbaa !42
  %291 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %71, i32 noundef %.1134191.us198, i32 noundef 0)
  store i32 %290, ptr %291, align 4, !tbaa !35
  %292 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %71, i32 noundef %.1134191.us198, i32 noundef 1)
  %293 = trunc nuw i64 %indvars.iv264 to i32
  store i32 %293, ptr %292, align 4, !tbaa !35
  %294 = add i32 %.1134191.us198, 1
  %indvars.iv.next265 = add nuw nsw i64 %indvars.iv264, 1
  %295 = load i32, ptr %199, align 4, !tbaa !42
  %296 = zext i32 %295 to i64
  %297 = icmp ult i64 %indvars.iv.next265, %296
  br i1 %297, label %.lr.ph193.split.us196, label %._crit_edge194, !llvm.loop !51

.lr.ph193.split.us201:                            ; preds = %.lr.ph193, %.lr.ph193.split.us201
  %298 = phi i32 [ %313, %.lr.ph193.split.us201 ], [ %274, %.lr.ph193 ]
  %.0131192.us202 = phi i32 [ %312, %.lr.ph193.split.us201 ], [ 0, %.lr.ph193 ]
  %.1134191.us203 = phi i32 [ %311, %.lr.ph193.split.us201 ], [ %.0133211, %.lr.ph193 ]
  %299 = xor i32 %.0131192.us202, -1
  %300 = add i32 %298, %299
  %301 = zext i32 %300 to i64
  %302 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %206, i64 noundef %301) #8
  %303 = load double, ptr %302, align 8, !tbaa !43
  %304 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %64, i32 noundef %.1134191.us203, i32 noundef 0)
  store double %303, ptr %304, align 8, !tbaa !43
  %305 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %64, i32 noundef %.1134191.us203, i32 noundef 1)
  store double 1.000000e+00, ptr %305, align 8, !tbaa !43
  %306 = load i32, ptr %199, align 4, !tbaa !42
  %307 = add i32 %306, %299
  %308 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %71, i32 noundef %.1134191.us203, i32 noundef 0)
  store i32 %307, ptr %308, align 4, !tbaa !35
  %309 = load i32, ptr %199, align 4, !tbaa !42
  %310 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %71, i32 noundef %.1134191.us203, i32 noundef 1)
  store i32 %309, ptr %310, align 4, !tbaa !35
  %311 = add i32 %.1134191.us203, 1
  %312 = add nuw i32 %.0131192.us202, 1
  %313 = load i32, ptr %199, align 4, !tbaa !42
  %314 = icmp ult i32 %312, %313
  br i1 %314, label %.lr.ph193.split.us201, label %._crit_edge194, !llvm.loop !51

.lr.ph193.split.us206:                            ; preds = %.lr.ph193, %.lr.ph193.split.us206
  %.0131192.us207 = phi i32 [ %328, %.lr.ph193.split.us206 ], [ 0, %.lr.ph193 ]
  %.1134191.us208 = phi i32 [ %327, %.lr.ph193.split.us206 ], [ %.0133211, %.lr.ph193 ]
  %315 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %64, i32 noundef %.1134191.us208, i32 noundef 0)
  store double -1.000000e+00, ptr %315, align 8, !tbaa !43
  %316 = load i32, ptr %199, align 4, !tbaa !42
  %317 = xor i32 %.0131192.us207, -1
  %318 = add i32 %316, %317
  %319 = zext i32 %318 to i64
  %320 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %206, i64 noundef %319) #8
  %321 = load double, ptr %320, align 8, !tbaa !43
  %322 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %64, i32 noundef %.1134191.us208, i32 noundef 1)
  store double %321, ptr %322, align 8, !tbaa !43
  %323 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %71, i32 noundef %.1134191.us208, i32 noundef 0)
  store i32 -1, ptr %323, align 4, !tbaa !35
  %324 = load i32, ptr %199, align 4, !tbaa !42
  %325 = add i32 %324, %317
  %326 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %71, i32 noundef %.1134191.us208, i32 noundef 1)
  store i32 %325, ptr %326, align 4, !tbaa !35
  %327 = add i32 %.1134191.us208, 1
  %328 = add nuw i32 %.0131192.us207, 1
  %329 = load i32, ptr %199, align 4, !tbaa !42
  %330 = icmp ult i32 %328, %329
  br i1 %330, label %.lr.ph193.split.us206, label %._crit_edge194, !llvm.loop !51

.lr.ph193.split:                                  ; preds = %.lr.ph193
  %umax = call i32 @llvm.umax.i32(i32 %273, i32 1)
  %331 = add i32 %.0133211, %umax
  br label %._crit_edge194

._crit_edge213:                                   ; preds = %._crit_edge194, %233, %.preheader182
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %44) #8
  %332 = getelementptr inbounds i8, ptr %0, i64 32
  %333 = load i32, ptr %332, align 8, !tbaa !41
  invoke void @_Z9Shape_ptsj(ptr dead_on_unwind nonnull writable sret(%"class.std::vector") align 8 %44, i32 noundef %333)
          to label %.preheader180 unwind label %345

.preheader180:                                    ; preds = %._crit_edge213
  %334 = load i32, ptr %199, align 4, !tbaa !42
  %.not236 = icmp eq i32 %334, 0
  br i1 %.not236, label %._crit_edge221, label %.preheader179

._crit_edge194:                                   ; preds = %.lr.ph193.split.us206, %.lr.ph193.split.us201, %.lr.ph193.split.us196, %.lr.ph193.split.us, %.lr.ph193.split, %.preheader181
  %335 = phi i32 [ %273, %.preheader181 ], [ %273, %.lr.ph193.split ], [ %283, %.lr.ph193.split.us ], [ %295, %.lr.ph193.split.us196 ], [ %313, %.lr.ph193.split.us201 ], [ %329, %.lr.ph193.split.us206 ]
  %336 = phi i32 [ 0, %.preheader181 ], [ %273, %.lr.ph193.split ], [ %283, %.lr.ph193.split.us ], [ %295, %.lr.ph193.split.us196 ], [ %313, %.lr.ph193.split.us201 ], [ %329, %.lr.ph193.split.us206 ]
  %.1134.lcssa = phi i32 [ %.0133211, %.preheader181 ], [ %331, %.lr.ph193.split ], [ %282, %.lr.ph193.split.us ], [ %294, %.lr.ph193.split.us196 ], [ %311, %.lr.ph193.split.us201 ], [ %327, %.lr.ph193.split.us206 ]
  %337 = add nuw i32 %.0132212, 1
  %338 = load i32, ptr %237, align 4, !tbaa !47
  %339 = icmp ult i32 %337, %338
  br i1 %339, label %.preheader181, label %._crit_edge213, !llvm.loop !52

.preheader179:                                    ; preds = %.preheader180, %._crit_edge217
  %340 = phi i32 [ %347, %._crit_edge217 ], [ 1, %.preheader180 ]
  %indvars.iv273 = phi i64 [ %indvars.iv.next274, %._crit_edge217 ], [ 0, %.preheader180 ]
  %.0129219 = phi i32 [ %.1130.lcssa, %._crit_edge217 ], [ 0, %.preheader180 ]
  %.not238 = icmp eq i32 %340, 0
  br i1 %.not238, label %._crit_edge217, label %.lr.ph216

.lr.ph216:                                        ; preds = %.preheader179
  %341 = trunc nuw i64 %indvars.iv273 to i32
  br label %350

._crit_edge221:                                   ; preds = %._crit_edge217, %.preheader180
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %45) #8
  %342 = load ptr, ptr %103, align 8, !tbaa !40
  %343 = getelementptr inbounds i8, ptr %342, i64 20
  %344 = load i32, ptr %343, align 4, !tbaa !53
  invoke void @_Z18Gauss_Legendre_ptsj(ptr dead_on_unwind nonnull writable sret(%"class.std::vector") align 8 %45, i32 noundef %344)
          to label %364 unwind label %382

345:                                              ; preds = %._crit_edge213
  %346 = landingpad { ptr, i32 }
          cleanup
  br label %417

._crit_edge217:                                   ; preds = %350, %.preheader179
  %347 = phi i32 [ 0, %.preheader179 ], [ %361, %350 ]
  %.1130.lcssa = phi i32 [ %.0129219, %.preheader179 ], [ %360, %350 ]
  %indvars.iv.next274 = add nuw nsw i64 %indvars.iv273, 1
  %348 = zext i32 %347 to i64
  %349 = icmp ult i64 %indvars.iv.next274, %348
  br i1 %349, label %.preheader179, label %._crit_edge221, !llvm.loop !73

350:                                              ; preds = %.lr.ph216, %350
  %indvars.iv270 = phi i64 [ 0, %.lr.ph216 ], [ %indvars.iv.next271, %350 ]
  %.1130214 = phi i32 [ %.0129219, %.lr.ph216 ], [ %360, %350 ]
  %351 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %indvars.iv270) #8
  %352 = load double, ptr %351, align 8, !tbaa !43
  %353 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %77, i32 noundef %.1130214, i32 noundef 0)
  store double %352, ptr %353, align 8, !tbaa !43
  %354 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef %indvars.iv273) #8
  %355 = load double, ptr %354, align 8, !tbaa !43
  %356 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %77, i32 noundef %.1130214, i32 noundef 1)
  store double %355, ptr %356, align 8, !tbaa !43
  %357 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %84, i32 noundef %.1130214, i32 noundef 0)
  %358 = trunc nuw i64 %indvars.iv270 to i32
  store i32 %358, ptr %357, align 4, !tbaa !35
  %359 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %84, i32 noundef %.1130214, i32 noundef 1)
  store i32 %341, ptr %359, align 4, !tbaa !35
  %360 = add i32 %.1130214, 1
  %indvars.iv.next271 = add nuw nsw i64 %indvars.iv270, 1
  %361 = load i32, ptr %199, align 4, !tbaa !42
  %362 = zext i32 %361 to i64
  %363 = icmp ult i64 %indvars.iv.next271, %362
  br i1 %363, label %350, label %._crit_edge217, !llvm.loop !74

364:                                              ; preds = %._crit_edge221
  %365 = getelementptr inbounds i8, ptr %0, i64 1744
  %366 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIdSaIdEEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %365, ptr noundef nonnull align 8 dereferenceable(24) %45) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %45) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %45) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %46) #8
  %367 = load ptr, ptr %103, align 8, !tbaa !40
  %368 = getelementptr inbounds i8, ptr %367, i64 20
  %369 = load i32, ptr %368, align 4, !tbaa !53
  invoke void @_Z22Gauss_Legendre_weightsj(ptr dead_on_unwind nonnull writable sret(%"class.std::vector") align 8 %46, i32 noundef %369)
          to label %370 unwind label %384

370:                                              ; preds = %364
  %371 = getelementptr inbounds i8, ptr %0, i64 4368
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %48) #8
  %372 = load ptr, ptr %103, align 8, !tbaa !40
  %373 = getelementptr inbounds i8, ptr %372, i64 20
  %374 = load i32, ptr %373, align 4, !tbaa !53
  %375 = mul i32 %374, %374
  store i32 %375, ptr %48, align 4, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %49) #8
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #8
  invoke void @_ZNSt6vectorIjSaIjEEC2ESt16initializer_listIjERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %47, ptr nonnull %48, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %49)
          to label %376 unwind label %386

376:                                              ; preds = %370
  invoke void @_ZN8mdvectorIdE6assignESt6vectorIjSaIjEEdb(ptr noundef nonnull align 8 dereferenceable(105) %371, ptr noundef nonnull %47, double noundef 0.000000e+00, i1 noundef zeroext false)
          to label %377 unwind label %388

377:                                              ; preds = %376
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %47) #8
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %49) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %48) #8
  %378 = load ptr, ptr %103, align 8, !tbaa !40
  %379 = getelementptr inbounds i8, ptr %378, i64 20
  %380 = load i32, ptr %379, align 4, !tbaa !53
  %.not239 = icmp eq i32 %380, 0
  br i1 %.not239, label %._crit_edge229, label %.preheader

.preheader:                                       ; preds = %377, %._crit_edge225
  %.pre = phi i32 [ %.pre283, %._crit_edge225 ], [ 1, %377 ]
  %indvars.iv279 = phi i64 [ %indvars.iv.next280, %._crit_edge225 ], [ 0, %377 ]
  %.0105227 = phi i32 [ %.1.lcssa, %._crit_edge225 ], [ 0, %377 ]
  %.not241 = icmp eq i32 %.pre, 0
  br i1 %.not241, label %._crit_edge225, label %.lr.ph224

.lr.ph224:                                        ; preds = %.preheader
  %381 = trunc nuw i64 %indvars.iv279 to i32
  br label %393

._crit_edge229:                                   ; preds = %._crit_edge225, %377
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %46) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %46) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %44) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %44) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #8
  ret void

382:                                              ; preds = %._crit_edge221
  %383 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %45) #8
  br label %416

384:                                              ; preds = %364
  %385 = landingpad { ptr, i32 }
          cleanup
  br label %415

386:                                              ; preds = %370
  %387 = landingpad { ptr, i32 }
          cleanup
  br label %390

388:                                              ; preds = %376
  %389 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %47) #8
  br label %390

390:                                              ; preds = %388, %386
  %.pn167 = phi { ptr, i32 } [ %389, %388 ], [ %387, %386 ]
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %49) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %48) #8
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %46) #8
  br label %415

._crit_edge225:                                   ; preds = %393, %.preheader
  %.pre283 = phi i32 [ 0, %.preheader ], [ %412, %393 ]
  %.1.lcssa = phi i32 [ %.0105227, %.preheader ], [ %409, %393 ]
  %indvars.iv.next280 = add nuw nsw i64 %indvars.iv279, 1
  %391 = zext i32 %.pre283 to i64
  %392 = icmp ult i64 %indvars.iv.next280, %391
  br i1 %392, label %.preheader, label %._crit_edge229, !llvm.loop !75

393:                                              ; preds = %.lr.ph224, %393
  %indvars.iv276 = phi i64 [ 0, %.lr.ph224 ], [ %indvars.iv.next277, %393 ]
  %.1222 = phi i32 [ %.0105227, %.lr.ph224 ], [ %409, %393 ]
  %394 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %365, i64 noundef %indvars.iv276) #8
  %395 = load double, ptr %394, align 8, !tbaa !43
  %396 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %90, i32 noundef %.1222, i32 noundef 0)
  store double %395, ptr %396, align 8, !tbaa !43
  %397 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %365, i64 noundef %indvars.iv279) #8
  %398 = load double, ptr %397, align 8, !tbaa !43
  %399 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %90, i32 noundef %.1222, i32 noundef 1)
  store double %398, ptr %399, align 8, !tbaa !43
  %400 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %97, i32 noundef %.1222, i32 noundef 0)
  %401 = trunc nuw i64 %indvars.iv276 to i32
  store i32 %401, ptr %400, align 4, !tbaa !35
  %402 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105) %97, i32 noundef %.1222, i32 noundef 1)
  store i32 %381, ptr %402, align 4, !tbaa !35
  %403 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %46, i64 noundef %indvars.iv279) #8
  %404 = load double, ptr %403, align 8, !tbaa !43
  %405 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %46, i64 noundef %indvars.iv276) #8
  %406 = load double, ptr %405, align 8, !tbaa !43
  %407 = fmul double %404, %406
  %408 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEj(ptr noundef nonnull align 8 dereferenceable(105) %371, i32 noundef %.1222)
  store double %407, ptr %408, align 8, !tbaa !43
  %409 = add i32 %.1222, 1
  %indvars.iv.next277 = add nuw nsw i64 %indvars.iv276, 1
  %410 = load ptr, ptr %103, align 8, !tbaa !40
  %411 = getelementptr inbounds i8, ptr %410, i64 20
  %412 = load i32, ptr %411, align 4, !tbaa !53
  %413 = zext i32 %412 to i64
  %414 = icmp ult i64 %indvars.iv.next277, %413
  br i1 %414, label %393, label %._crit_edge225, !llvm.loop !76

415:                                              ; preds = %390, %384
  %.pn167.pn = phi { ptr, i32 } [ %.pn167, %390 ], [ %385, %384 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %46) #8
  br label %416

416:                                              ; preds = %415, %382
  %.pn167.pn.pn = phi { ptr, i32 } [ %.pn167.pn, %415 ], [ %383, %382 ]
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %44) #8
  br label %417

417:                                              ; preds = %416, %345
  %.pn167.pn.pn.pn = phi { ptr, i32 } [ %.pn167.pn.pn, %416 ], [ %346, %345 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %44) #8
  br label %418

418:                                              ; preds = %417, %249, %243, %241, %239, %213
  %.pn167.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn167.pn.pn.pn, %417 ], [ %.pn165, %249 ], [ %244, %243 ], [ %242, %241 ], [ %240, %239 ], [ %.pn163, %213 ]
  call void @_ZNSt6vectorIdSaIdEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #8
  br label %419

419:                                              ; preds = %418, %197, %152, %147, %142, %137, %132, %127, %122, %117
  %.pn167.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn167.pn.pn.pn.pn, %418 ], [ %.pn160.pn, %197 ], [ %.pn156, %152 ], [ %.pn154, %147 ], [ %.pn152, %142 ], [ %.pn150, %137 ], [ %.pn148, %132 ], [ %.pn146, %127 ], [ %.pn144, %122 ], [ %.pn, %117 ]
  resume { ptr, i32 } %.pn167.pn.pn.pn.pn.pn

420:                                              ; preds = %185
  unreachable
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8mdvectorIdE6assignESt6vectorIjSaIjEEdb(ptr noundef nonnull align 8 dereferenceable(105), ptr noundef, double noundef, i1 noundef zeroext) local_unnamed_addr #1 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8mdvectorIjE6assignESt6vectorIjSaIjEEjb(ptr noundef nonnull align 8 dereferenceable(105), ptr noundef, i32 noundef, i1 noundef zeroext) local_unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #3

declare void @_Z18Gauss_Legendre_ptsj(ptr dead_on_unwind writable sret(%"class.std::vector") align 8, i32 noundef) local_unnamed_addr #4

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

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

declare void @_Z9DFRsp_ptsjd(ptr dead_on_unwind writable sret(%"class.std::vector") align 8, i32 noundef, double noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(128)) unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #5

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

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

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

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

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

declare void @_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4

; Function Attrs: nounwind
declare void @_ZNSt13runtime_errorD1Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #6

declare void @__cxa_throw(ptr, ptr, ptr) local_unnamed_addr

declare void @__cxa_free_exception(ptr) local_unnamed_addr

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

declare void @_Z22Gauss_Legendre_weightsj(ptr dead_on_unwind writable sret(%"class.std::vector") align 8, i32 noundef) local_unnamed_addr #4

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEj(ptr noundef nonnull align 8 dereferenceable(105), i32 noundef) local_unnamed_addr #2 align 2

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN8mdvectorIdEclEjj(ptr noundef nonnull align 8 dereferenceable(105), i32 noundef, i32 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN8mdvectorIjEclEjj(ptr noundef nonnull align 8 dereferenceable(105), i32 noundef, i32 noundef) local_unnamed_addr #2 align 2

declare void @_Z9Shape_ptsj(ptr dead_on_unwind writable sret(%"class.std::vector") align 8, i32 noundef) local_unnamed_addr #4

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.umax.i32(i32, i32) #7

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #8 = { nounwind }
attributes #9 = { noreturn }

!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, !11, i64 60}
!6 = !{!"_ZTS8Elements", !7, i64 8, !7, i64 16, !10, i64 24, !11, i64 28, !11, i64 32, !11, i64 36, !11, i64 40, !11, i64 44, !11, i64 48, !11, i64 52, !11, i64 56, !11, i64 60, !11, i64 64, !11, i64 68, !11, i64 72, !11, i64 76, !11, i64 80, !11, i64 84, !11, i64 88, !11, i64 92, !11, i64 96, !12, i64 104, !12, i64 216, !12, i64 328, !12, i64 440, !20, i64 552, !12, i64 576, !12, i64 688, !12, i64 800, !12, i64 912, !12, i64 1024, !24, i64 1136, !24, i64 1248, !24, i64 1360, !24, i64 1472, !24, i64 1584, !15, i64 1696, !15, i64 1720, !15, i64 1744, !15, i64 1768, !12, i64 1792, !12, i64 1904, !12, i64 2016, !12, i64 2128, !12, i64 2240, !12, i64 2352, !12, i64 2464, !12, i64 2576, !12, i64 2688, !12, i64 2800, !12, i64 2912, !12, i64 3024, !12, i64 3136, !12, i64 3248, !12, i64 3360, !12, i64 3472, !12, i64 3584, !12, i64 3696, !12, i64 3808, !12, i64 3920, !12, i64 4032, !12, i64 4144, !12, i64 4256, !12, i64 4368, !12, i64 4480, !12, i64 4592, !12, i64 4704, !12, i64 4816, !12, i64 4928, !12, i64 5040, !12, i64 5152, !12, i64 5264, !12, i64 5376, !12, i64 5488, !12, i64 5600, !12, i64 5712, !12, i64 5824, !12, i64 5936, !11, i64 6048, !15, i64 6056, !15, i64 6080, !15, i64 6104, !15, i64 6128, !15, i64 6152, !15, i64 6176, !15, i64 6200, !25, i64 6224, !12, i64 6248, !12, i64 6360, !12, i64 6472, !12, i64 6584, !12, i64 6696, !12, i64 6808, !12, i64 6920, !12, i64 7032, !12, i64 7144, !13, i64 7256, !13, i64 7264, !13, i64 7272, !13, i64 7280, !13, i64 7288, !12, i64 7296, !12, i64 7408, !12, i64 7520, !12, i64 7632, !12, i64 7744, !12, i64 7856, !12, i64 7968, !12, i64 8080, !12, i64 8192, !12, i64 8304, !12, i64 8416, !12, i64 8528, !12, i64 8640, !12, i64 8752, !12, i64 8864, !12, i64 8976, !12, i64 9088, !12, i64 9200, !12, i64 9312, !12, i64 9424, !12, i64 9536, !12, i64 9648, !12, i64 9760, !12, i64 9872, !12, i64 9984, !12, i64 10096, !12, i64 10208, !12, i64 10320, !12, i64 10432, !12, i64 10544, !12, i64 10656, !12, i64 10768, !12, i64 10880, !12, i64 10992, !12, i64 11104, !12, i64 11216, !12, i64 11328, !12, i64 11440, !12, i64 11552, !12, i64 11664, !12, i64 11776, !12, i64 11888, !12, i64 12000, !29, i64 12112, !29, i64 12344, !12, i64 12576, !12, i64 12688, !12, i64 12800, !12, i64 12912, !12, i64 13024, !12, i64 13136, !11, i64 13248, !12, i64 13256, !12, i64 13368, !11, i64 13480, !7, i64 13488, !25, i64 13496, !24, i64 13520, !12, i64 13632, !12, i64 13744, !12, i64 13856}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"_ZTS8ELE_TYPE", !8, i64 0}
!11 = !{!"int", !8, i64 0}
!12 = !{!"_ZTS8mdvectorIdE", !11, i64 0, !13, i64 8, !13, i64 16, !14, i64 24, !14, i64 48, !15, i64 72, !7, i64 96, !19, i64 104}
!13 = !{!"long", !8, i64 0}
!14 = !{!"_ZTSSt5arrayIjLm6EE", !8, i64 0}
!15 = !{!"_ZTSSt6vectorIdSaIdEE", !16, i64 0}
!16 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!19 = !{!"bool", !8, i64 0}
!20 = !{!"_ZTSSt6vectorIjSaIjEE", !21, i64 0}
!21 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!24 = !{!"_ZTS8mdvectorIjE", !11, i64 0, !13, i64 8, !13, i64 16, !14, i64 24, !14, i64 48, !20, i64 72, !7, i64 96, !19, i64 104}
!25 = !{!"_ZTSSt6vectorIiSaIiEE", !26, i64 0}
!26 = !{!"_ZTSSt12_Vector_baseIiSaIiEE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE12_Vector_implE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseIiSaIiEE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!29 = !{!"_ZTS6mdviewIdE", !30, i64 0, !24, i64 112, !11, i64 224}
!30 = !{!"_ZTS8mdvectorIPdE", !11, i64 0, !13, i64 8, !13, i64 16, !14, i64 24, !14, i64 48, !31, i64 72, !7, i64 96, !19, i64 104}
!31 = !{!"_ZTSSt6vectorIPdSaIS0_EE", !32, i64 0}
!32 = !{!"_ZTSSt12_Vector_baseIPdSaIS0_EE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIPdSaIS0_EE12_Vector_implE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIPdSaIS0_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!35 = !{!11, !11, i64 0}
!36 = !{!6, !11, i64 52}
!37 = !{!6, !11, i64 64}
!38 = !{!6, !11, i64 72}
!39 = !{!6, !11, i64 76}
!40 = !{!6, !7, i64 8}
!41 = !{!6, !11, i64 32}
!42 = !{!6, !11, i64 68}
!43 = !{!44, !44, i64 0}
!44 = !{!"double", !8, i64 0}
!45 = distinct !{!45, !46}
!46 = !{!"llvm.loop.mustprogress"}
!47 = !{!6, !11, i64 84}
!48 = distinct !{!48, !46, !49}
!49 = !{!"llvm.loop.unswitch.partial.disable"}
!50 = distinct !{!50, !46}
!51 = distinct !{!51, !46}
!52 = distinct !{!52, !46, !49}
!53 = !{!54, !11, i64 20}
!54 = !{!"_ZTS11InputStruct", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !11, i64 24, !11, i64 28, !11, i64 32, !11, i64 36, !11, i64 40, !11, i64 44, !11, i64 48, !11, i64 52, !11, i64 56, !11, i64 60, !11, i64 64, !11, i64 68, !55, i64 72, !55, i64 104, !55, i64 136, !55, i64 168, !55, i64 200, !55, i64 232, !19, i64 264, !19, i64 265, !19, i64 266, !19, i64 267, !19, i64 268, !19, i64 269, !19, i64 270, !19, i64 271, !20, i64 272, !20, i64 296, !11, i64 320, !11, i64 324, !44, i64 328, !44, i64 336, !44, i64 344, !44, i64 352, !44, i64 360, !44, i64 368, !44, i64 376, !44, i64 384, !12, i64 392, !12, i64 504, !12, i64 616, !12, i64 728, !12, i64 840, !44, i64 952, !44, i64 960, !44, i64 968, !44, i64 976, !44, i64 984, !44, i64 992, !44, i64 1000, !44, i64 1008, !44, i64 1016, !44, i64 1024, !44, i64 1032, !44, i64 1040, !44, i64 1048, !44, i64 1056, !44, i64 1064, !44, i64 1072, !44, i64 1080, !44, i64 1088, !44, i64 1096, !44, i64 1104, !44, i64 1112, !44, i64 1120, !44, i64 1128, !44, i64 1136, !44, i64 1144, !44, i64 1152, !44, i64 1160, !44, i64 1168, !44, i64 1176, !44, i64 1184, !44, i64 1192, !44, i64 1200, !44, i64 1208, !44, i64 1216, !11, i64 1224, !11, i64 1228, !11, i64 1232, !11, i64 1236, !11, i64 1240, !11, i64 1244, !11, i64 1248, !11, i64 1252, !11, i64 1256, !11, i64 1260, !44, i64 1264, !44, i64 1272, !44, i64 1280, !44, i64 1288, !44, i64 1296, !44, i64 1304, !44, i64 1312, !11, i64 1320, !11, i64 1324, !44, i64 1328, !44, i64 1336, !11, i64 1344, !44, i64 1352, !44, i64 1360, !44, i64 1368, !44, i64 1376, !44, i64 1384, !44, i64 1392, !44, i64 1400, !44, i64 1408, !57, i64 1416, !57, i64 1418, !57, i64 1420, !57, i64 1422, !11, i64 1424, !11, i64 1428, !11, i64 1432, !55, i64 1440, !19, i64 1472, !19, i64 1473, !19, i64 1474, !19, i64 1475, !11, i64 1476, !11, i64 1480, !19, i64 1484, !19, i64 1485, !19, i64 1486, !19, i64 1487, !11, i64 1488, !11, i64 1492, !11, i64 1496, !11, i64 1500, !58, i64 1504, !25, i64 1528, !44, i64 1552, !44, i64 1560, !44, i64 1568, !44, i64 1576, !44, i64 1584, !44, i64 1592, !8, i64 1600, !44, i64 1624, !8, i64 1632, !8, i64 1656, !8, i64 1680, !8, i64 1704, !44, i64 1728, !8, i64 1736, !8, i64 1760, !44, i64 1784, !8, i64 1792, !62, i64 1864, !19, i64 1912, !19, i64 1913, !19, i64 1914, !19, i64 1915, !19, i64 1916, !19, i64 1917, !19, i64 1918, !19, i64 1919, !44, i64 1920, !44, i64 1928, !44, i64 1936, !44, i64 1944, !11, i64 1952, !11, i64 1956, !11, i64 1960, !11, i64 1964, !11, i64 1968, !11, i64 1972, !11, i64 1976, !11, i64 1980, !11, i64 1984, !19, i64 1988, !44, i64 1992, !44, i64 2000, !70, i64 2008}
!55 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !56, i64 0, !13, i64 8, !8, i64 16}
!56 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !7, i64 0}
!57 = !{!"short", !8, i64 0}
!58 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !59, i64 0}
!59 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !60, i64 0}
!60 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !61, i64 0}
!61 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!62 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE", !63, i64 0}
!63 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE", !64, i64 0}
!64 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE13_Rb_tree_implISC_Lb1EEE", !65, i64 0, !67, i64 8}
!65 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !66, i64 0}
!66 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!67 = !{!"_ZTSSt15_Rb_tree_header", !68, i64 0, !13, i64 32}
!68 = !{!"_ZTSSt18_Rb_tree_node_base", !69, i64 0, !7, i64 8, !7, i64 16, !7, i64 24}
!69 = !{!"_ZTSSt14_Rb_tree_color", !8, i64 0}
!70 = !{!"_ZTS5Timer", !71, i64 0, !71, i64 8, !44, i64 16, !55, i64 24}
!71 = !{!"_ZTSNSt6chrono10time_pointINS_3_V212system_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEEEE", !72, i64 0}
!72 = !{!"_ZTSNSt6chrono8durationIlSt5ratioILl1ELl1000000000EEEE", !13, i64 0}
!73 = distinct !{!73, !46, !49}
!74 = distinct !{!74, !46}
!75 = distinct !{!75, !46, !49}
!76 = distinct !{!76, !46}


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,SCCPPass,SROAPass,SimpleLoopUnswitchPass,SimplifyCFGPass