; LLVM IR from ggml-org/ggml :: examples/gpt-2 (main-backend)

; 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::basic_ifstream" = type { %"class.std::basic_istream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon.3 }
%union.anon.3 = type { i32 }
%"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.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::vector.12" = type { %"struct.std::_Vector_base.13" }
%"struct.std::_Vector_base.13" = type { %"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl" }
%"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl" = type { %"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.0" = type { i8 }
%struct.ggml_init_params = type { i64, ptr, i8 }
%"struct.std::_Rb_tree_iterator" = type { ptr }
%struct.gpt2_model = type { %struct.gpt2_hparams, ptr, ptr, ptr, ptr, ptr, %"class.std::vector.4", ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::map" }
%struct.gpt2_hparams = type { i32, i32, i32, i32, i32, i32, float }
%"class.std::vector.4" = type { %"struct.std::_Vector_base.5" }
%"struct.std::_Vector_base.5" = type { %"struct.std::_Vector_base<gpt2_layer, std::allocator<gpt2_layer>>::_Vector_impl" }
%"struct.std::_Vector_base<gpt2_layer, std::allocator<gpt2_layer>>::_Vector_impl" = type { %"struct.std::_Vector_base<gpt2_layer, std::allocator<gpt2_layer>>::_Vector_impl_data" }
%"struct.std::_Vector_base<gpt2_layer, std::allocator<gpt2_layer>>::_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>, ggml_tensor *>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, ggml_tensor *>>, 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>, ggml_tensor *>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, ggml_tensor *>>, 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 }
%struct.gpt_vocab = type { %"class.std::map.14", %"class.std::map.19", %"class.std::vector" }
%"class.std::map.14" = type { %"class.std::_Rb_tree.15" }
%"class.std::_Rb_tree.15" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, int>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, int>>, 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>, int>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, int>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.19" = type { %"class.std::_Rb_tree.20" }
%"class.std::_Rb_tree.20" = type { %"struct.std::_Rb_tree<int, std::pair<const int, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const int, std::__cxx11::basic_string<char>>>, std::less<int>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<int, std::pair<const int, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const int, std::__cxx11::basic_string<char>>>, std::less<int>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = 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 }
%struct.gpt2_layer = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.ggml_tensor = type { i32, ptr, [4 x i64], [4 x i64], i32, [16 x i32], i32, [10 x ptr], ptr, i64, ptr, [64 x i8], ptr, [8 x i8] }

@.str = external hidden unnamed_addr constant [29 x i8], align 1
@__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii = external hidden unnamed_addr constant [16 x i8], align 1
@stderr = external global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [40 x i8], align 1
@__const._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii.ne = external hidden unnamed_addr constant [2 x i32], align 4
@.str.36 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [28 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

; 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 noundef zeroext i1 @_Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(200) %1, ptr noundef nonnull align 8 dereferenceable(120) %2, i32 noundef %3, i32 noundef %4) #2 personality ptr @__gxx_personality_v0 {
  %6 = alloca i1, align 1
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca %"class.std::basic_ifstream", align 8
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca ptr, align 8
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::vector.12", align 8
  %22 = alloca %"class.std::allocator.0", align 1
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca ptr, align 8
  %27 = alloca i64, align 8
  %28 = alloca %struct.ggml_init_params, align 8
  %29 = alloca %struct.ggml_init_params, align 8
  %30 = alloca ptr, align 8
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::allocator.0", align 1
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::allocator.0", align 1
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator.0", align 1
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::allocator.0", align 1
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::allocator.0", align 1
  %45 = alloca i32, align 4
  %46 = alloca ptr, align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::__cxx11::basic_string", align 8
  %72 = alloca %"class.std::__cxx11::basic_string", align 8
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca %"class.std::__cxx11::basic_string", align 8
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %"class.std::__cxx11::basic_string", align 8
  %80 = alloca %"class.std::__cxx11::basic_string", align 8
  %81 = alloca %"class.std::__cxx11::basic_string", align 8
  %82 = alloca %"class.std::__cxx11::basic_string", align 8
  %83 = alloca ptr, align 8
  %84 = alloca i64, align 8
  %85 = alloca %struct.ggml_init_params, align 8
  %86 = alloca %struct.ggml_init_params, align 8
  %87 = alloca ptr, align 8
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca i64, align 8
  %94 = alloca i64, align 8
  %95 = alloca i8, align 1
  %96 = alloca %"class.std::vector.12", align 8
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca [2 x i32], align 4
  %102 = alloca i32, align 4
  %103 = alloca %"class.std::__cxx11::basic_string", align 8
  %104 = alloca %"class.std::allocator.0", align 1
  %105 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %106 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %107 = alloca ptr, align 8
  %108 = alloca i64, align 8
  store ptr %0, ptr %7, align 8, !tbaa !5
  store ptr %1, ptr %8, align 8, !tbaa !5
  store ptr %2, ptr %9, align 8, !tbaa !5
  store i32 %3, ptr %10, align 4, !tbaa !9
  store i32 %4, ptr %11, align 4, !tbaa !9
  %109 = load ptr, ptr %7, align 8, !tbaa !5
  %110 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %109) #8
  %111 = call i32 (ptr, ...) @printf(ptr noundef @.str, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, ptr noundef %110)
  call void @llvm.lifetime.start.p0(i64 520, ptr %12) #8
  %112 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256) %12, ptr noundef nonnull align 8 dereferenceable(32) %112, i32 noundef 4)
  %113 = load ptr, ptr %12, align 8, !tbaa !11
  %114 = getelementptr i8, ptr %113, i64 -24
  %115 = load i64, ptr %114, align 8
  %116 = getelementptr inbounds i8, ptr %12, i64 %115
  %117 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv(ptr noundef nonnull align 8 dereferenceable(264) %116)
          to label %118 unwind label %124

118:                                              ; preds = %5
  br i1 %117, label %119, label %128

119:                                              ; preds = %118
  %120 = load ptr, ptr @stderr, align 8, !tbaa !5
  %121 = load ptr, ptr %7, align 8, !tbaa !5
  %122 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %121) #8
  %123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %120, ptr noundef @.str.1, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, ptr noundef %122) #8
  store i1 false, ptr %6, align 1
  store i32 1, ptr %15, align 4
  br label %1324

124:                                              ; preds = %5
  %125 = landingpad { ptr, i32 }
          cleanup
  %126 = extractvalue { ptr, i32 } %125, 0
  store ptr %126, ptr %13, align 8
  %127 = extractvalue { ptr, i32 } %125, 1
  store i32 %127, ptr %14, align 4
  br label %1326

128:                                              ; preds = %118
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #8
  %129 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef %16, i64 noundef 4)
          to label %130 unwind label %138

130:                                              ; preds = %128
  %131 = load i32, ptr %16, align 4, !tbaa !9
  %132 = icmp ne i32 %131, 1734831468
  br i1 %132, label %133, label %142

133:                                              ; preds = %130
  %134 = load ptr, ptr @stderr, align 8, !tbaa !5
  %135 = load ptr, ptr %7, align 8, !tbaa !5
  %136 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %135) #8
  %137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %134, ptr noundef @.str.2, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, ptr noundef %136) #8
  store i1 false, ptr %6, align 1
  store i32 1, ptr %15, align 4
  br label %143

138:                                              ; preds = %128
  %139 = landingpad { ptr, i32 }
          cleanup
  %140 = extractvalue { ptr, i32 } %139, 0
  store ptr %140, ptr %13, align 8
  %141 = extractvalue { ptr, i32 } %139, 1
  store i32 %141, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #8
  br label %1326

142:                                              ; preds = %130
  store i32 0, ptr %15, align 4
  br label %143

143:                                              ; preds = %142, %133
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #8
  %144 = load i32, ptr %15, align 4
  switch i32 %144, label %1324 [
    i32 0, label %145
  ]

145:                                              ; preds = %143
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #8
  %146 = load ptr, ptr %8, align 8, !tbaa !5
  %147 = getelementptr inbounds %struct.gpt2_model, ptr %146, i32 0, i32 0
  store ptr %147, ptr %17, align 8, !tbaa !5
  %148 = load ptr, ptr %17, align 8, !tbaa !5
  %149 = getelementptr inbounds %struct.gpt2_hparams, ptr %148, i32 0, i32 0
  %150 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef %149, i64 noundef 4)
          to label %151 unwind label %231

151:                                              ; preds = %145
  %152 = load ptr, ptr %17, align 8, !tbaa !5
  %153 = getelementptr inbounds %struct.gpt2_hparams, ptr %152, i32 0, i32 1
  %154 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef %153, i64 noundef 4)
          to label %155 unwind label %231

155:                                              ; preds = %151
  %156 = load ptr, ptr %17, align 8, !tbaa !5
  %157 = getelementptr inbounds %struct.gpt2_hparams, ptr %156, i32 0, i32 2
  %158 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef %157, i64 noundef 4)
          to label %159 unwind label %231

159:                                              ; preds = %155
  %160 = load ptr, ptr %17, align 8, !tbaa !5
  %161 = getelementptr inbounds %struct.gpt2_hparams, ptr %160, i32 0, i32 3
  %162 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef %161, i64 noundef 4)
          to label %163 unwind label %231

163:                                              ; preds = %159
  %164 = load ptr, ptr %17, align 8, !tbaa !5
  %165 = getelementptr inbounds %struct.gpt2_hparams, ptr %164, i32 0, i32 4
  %166 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef %165, i64 noundef 4)
          to label %167 unwind label %231

167:                                              ; preds = %163
  %168 = load ptr, ptr %17, align 8, !tbaa !5
  %169 = getelementptr inbounds %struct.gpt2_hparams, ptr %168, i32 0, i32 5
  %170 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef %169, i64 noundef 4)
          to label %171 unwind label %231

171:                                              ; preds = %167
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #8
  %172 = load ptr, ptr %17, align 8, !tbaa !5
  %173 = getelementptr inbounds %struct.gpt2_hparams, ptr %172, i32 0, i32 5
  %174 = load i32, ptr %173, align 4, !tbaa !13
  %175 = sdiv i32 %174, 1000
  store i32 %175, ptr %18, align 4, !tbaa !9
  %176 = load ptr, ptr %17, align 8, !tbaa !5
  %177 = getelementptr inbounds %struct.gpt2_hparams, ptr %176, i32 0, i32 0
  %178 = load i32, ptr %177, align 4, !tbaa !16
  %179 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.3, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, i32 noundef %178)
          to label %180 unwind label %235

180:                                              ; preds = %171
  %181 = load ptr, ptr %17, align 8, !tbaa !5
  %182 = getelementptr inbounds %struct.gpt2_hparams, ptr %181, i32 0, i32 1
  %183 = load i32, ptr %182, align 4, !tbaa !17
  %184 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, i32 noundef %183)
          to label %185 unwind label %235

185:                                              ; preds = %180
  %186 = load ptr, ptr %17, align 8, !tbaa !5
  %187 = getelementptr inbounds %struct.gpt2_hparams, ptr %186, i32 0, i32 2
  %188 = load i32, ptr %187, align 4, !tbaa !18
  %189 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.5, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, i32 noundef %188)
          to label %190 unwind label %235

190:                                              ; preds = %185
  %191 = load ptr, ptr %17, align 8, !tbaa !5
  %192 = getelementptr inbounds %struct.gpt2_hparams, ptr %191, i32 0, i32 3
  %193 = load i32, ptr %192, align 4, !tbaa !19
  %194 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.6, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, i32 noundef %193)
          to label %195 unwind label %235

195:                                              ; preds = %190
  %196 = load ptr, ptr %17, align 8, !tbaa !5
  %197 = getelementptr inbounds %struct.gpt2_hparams, ptr %196, i32 0, i32 4
  %198 = load i32, ptr %197, align 4, !tbaa !20
  %199 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.7, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, i32 noundef %198)
          to label %200 unwind label %235

200:                                              ; preds = %195
  %201 = load ptr, ptr %17, align 8, !tbaa !5
  %202 = getelementptr inbounds %struct.gpt2_hparams, ptr %201, i32 0, i32 5
  %203 = load i32, ptr %202, align 4, !tbaa !13
  %204 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.8, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, i32 noundef %203)
          to label %205 unwind label %235

205:                                              ; preds = %200
  %206 = load i32, ptr %18, align 4, !tbaa !9
  %207 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.9, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, i32 noundef %206)
          to label %208 unwind label %235

208:                                              ; preds = %205
  %209 = load ptr, ptr %17, align 8, !tbaa !5
  %210 = getelementptr inbounds %struct.gpt2_hparams, ptr %209, i32 0, i32 5
  %211 = load i32, ptr %210, align 4, !tbaa !13
  %212 = srem i32 %211, 1000
  store i32 %212, ptr %210, align 4, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #8
  store i32 0, ptr %19, align 4, !tbaa !9
  %213 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef %19, i64 noundef 4)
          to label %214 unwind label %240

214:                                              ; preds = %208
  %215 = load i32, ptr %19, align 4, !tbaa !9
  %216 = load ptr, ptr %8, align 8, !tbaa !5
  %217 = getelementptr inbounds %struct.gpt2_model, ptr %216, i32 0, i32 0
  %218 = getelementptr inbounds %struct.gpt2_hparams, ptr %217, i32 0, i32 0
  %219 = load i32, ptr %218, align 8, !tbaa !21
  %220 = icmp ne i32 %215, %219
  br i1 %220, label %221, label %244

221:                                              ; preds = %214
  %222 = load ptr, ptr @stderr, align 8, !tbaa !5
  %223 = load ptr, ptr %7, align 8, !tbaa !5
  %224 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %223) #8
  %225 = load i32, ptr %19, align 4, !tbaa !9
  %226 = load ptr, ptr %8, align 8, !tbaa !5
  %227 = getelementptr inbounds %struct.gpt2_model, ptr %226, i32 0, i32 0
  %228 = getelementptr inbounds %struct.gpt2_hparams, ptr %227, i32 0, i32 0
  %229 = load i32, ptr %228, align 8, !tbaa !21
  %230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %222, ptr noundef @.str.10, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, ptr noundef %224, i32 noundef %225, i32 noundef %229) #8
  store i1 false, ptr %6, align 1
  store i32 1, ptr %15, align 4
  br label %290

231:                                              ; preds = %167, %163, %159, %155, %151, %145
  %232 = landingpad { ptr, i32 }
          cleanup
  %233 = extractvalue { ptr, i32 } %232, 0
  store ptr %233, ptr %13, align 8
  %234 = extractvalue { ptr, i32 } %232, 1
  store i32 %234, ptr %14, align 4
  br label %239

235:                                              ; preds = %205, %200, %195, %190, %185, %180, %171
  %236 = landingpad { ptr, i32 }
          cleanup
  %237 = extractvalue { ptr, i32 } %236, 0
  store ptr %237, ptr %13, align 8
  %238 = extractvalue { ptr, i32 } %236, 1
  store i32 %238, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #8
  br label %239

239:                                              ; preds = %235, %231
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #8
  br label %1326

240:                                              ; preds = %208
  %241 = landingpad { ptr, i32 }
          cleanup
  %242 = extractvalue { ptr, i32 } %241, 0
  store ptr %242, ptr %13, align 8
  %243 = extractvalue { ptr, i32 } %241, 1
  store i32 %243, ptr %14, align 4
  br label %311

244:                                              ; preds = %214
  call void @llvm.lifetime.start.p0(i64 32, ptr %20) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %21) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #8
  invoke void @_ZNSt6vectorIcSaIcEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef 128, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %245 unwind label %251

245:                                              ; preds = %244
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #8
  store i32 0, ptr %23, align 4, !tbaa !9
  br label %246

246:                                              ; preds = %282, %245
  %247 = load i32, ptr %23, align 4, !tbaa !9
  %248 = load i32, ptr %19, align 4, !tbaa !9
  %249 = icmp slt i32 %247, %248
  br i1 %249, label %255, label %250

250:                                              ; preds = %246
  store i32 2, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  br label %289

251:                                              ; preds = %244
  %252 = landingpad { ptr, i32 }
          cleanup
  %253 = extractvalue { ptr, i32 } %252, 0
  store ptr %253, ptr %13, align 8
  %254 = extractvalue { ptr, i32 } %252, 1
  store i32 %254, ptr %14, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #8
  br label %310

255:                                              ; preds = %246
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #8
  %256 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef %24, i64 noundef 4)
          to label %257 unwind label %285

257:                                              ; preds = %255
  %258 = load i32, ptr %24, align 4, !tbaa !9
  %259 = zext i32 %258 to i64
  invoke void @_ZNSt6vectorIcSaIcEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %21, i64 noundef %259)
          to label %260 unwind label %285

260:                                              ; preds = %257
  %261 = call noundef ptr @_ZNSt6vectorIcSaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %21) #8
  %262 = load i32, ptr %24, align 4, !tbaa !9
  %263 = zext i32 %262 to i64
  %264 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef %261, i64 noundef %263)
          to label %265 unwind label %285

265:                                              ; preds = %260
  %266 = call noundef ptr @_ZNSt6vectorIcSaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %21) #8
  %267 = load i32, ptr %24, align 4, !tbaa !9
  %268 = zext i32 %267 to i64
  %269 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignEPKcm(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef %266, i64 noundef %268)
          to label %270 unwind label %285

270:                                              ; preds = %265
  %271 = load i32, ptr %23, align 4, !tbaa !9
  %272 = load ptr, ptr %9, align 8, !tbaa !5
  %273 = getelementptr inbounds %struct.gpt_vocab, ptr %272, i32 0, i32 0
  %274 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %273, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %275 unwind label %285

275:                                              ; preds = %270
  store i32 %271, ptr %274, align 4, !tbaa !9
  %276 = load ptr, ptr %9, align 8, !tbaa !5
  %277 = getelementptr inbounds %struct.gpt_vocab, ptr %276, i32 0, i32 1
  %278 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapIiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIiESaISt4pairIKiS5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %277, ptr noundef nonnull align 4 dereferenceable(4) %23)
          to label %279 unwind label %285

279:                                              ; preds = %275
  %280 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %278, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %281 unwind label %285

281:                                              ; preds = %279
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #8
  br label %282

282:                                              ; preds = %281
  %283 = load i32, ptr %23, align 4, !tbaa !9
  %284 = add nsw i32 %283, 1
  store i32 %284, ptr %23, align 4, !tbaa !9
  br label %246, !llvm.loop !36

285:                                              ; preds = %279, %275, %270, %265, %260, %257, %255
  %286 = landingpad { ptr, i32 }
          cleanup
  %287 = extractvalue { ptr, i32 } %286, 0
  store ptr %287, ptr %13, align 8
  %288 = extractvalue { ptr, i32 } %286, 1
  store i32 %288, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  call void @_ZNSt6vectorIcSaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #8
  br label %310

289:                                              ; preds = %250
  call void @_ZNSt6vectorIcSaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #8
  store i32 0, ptr %15, align 4
  br label %290

290:                                              ; preds = %289, %221
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #8
  %291 = load i32, ptr %15, align 4
  switch i32 %291, label %1324 [
    i32 0, label %292
  ]

292:                                              ; preds = %290
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #8
  %293 = load ptr, ptr %8, align 8, !tbaa !5
  %294 = getelementptr inbounds %struct.gpt2_model, ptr %293, i32 0, i32 0
  %295 = getelementptr inbounds %struct.gpt2_hparams, ptr %294, i32 0, i32 5
  %296 = load i32, ptr %295, align 4, !tbaa !38
  %297 = invoke i32 @ggml_ftype_to_ggml_type(i32 noundef %296)
          to label %298 unwind label %312

298:                                              ; preds = %292
  store i32 %297, ptr %25, align 4, !tbaa !39
  %299 = load i32, ptr %25, align 4, !tbaa !39
  %300 = icmp eq i32 %299, 39
  br i1 %300, label %301, label %316

301:                                              ; preds = %298
  %302 = load ptr, ptr @stderr, align 8, !tbaa !5
  %303 = load ptr, ptr %7, align 8, !tbaa !5
  %304 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %303) #8
  %305 = load ptr, ptr %8, align 8, !tbaa !5
  %306 = getelementptr inbounds %struct.gpt2_model, ptr %305, i32 0, i32 0
  %307 = getelementptr inbounds %struct.gpt2_hparams, ptr %306, i32 0, i32 5
  %308 = load i32, ptr %307, align 4, !tbaa !38
  %309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %302, ptr noundef @.str.11, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, ptr noundef %304, i32 noundef %308) #8
  store i1 false, ptr %6, align 1
  store i32 1, ptr %15, align 4
  br label %1322

310:                                              ; preds = %285, %251
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #8
  br label %311

311:                                              ; preds = %310, %240
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #8
  br label %1326

312:                                              ; preds = %316, %292
  %313 = landingpad { ptr, i32 }
          cleanup
  %314 = extractvalue { ptr, i32 } %313, 0
  store ptr %314, ptr %13, align 8
  %315 = extractvalue { ptr, i32 } %313, 1
  store i32 %315, ptr %14, align 4
  br label %1323

316:                                              ; preds = %298
  invoke void @ggml_log_set(ptr noundef @_ZL25ggml_log_callback_default14ggml_log_levelPKcPv, ptr noundef null)
          to label %317 unwind label %312

317:                                              ; preds = %316
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #8
  %318 = load ptr, ptr %8, align 8, !tbaa !5
  %319 = getelementptr inbounds %struct.gpt2_model, ptr %318, i32 0, i32 9
  store ptr %319, ptr %26, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #8
  %320 = load ptr, ptr %8, align 8, !tbaa !5
  %321 = getelementptr inbounds %struct.gpt2_model, ptr %320, i32 0, i32 0
  %322 = getelementptr inbounds %struct.gpt2_hparams, ptr %321, i32 0, i32 4
  %323 = load i32, ptr %322, align 8, !tbaa !41
  %324 = mul nsw i32 12, %323
  %325 = add nsw i32 8, %324
  %326 = sext i32 %325 to i64
  store i64 %326, ptr %27, align 8, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 24, ptr %28) #8
  %327 = getelementptr inbounds %struct.ggml_init_params, ptr %28, i32 0, i32 0
  %328 = invoke i64 @ggml_tensor_overhead()
          to label %329 unwind label %343

329:                                              ; preds = %317
  %330 = load i64, ptr %27, align 8, !tbaa !42
  %331 = mul i64 %328, %330
  store i64 %331, ptr %327, align 8, !tbaa !43
  %332 = getelementptr inbounds %struct.ggml_init_params, ptr %28, i32 0, i32 1
  store ptr null, ptr %332, align 8, !tbaa !46
  %333 = getelementptr inbounds %struct.ggml_init_params, ptr %28, i32 0, i32 2
  store i8 1, ptr %333, align 8, !tbaa !47
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %29, ptr align 8 %28, i64 24, i1 false), !tbaa.struct !48
  %334 = invoke ptr @ggml_init(ptr noundef byval(%struct.ggml_init_params) align 8 %29)
          to label %335 unwind label %343

335:                                              ; preds = %329
  %336 = load ptr, ptr %26, align 8, !tbaa !5
  store ptr %334, ptr %336, align 8, !tbaa !5
  %337 = load ptr, ptr %26, align 8, !tbaa !5
  %338 = load ptr, ptr %337, align 8, !tbaa !5
  %339 = icmp ne ptr %338, null
  br i1 %339, label %347, label %340

340:                                              ; preds = %335
  %341 = load ptr, ptr @stderr, align 8, !tbaa !5
  %342 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %341, ptr noundef @.str.12, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii) #8
  store i1 false, ptr %6, align 1
  store i32 1, ptr %15, align 4
  br label %348

343:                                              ; preds = %329, %317
  %344 = landingpad { ptr, i32 }
          cleanup
  %345 = extractvalue { ptr, i32 } %344, 0
  store ptr %345, ptr %13, align 8
  %346 = extractvalue { ptr, i32 } %344, 1
  store i32 %346, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %28) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  br label %1321

347:                                              ; preds = %335
  store i32 0, ptr %15, align 4
  br label %348

348:                                              ; preds = %347, %340
  call void @llvm.lifetime.end.p0(i64 24, ptr %28) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  %349 = load i32, ptr %15, align 4
  switch i32 %349, label %1320 [
    i32 0, label %350
  ]

350:                                              ; preds = %348
  %351 = load ptr, ptr %8, align 8, !tbaa !5
  %352 = getelementptr inbounds %struct.gpt2_model, ptr %351, i32 0, i32 11
  %353 = load ptr, ptr %352, align 8, !tbaa !50
  %354 = icmp ne ptr %353, null
  br i1 %354, label %366, label %355

355:                                              ; preds = %350
  %356 = load ptr, ptr @stderr, align 8, !tbaa !5
  %357 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %356, ptr noundef @.str.13, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii) #8
  %358 = invoke ptr @ggml_backend_cpu_init()
          to label %359 unwind label %362

359:                                              ; preds = %355
  %360 = load ptr, ptr %8, align 8, !tbaa !5
  %361 = getelementptr inbounds %struct.gpt2_model, ptr %360, i32 0, i32 11
  store ptr %358, ptr %361, align 8, !tbaa !50
  br label %366

362:                                              ; preds = %1313, %967, %962, %958, %951, %355
  %363 = landingpad { ptr, i32 }
          cleanup
  %364 = extractvalue { ptr, i32 } %363, 0
  store ptr %364, ptr %13, align 8
  %365 = extractvalue { ptr, i32 } %363, 1
  store i32 %365, ptr %14, align 4
  br label %1321

366:                                              ; preds = %359, %350
  %367 = load ptr, ptr %8, align 8, !tbaa !5
  %368 = getelementptr inbounds %struct.gpt2_model, ptr %367, i32 0, i32 11
  %369 = load ptr, ptr %368, align 8, !tbaa !50
  %370 = icmp ne ptr %369, null
  br i1 %370, label %374, label %371

371:                                              ; preds = %366
  %372 = load ptr, ptr @stderr, align 8, !tbaa !5
  %373 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %372, ptr noundef @.str.14, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii) #8
  store i1 false, ptr %6, align 1
  store i32 1, ptr %15, align 4
  br label %1320

374:                                              ; preds = %366
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #8
  %375 = load ptr, ptr %8, align 8, !tbaa !5
  %376 = getelementptr inbounds %struct.gpt2_model, ptr %375, i32 0, i32 0
  store ptr %376, ptr %30, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #8
  %377 = load ptr, ptr %30, align 8, !tbaa !5
  %378 = getelementptr inbounds %struct.gpt2_hparams, ptr %377, i32 0, i32 2
  %379 = load i32, ptr %378, align 4, !tbaa !18
  store i32 %379, ptr %31, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #8
  %380 = load ptr, ptr %30, align 8, !tbaa !5
  %381 = getelementptr inbounds %struct.gpt2_hparams, ptr %380, i32 0, i32 4
  %382 = load i32, ptr %381, align 4, !tbaa !20
  store i32 %382, ptr %32, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #8
  %383 = load ptr, ptr %30, align 8, !tbaa !5
  %384 = getelementptr inbounds %struct.gpt2_hparams, ptr %383, i32 0, i32 1
  %385 = load i32, ptr %384, align 4, !tbaa !17
  store i32 %385, ptr %33, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #8
  %386 = load ptr, ptr %30, align 8, !tbaa !5
  %387 = getelementptr inbounds %struct.gpt2_hparams, ptr %386, i32 0, i32 0
  %388 = load i32, ptr %387, align 4, !tbaa !16
  store i32 %388, ptr %34, align 4, !tbaa !9
  %389 = load ptr, ptr %8, align 8, !tbaa !5
  %390 = getelementptr inbounds %struct.gpt2_model, ptr %389, i32 0, i32 6
  %391 = load i32, ptr %32, align 4, !tbaa !9
  %392 = sext i32 %391 to i64
  invoke void @_ZNSt6vectorI10gpt2_layerSaIS0_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %390, i64 noundef %392)
          to label %393 unwind label %487

393:                                              ; preds = %374
  %394 = load ptr, ptr %26, align 8, !tbaa !5
  %395 = load ptr, ptr %394, align 8, !tbaa !5
  %396 = load i32, ptr %31, align 4, !tbaa !9
  %397 = sext i32 %396 to i64
  %398 = invoke ptr @ggml_new_tensor_1d(ptr noundef %395, i32 noundef 0, i64 noundef %397)
          to label %399 unwind label %487

399:                                              ; preds = %393
  %400 = load ptr, ptr %8, align 8, !tbaa !5
  %401 = getelementptr inbounds %struct.gpt2_model, ptr %400, i32 0, i32 1
  store ptr %398, ptr %401, align 8, !tbaa !51
  %402 = load ptr, ptr %26, align 8, !tbaa !5
  %403 = load ptr, ptr %402, align 8, !tbaa !5
  %404 = load i32, ptr %31, align 4, !tbaa !9
  %405 = sext i32 %404 to i64
  %406 = invoke ptr @ggml_new_tensor_1d(ptr noundef %403, i32 noundef 0, i64 noundef %405)
          to label %407 unwind label %487

407:                                              ; preds = %399
  %408 = load ptr, ptr %8, align 8, !tbaa !5
  %409 = getelementptr inbounds %struct.gpt2_model, ptr %408, i32 0, i32 2
  store ptr %406, ptr %409, align 8, !tbaa !52
  %410 = load ptr, ptr %26, align 8, !tbaa !5
  %411 = load ptr, ptr %410, align 8, !tbaa !5
  %412 = load i32, ptr %25, align 4, !tbaa !39
  %413 = load i32, ptr %31, align 4, !tbaa !9
  %414 = sext i32 %413 to i64
  %415 = load i32, ptr %34, align 4, !tbaa !9
  %416 = sext i32 %415 to i64
  %417 = invoke ptr @ggml_new_tensor_2d(ptr noundef %411, i32 noundef %412, i64 noundef %414, i64 noundef %416)
          to label %418 unwind label %487

418:                                              ; preds = %407
  %419 = load ptr, ptr %8, align 8, !tbaa !5
  %420 = getelementptr inbounds %struct.gpt2_model, ptr %419, i32 0, i32 3
  store ptr %417, ptr %420, align 8, !tbaa !53
  %421 = load ptr, ptr %26, align 8, !tbaa !5
  %422 = load ptr, ptr %421, align 8, !tbaa !5
  %423 = load i32, ptr %31, align 4, !tbaa !9
  %424 = sext i32 %423 to i64
  %425 = load i32, ptr %33, align 4, !tbaa !9
  %426 = sext i32 %425 to i64
  %427 = invoke ptr @ggml_new_tensor_2d(ptr noundef %422, i32 noundef 0, i64 noundef %424, i64 noundef %426)
          to label %428 unwind label %487

428:                                              ; preds = %418
  %429 = load ptr, ptr %8, align 8, !tbaa !5
  %430 = getelementptr inbounds %struct.gpt2_model, ptr %429, i32 0, i32 4
  store ptr %427, ptr %430, align 8, !tbaa !54
  %431 = load ptr, ptr %26, align 8, !tbaa !5
  %432 = load ptr, ptr %431, align 8, !tbaa !5
  %433 = load i32, ptr %25, align 4, !tbaa !39
  %434 = load i32, ptr %31, align 4, !tbaa !9
  %435 = sext i32 %434 to i64
  %436 = load i32, ptr %34, align 4, !tbaa !9
  %437 = sext i32 %436 to i64
  %438 = invoke ptr @ggml_new_tensor_2d(ptr noundef %432, i32 noundef %433, i64 noundef %435, i64 noundef %437)
          to label %439 unwind label %487

439:                                              ; preds = %428
  %440 = load ptr, ptr %8, align 8, !tbaa !5
  %441 = getelementptr inbounds %struct.gpt2_model, ptr %440, i32 0, i32 5
  store ptr %438, ptr %441, align 8, !tbaa !55
  %442 = load ptr, ptr %8, align 8, !tbaa !5
  %443 = getelementptr inbounds %struct.gpt2_model, ptr %442, i32 0, i32 1
  %444 = load ptr, ptr %443, align 8, !tbaa !51
  %445 = load ptr, ptr %8, align 8, !tbaa !5
  %446 = getelementptr inbounds %struct.gpt2_model, ptr %445, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %36) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef @.str.15, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %447 unwind label %491

447:                                              ; preds = %439
  %448 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %446, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %449 unwind label %495

449:                                              ; preds = %447
  store ptr %444, ptr %448, align 8, !tbaa !5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #8
  %450 = load ptr, ptr %8, align 8, !tbaa !5
  %451 = getelementptr inbounds %struct.gpt2_model, ptr %450, i32 0, i32 2
  %452 = load ptr, ptr %451, align 8, !tbaa !52
  %453 = load ptr, ptr %8, align 8, !tbaa !5
  %454 = getelementptr inbounds %struct.gpt2_model, ptr %453, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %38) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %455 unwind label %500

455:                                              ; preds = %449
  %456 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %454, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %457 unwind label %504

457:                                              ; preds = %455
  store ptr %452, ptr %456, align 8, !tbaa !5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #8
  %458 = load ptr, ptr %8, align 8, !tbaa !5
  %459 = getelementptr inbounds %struct.gpt2_model, ptr %458, i32 0, i32 3
  %460 = load ptr, ptr %459, align 8, !tbaa !53
  %461 = load ptr, ptr %8, align 8, !tbaa !5
  %462 = getelementptr inbounds %struct.gpt2_model, ptr %461, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 32, ptr %39) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %40) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %463 unwind label %509

463:                                              ; preds = %457
  %464 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %462, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %465 unwind label %513

465:                                              ; preds = %463
  store ptr %460, ptr %464, align 8, !tbaa !5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #8
  %466 = load ptr, ptr %8, align 8, !tbaa !5
  %467 = getelementptr inbounds %struct.gpt2_model, ptr %466, i32 0, i32 4
  %468 = load ptr, ptr %467, align 8, !tbaa !54
  %469 = load ptr, ptr %8, align 8, !tbaa !5
  %470 = getelementptr inbounds %struct.gpt2_model, ptr %469, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %42) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %42)
          to label %471 unwind label %518

471:                                              ; preds = %465
  %472 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %470, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %473 unwind label %522

473:                                              ; preds = %471
  store ptr %468, ptr %472, align 8, !tbaa !5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #8
  %474 = load ptr, ptr %8, align 8, !tbaa !5
  %475 = getelementptr inbounds %struct.gpt2_model, ptr %474, i32 0, i32 5
  %476 = load ptr, ptr %475, align 8, !tbaa !55
  %477 = load ptr, ptr %8, align 8, !tbaa !5
  %478 = getelementptr inbounds %struct.gpt2_model, ptr %477, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 32, ptr %43) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %44) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %479 unwind label %527

479:                                              ; preds = %473
  %480 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %478, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %481 unwind label %531

481:                                              ; preds = %479
  store ptr %476, ptr %480, align 8, !tbaa !5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #8
  store i32 0, ptr %45, align 4, !tbaa !9
  br label %482

482:                                              ; preds = %775, %481
  %483 = load i32, ptr %45, align 4, !tbaa !9
  %484 = load i32, ptr %32, align 4, !tbaa !9
  %485 = icmp slt i32 %483, %484
  br i1 %485, label %536, label %486

486:                                              ; preds = %482
  store i32 5, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #8
  br label %951

487:                                              ; preds = %428, %418, %407, %399, %393, %374
  %488 = landingpad { ptr, i32 }
          cleanup
  %489 = extractvalue { ptr, i32 } %488, 0
  store ptr %489, ptr %13, align 8
  %490 = extractvalue { ptr, i32 } %488, 1
  store i32 %490, ptr %14, align 4
  br label %993

491:                                              ; preds = %439
  %492 = landingpad { ptr, i32 }
          cleanup
  %493 = extractvalue { ptr, i32 } %492, 0
  store ptr %493, ptr %13, align 8
  %494 = extractvalue { ptr, i32 } %492, 1
  store i32 %494, ptr %14, align 4
  br label %499

495:                                              ; preds = %447
  %496 = landingpad { ptr, i32 }
          cleanup
  %497 = extractvalue { ptr, i32 } %496, 0
  store ptr %497, ptr %13, align 8
  %498 = extractvalue { ptr, i32 } %496, 1
  store i32 %498, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #8
  br label %499

499:                                              ; preds = %495, %491
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #8
  br label %993

500:                                              ; preds = %449
  %501 = landingpad { ptr, i32 }
          cleanup
  %502 = extractvalue { ptr, i32 } %501, 0
  store ptr %502, ptr %13, align 8
  %503 = extractvalue { ptr, i32 } %501, 1
  store i32 %503, ptr %14, align 4
  br label %508

504:                                              ; preds = %455
  %505 = landingpad { ptr, i32 }
          cleanup
  %506 = extractvalue { ptr, i32 } %505, 0
  store ptr %506, ptr %13, align 8
  %507 = extractvalue { ptr, i32 } %505, 1
  store i32 %507, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #8
  br label %508

508:                                              ; preds = %504, %500
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #8
  br label %993

509:                                              ; preds = %457
  %510 = landingpad { ptr, i32 }
          cleanup
  %511 = extractvalue { ptr, i32 } %510, 0
  store ptr %511, ptr %13, align 8
  %512 = extractvalue { ptr, i32 } %510, 1
  store i32 %512, ptr %14, align 4
  br label %517

513:                                              ; preds = %463
  %514 = landingpad { ptr, i32 }
          cleanup
  %515 = extractvalue { ptr, i32 } %514, 0
  store ptr %515, ptr %13, align 8
  %516 = extractvalue { ptr, i32 } %514, 1
  store i32 %516, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  br label %517

517:                                              ; preds = %513, %509
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #8
  br label %993

518:                                              ; preds = %465
  %519 = landingpad { ptr, i32 }
          cleanup
  %520 = extractvalue { ptr, i32 } %519, 0
  store ptr %520, ptr %13, align 8
  %521 = extractvalue { ptr, i32 } %519, 1
  store i32 %521, ptr %14, align 4
  br label %526

522:                                              ; preds = %471
  %523 = landingpad { ptr, i32 }
          cleanup
  %524 = extractvalue { ptr, i32 } %523, 0
  store ptr %524, ptr %13, align 8
  %525 = extractvalue { ptr, i32 } %523, 1
  store i32 %525, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  br label %526

526:                                              ; preds = %522, %518
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #8
  br label %993

527:                                              ; preds = %473
  %528 = landingpad { ptr, i32 }
          cleanup
  %529 = extractvalue { ptr, i32 } %528, 0
  store ptr %529, ptr %13, align 8
  %530 = extractvalue { ptr, i32 } %528, 1
  store i32 %530, ptr %14, align 4
  br label %535

531:                                              ; preds = %479
  %532 = landingpad { ptr, i32 }
          cleanup
  %533 = extractvalue { ptr, i32 } %532, 0
  store ptr %533, ptr %13, align 8
  %534 = extractvalue { ptr, i32 } %532, 1
  store i32 %534, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #8
  br label %535

535:                                              ; preds = %531, %527
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #8
  br label %993

536:                                              ; preds = %482
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #8
  %537 = load ptr, ptr %8, align 8, !tbaa !5
  %538 = getelementptr inbounds %struct.gpt2_model, ptr %537, i32 0, i32 6
  %539 = load i32, ptr %45, align 4, !tbaa !9
  %540 = sext i32 %539 to i64
  %541 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNSt6vectorI10gpt2_layerSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %538, i64 noundef %540) #8
  store ptr %541, ptr %46, align 8, !tbaa !5
  %542 = load ptr, ptr %26, align 8, !tbaa !5
  %543 = load ptr, ptr %542, align 8, !tbaa !5
  %544 = load i32, ptr %31, align 4, !tbaa !9
  %545 = sext i32 %544 to i64
  %546 = invoke ptr @ggml_new_tensor_1d(ptr noundef %543, i32 noundef 0, i64 noundef %545)
          to label %547 unwind label %778

547:                                              ; preds = %536
  %548 = load ptr, ptr %46, align 8, !tbaa !5
  %549 = getelementptr inbounds %struct.gpt2_layer, ptr %548, i32 0, i32 0
  store ptr %546, ptr %549, align 8, !tbaa !56
  %550 = load ptr, ptr %26, align 8, !tbaa !5
  %551 = load ptr, ptr %550, align 8, !tbaa !5
  %552 = load i32, ptr %31, align 4, !tbaa !9
  %553 = sext i32 %552 to i64
  %554 = invoke ptr @ggml_new_tensor_1d(ptr noundef %551, i32 noundef 0, i64 noundef %553)
          to label %555 unwind label %778

555:                                              ; preds = %547
  %556 = load ptr, ptr %46, align 8, !tbaa !5
  %557 = getelementptr inbounds %struct.gpt2_layer, ptr %556, i32 0, i32 1
  store ptr %554, ptr %557, align 8, !tbaa !58
  %558 = load ptr, ptr %26, align 8, !tbaa !5
  %559 = load ptr, ptr %558, align 8, !tbaa !5
  %560 = load i32, ptr %31, align 4, !tbaa !9
  %561 = sext i32 %560 to i64
  %562 = invoke ptr @ggml_new_tensor_1d(ptr noundef %559, i32 noundef 0, i64 noundef %561)
          to label %563 unwind label %778

563:                                              ; preds = %555
  %564 = load ptr, ptr %46, align 8, !tbaa !5
  %565 = getelementptr inbounds %struct.gpt2_layer, ptr %564, i32 0, i32 2
  store ptr %562, ptr %565, align 8, !tbaa !59
  %566 = load ptr, ptr %26, align 8, !tbaa !5
  %567 = load ptr, ptr %566, align 8, !tbaa !5
  %568 = load i32, ptr %31, align 4, !tbaa !9
  %569 = sext i32 %568 to i64
  %570 = invoke ptr @ggml_new_tensor_1d(ptr noundef %567, i32 noundef 0, i64 noundef %569)
          to label %571 unwind label %778

571:                                              ; preds = %563
  %572 = load ptr, ptr %46, align 8, !tbaa !5
  %573 = getelementptr inbounds %struct.gpt2_layer, ptr %572, i32 0, i32 3
  store ptr %570, ptr %573, align 8, !tbaa !60
  %574 = load ptr, ptr %26, align 8, !tbaa !5
  %575 = load ptr, ptr %574, align 8, !tbaa !5
  %576 = load i32, ptr %25, align 4, !tbaa !39
  %577 = load i32, ptr %31, align 4, !tbaa !9
  %578 = sext i32 %577 to i64
  %579 = load i32, ptr %31, align 4, !tbaa !9
  %580 = mul nsw i32 3, %579
  %581 = sext i32 %580 to i64
  %582 = invoke ptr @ggml_new_tensor_2d(ptr noundef %575, i32 noundef %576, i64 noundef %578, i64 noundef %581)
          to label %583 unwind label %778

583:                                              ; preds = %571
  %584 = load ptr, ptr %46, align 8, !tbaa !5
  %585 = getelementptr inbounds %struct.gpt2_layer, ptr %584, i32 0, i32 4
  store ptr %582, ptr %585, align 8, !tbaa !61
  %586 = load ptr, ptr %26, align 8, !tbaa !5
  %587 = load ptr, ptr %586, align 8, !tbaa !5
  %588 = load i32, ptr %31, align 4, !tbaa !9
  %589 = mul nsw i32 3, %588
  %590 = sext i32 %589 to i64
  %591 = invoke ptr @ggml_new_tensor_1d(ptr noundef %587, i32 noundef 0, i64 noundef %590)
          to label %592 unwind label %778

592:                                              ; preds = %583
  %593 = load ptr, ptr %46, align 8, !tbaa !5
  %594 = getelementptr inbounds %struct.gpt2_layer, ptr %593, i32 0, i32 5
  store ptr %591, ptr %594, align 8, !tbaa !62
  %595 = load ptr, ptr %26, align 8, !tbaa !5
  %596 = load ptr, ptr %595, align 8, !tbaa !5
  %597 = load i32, ptr %25, align 4, !tbaa !39
  %598 = load i32, ptr %31, align 4, !tbaa !9
  %599 = sext i32 %598 to i64
  %600 = load i32, ptr %31, align 4, !tbaa !9
  %601 = sext i32 %600 to i64
  %602 = invoke ptr @ggml_new_tensor_2d(ptr noundef %596, i32 noundef %597, i64 noundef %599, i64 noundef %601)
          to label %603 unwind label %778

603:                                              ; preds = %592
  %604 = load ptr, ptr %46, align 8, !tbaa !5
  %605 = getelementptr inbounds %struct.gpt2_layer, ptr %604, i32 0, i32 6
  store ptr %602, ptr %605, align 8, !tbaa !63
  %606 = load ptr, ptr %26, align 8, !tbaa !5
  %607 = load ptr, ptr %606, align 8, !tbaa !5
  %608 = load i32, ptr %31, align 4, !tbaa !9
  %609 = sext i32 %608 to i64
  %610 = invoke ptr @ggml_new_tensor_1d(ptr noundef %607, i32 noundef 0, i64 noundef %609)
          to label %611 unwind label %778

611:                                              ; preds = %603
  %612 = load ptr, ptr %46, align 8, !tbaa !5
  %613 = getelementptr inbounds %struct.gpt2_layer, ptr %612, i32 0, i32 7
  store ptr %610, ptr %613, align 8, !tbaa !64
  %614 = load ptr, ptr %26, align 8, !tbaa !5
  %615 = load ptr, ptr %614, align 8, !tbaa !5
  %616 = load i32, ptr %25, align 4, !tbaa !39
  %617 = load i32, ptr %31, align 4, !tbaa !9
  %618 = sext i32 %617 to i64
  %619 = load i32, ptr %31, align 4, !tbaa !9
  %620 = mul nsw i32 4, %619
  %621 = sext i32 %620 to i64
  %622 = invoke ptr @ggml_new_tensor_2d(ptr noundef %615, i32 noundef %616, i64 noundef %618, i64 noundef %621)
          to label %623 unwind label %778

623:                                              ; preds = %611
  %624 = load ptr, ptr %46, align 8, !tbaa !5
  %625 = getelementptr inbounds %struct.gpt2_layer, ptr %624, i32 0, i32 8
  store ptr %622, ptr %625, align 8, !tbaa !65
  %626 = load ptr, ptr %26, align 8, !tbaa !5
  %627 = load ptr, ptr %626, align 8, !tbaa !5
  %628 = load i32, ptr %31, align 4, !tbaa !9
  %629 = mul nsw i32 4, %628
  %630 = sext i32 %629 to i64
  %631 = invoke ptr @ggml_new_tensor_1d(ptr noundef %627, i32 noundef 0, i64 noundef %630)
          to label %632 unwind label %778

632:                                              ; preds = %623
  %633 = load ptr, ptr %46, align 8, !tbaa !5
  %634 = getelementptr inbounds %struct.gpt2_layer, ptr %633, i32 0, i32 9
  store ptr %631, ptr %634, align 8, !tbaa !66
  %635 = load ptr, ptr %26, align 8, !tbaa !5
  %636 = load ptr, ptr %635, align 8, !tbaa !5
  %637 = load i32, ptr %25, align 4, !tbaa !39
  %638 = load i32, ptr %31, align 4, !tbaa !9
  %639 = mul nsw i32 4, %638
  %640 = sext i32 %639 to i64
  %641 = load i32, ptr %31, align 4, !tbaa !9
  %642 = sext i32 %641 to i64
  %643 = invoke ptr @ggml_new_tensor_2d(ptr noundef %636, i32 noundef %637, i64 noundef %640, i64 noundef %642)
          to label %644 unwind label %778

644:                                              ; preds = %632
  %645 = load ptr, ptr %46, align 8, !tbaa !5
  %646 = getelementptr inbounds %struct.gpt2_layer, ptr %645, i32 0, i32 10
  store ptr %643, ptr %646, align 8, !tbaa !67
  %647 = load ptr, ptr %26, align 8, !tbaa !5
  %648 = load ptr, ptr %647, align 8, !tbaa !5
  %649 = load i32, ptr %31, align 4, !tbaa !9
  %650 = sext i32 %649 to i64
  %651 = invoke ptr @ggml_new_tensor_1d(ptr noundef %648, i32 noundef 0, i64 noundef %650)
          to label %652 unwind label %778

652:                                              ; preds = %644
  %653 = load ptr, ptr %46, align 8, !tbaa !5
  %654 = getelementptr inbounds %struct.gpt2_layer, ptr %653, i32 0, i32 11
  store ptr %651, ptr %654, align 8, !tbaa !68
  %655 = load ptr, ptr %46, align 8, !tbaa !5
  %656 = getelementptr inbounds %struct.gpt2_layer, ptr %655, i32 0, i32 0
  %657 = load ptr, ptr %656, align 8, !tbaa !56
  %658 = load ptr, ptr %8, align 8, !tbaa !5
  %659 = getelementptr inbounds %struct.gpt2_model, ptr %658, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %48) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %49) #8
  %660 = load i32, ptr %45, align 4, !tbaa !9
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %49, i32 noundef %660) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %48, ptr noundef @.str.20, ptr noundef nonnull align 8 dereferenceable(32) %49)
          to label %661 unwind label %782

661:                                              ; preds = %652
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %47, ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef @.str.21)
          to label %662 unwind label %786

662:                                              ; preds = %661
  %663 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %659, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %664 unwind label %790

664:                                              ; preds = %662
  store ptr %657, ptr %663, align 8, !tbaa !5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #8
  %665 = load ptr, ptr %46, align 8, !tbaa !5
  %666 = getelementptr inbounds %struct.gpt2_layer, ptr %665, i32 0, i32 1
  %667 = load ptr, ptr %666, align 8, !tbaa !58
  %668 = load ptr, ptr %8, align 8, !tbaa !5
  %669 = getelementptr inbounds %struct.gpt2_model, ptr %668, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %51) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #8
  %670 = load i32, ptr %45, align 4, !tbaa !9
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %52, i32 noundef %670) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %51, ptr noundef @.str.20, ptr noundef nonnull align 8 dereferenceable(32) %52)
          to label %671 unwind label %796

671:                                              ; preds = %664
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef @.str.22)
          to label %672 unwind label %800

672:                                              ; preds = %671
  %673 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %669, ptr noundef nonnull align 8 dereferenceable(32) %50)
          to label %674 unwind label %804

674:                                              ; preds = %672
  store ptr %667, ptr %673, align 8, !tbaa !5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #8
  %675 = load ptr, ptr %46, align 8, !tbaa !5
  %676 = getelementptr inbounds %struct.gpt2_layer, ptr %675, i32 0, i32 2
  %677 = load ptr, ptr %676, align 8, !tbaa !59
  %678 = load ptr, ptr %8, align 8, !tbaa !5
  %679 = getelementptr inbounds %struct.gpt2_model, ptr %678, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 32, ptr %53) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %54) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #8
  %680 = load i32, ptr %45, align 4, !tbaa !9
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %55, i32 noundef %680) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %54, ptr noundef @.str.20, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %681 unwind label %810

681:                                              ; preds = %674
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %53, ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef @.str.23)
          to label %682 unwind label %814

682:                                              ; preds = %681
  %683 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %679, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %684 unwind label %818

684:                                              ; preds = %682
  store ptr %677, ptr %683, align 8, !tbaa !5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #8
  %685 = load ptr, ptr %46, align 8, !tbaa !5
  %686 = getelementptr inbounds %struct.gpt2_layer, ptr %685, i32 0, i32 3
  %687 = load ptr, ptr %686, align 8, !tbaa !60
  %688 = load ptr, ptr %8, align 8, !tbaa !5
  %689 = getelementptr inbounds %struct.gpt2_model, ptr %688, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 32, ptr %56) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #8
  %690 = load i32, ptr %45, align 4, !tbaa !9
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %58, i32 noundef %690) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef @.str.20, ptr noundef nonnull align 8 dereferenceable(32) %58)
          to label %691 unwind label %824

691:                                              ; preds = %684
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %56, ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef @.str.24)
          to label %692 unwind label %828

692:                                              ; preds = %691
  %693 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %689, ptr noundef nonnull align 8 dereferenceable(32) %56)
          to label %694 unwind label %832

694:                                              ; preds = %692
  store ptr %687, ptr %693, align 8, !tbaa !5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #8
  %695 = load ptr, ptr %46, align 8, !tbaa !5
  %696 = getelementptr inbounds %struct.gpt2_layer, ptr %695, i32 0, i32 4
  %697 = load ptr, ptr %696, align 8, !tbaa !61
  %698 = load ptr, ptr %8, align 8, !tbaa !5
  %699 = getelementptr inbounds %struct.gpt2_model, ptr %698, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 32, ptr %59) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %60) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %61) #8
  %700 = load i32, ptr %45, align 4, !tbaa !9
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %61, i32 noundef %700) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %60, ptr noundef @.str.20, ptr noundef nonnull align 8 dereferenceable(32) %61)
          to label %701 unwind label %838

701:                                              ; preds = %694
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %59, ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef @.str.25)
          to label %702 unwind label %842

702:                                              ; preds = %701
  %703 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %699, ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %704 unwind label %846

704:                                              ; preds = %702
  store ptr %697, ptr %703, align 8, !tbaa !5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #8
  %705 = load ptr, ptr %46, align 8, !tbaa !5
  %706 = getelementptr inbounds %struct.gpt2_layer, ptr %705, i32 0, i32 5
  %707 = load ptr, ptr %706, align 8, !tbaa !62
  %708 = load ptr, ptr %8, align 8, !tbaa !5
  %709 = getelementptr inbounds %struct.gpt2_model, ptr %708, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %63) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %64) #8
  %710 = load i32, ptr %45, align 4, !tbaa !9
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %64, i32 noundef %710) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %63, ptr noundef @.str.20, ptr noundef nonnull align 8 dereferenceable(32) %64)
          to label %711 unwind label %852

711:                                              ; preds = %704
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %62, ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef @.str.26)
          to label %712 unwind label %856

712:                                              ; preds = %711
  %713 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %709, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %714 unwind label %860

714:                                              ; preds = %712
  store ptr %707, ptr %713, align 8, !tbaa !5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #8
  %715 = load ptr, ptr %46, align 8, !tbaa !5
  %716 = getelementptr inbounds %struct.gpt2_layer, ptr %715, i32 0, i32 6
  %717 = load ptr, ptr %716, align 8, !tbaa !63
  %718 = load ptr, ptr %8, align 8, !tbaa !5
  %719 = getelementptr inbounds %struct.gpt2_model, ptr %718, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 32, ptr %65) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %66) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %67) #8
  %720 = load i32, ptr %45, align 4, !tbaa !9
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %67, i32 noundef %720) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %66, ptr noundef @.str.20, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %721 unwind label %866

721:                                              ; preds = %714
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %65, ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef @.str.27)
          to label %722 unwind label %870

722:                                              ; preds = %721
  %723 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %719, ptr noundef nonnull align 8 dereferenceable(32) %65)
          to label %724 unwind label %874

724:                                              ; preds = %722
  store ptr %717, ptr %723, align 8, !tbaa !5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #8
  %725 = load ptr, ptr %46, align 8, !tbaa !5
  %726 = getelementptr inbounds %struct.gpt2_layer, ptr %725, i32 0, i32 7
  %727 = load ptr, ptr %726, align 8, !tbaa !64
  %728 = load ptr, ptr %8, align 8, !tbaa !5
  %729 = getelementptr inbounds %struct.gpt2_model, ptr %728, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 32, ptr %68) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %69) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %70) #8
  %730 = load i32, ptr %45, align 4, !tbaa !9
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %70, i32 noundef %730) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %69, ptr noundef @.str.20, ptr noundef nonnull align 8 dereferenceable(32) %70)
          to label %731 unwind label %880

731:                                              ; preds = %724
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %68, ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef @.str.28)
          to label %732 unwind label %884

732:                                              ; preds = %731
  %733 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %729, ptr noundef nonnull align 8 dereferenceable(32) %68)
          to label %734 unwind label %888

734:                                              ; preds = %732
  store ptr %727, ptr %733, align 8, !tbaa !5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #8
  %735 = load ptr, ptr %46, align 8, !tbaa !5
  %736 = getelementptr inbounds %struct.gpt2_layer, ptr %735, i32 0, i32 8
  %737 = load ptr, ptr %736, align 8, !tbaa !65
  %738 = load ptr, ptr %8, align 8, !tbaa !5
  %739 = getelementptr inbounds %struct.gpt2_model, ptr %738, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 32, ptr %71) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %72) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %73) #8
  %740 = load i32, ptr %45, align 4, !tbaa !9
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %73, i32 noundef %740) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %72, ptr noundef @.str.20, ptr noundef nonnull align 8 dereferenceable(32) %73)
          to label %741 unwind label %894

741:                                              ; preds = %734
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %71, ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef @.str.29)
          to label %742 unwind label %898

742:                                              ; preds = %741
  %743 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %739, ptr noundef nonnull align 8 dereferenceable(32) %71)
          to label %744 unwind label %902

744:                                              ; preds = %742
  store ptr %737, ptr %743, align 8, !tbaa !5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %72) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #8
  %745 = load ptr, ptr %46, align 8, !tbaa !5
  %746 = getelementptr inbounds %struct.gpt2_layer, ptr %745, i32 0, i32 9
  %747 = load ptr, ptr %746, align 8, !tbaa !66
  %748 = load ptr, ptr %8, align 8, !tbaa !5
  %749 = getelementptr inbounds %struct.gpt2_model, ptr %748, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 32, ptr %74) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %75) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #8
  %750 = load i32, ptr %45, align 4, !tbaa !9
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %76, i32 noundef %750) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %75, ptr noundef @.str.20, ptr noundef nonnull align 8 dereferenceable(32) %76)
          to label %751 unwind label %908

751:                                              ; preds = %744
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %74, ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef @.str.30)
          to label %752 unwind label %912

752:                                              ; preds = %751
  %753 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %749, ptr noundef nonnull align 8 dereferenceable(32) %74)
          to label %754 unwind label %916

754:                                              ; preds = %752
  store ptr %747, ptr %753, align 8, !tbaa !5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #8
  %755 = load ptr, ptr %46, align 8, !tbaa !5
  %756 = getelementptr inbounds %struct.gpt2_layer, ptr %755, i32 0, i32 10
  %757 = load ptr, ptr %756, align 8, !tbaa !67
  %758 = load ptr, ptr %8, align 8, !tbaa !5
  %759 = getelementptr inbounds %struct.gpt2_model, ptr %758, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 32, ptr %77) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %79) #8
  %760 = load i32, ptr %45, align 4, !tbaa !9
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %79, i32 noundef %760) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %78, ptr noundef @.str.20, ptr noundef nonnull align 8 dereferenceable(32) %79)
          to label %761 unwind label %922

761:                                              ; preds = %754
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %77, ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef @.str.31)
          to label %762 unwind label %926

762:                                              ; preds = %761
  %763 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %759, ptr noundef nonnull align 8 dereferenceable(32) %77)
          to label %764 unwind label %930

764:                                              ; preds = %762
  store ptr %757, ptr %763, align 8, !tbaa !5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #8
  %765 = load ptr, ptr %46, align 8, !tbaa !5
  %766 = getelementptr inbounds %struct.gpt2_layer, ptr %765, i32 0, i32 11
  %767 = load ptr, ptr %766, align 8, !tbaa !68
  %768 = load ptr, ptr %8, align 8, !tbaa !5
  %769 = getelementptr inbounds %struct.gpt2_model, ptr %768, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 32, ptr %80) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %81) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %82) #8
  %770 = load i32, ptr %45, align 4, !tbaa !9
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %82, i32 noundef %770) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %81, ptr noundef @.str.20, ptr noundef nonnull align 8 dereferenceable(32) %82)
          to label %771 unwind label %936

771:                                              ; preds = %764
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %80, ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef @.str.32)
          to label %772 unwind label %940

772:                                              ; preds = %771
  %773 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %769, ptr noundef nonnull align 8 dereferenceable(32) %80)
          to label %774 unwind label %944

774:                                              ; preds = %772
  store ptr %767, ptr %773, align 8, !tbaa !5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #8
  br label %775

775:                                              ; preds = %774
  %776 = load i32, ptr %45, align 4, !tbaa !9
  %777 = add nsw i32 %776, 1
  store i32 %777, ptr %45, align 4, !tbaa !9
  br label %482, !llvm.loop !69

778:                                              ; preds = %644, %632, %623, %611, %603, %592, %583, %571, %563, %555, %547, %536
  %779 = landingpad { ptr, i32 }
          cleanup
  %780 = extractvalue { ptr, i32 } %779, 0
  store ptr %780, ptr %13, align 8
  %781 = extractvalue { ptr, i32 } %779, 1
  store i32 %781, ptr %14, align 4
  br label %950

782:                                              ; preds = %652
  %783 = landingpad { ptr, i32 }
          cleanup
  %784 = extractvalue { ptr, i32 } %783, 0
  store ptr %784, ptr %13, align 8
  %785 = extractvalue { ptr, i32 } %783, 1
  store i32 %785, ptr %14, align 4
  br label %795

786:                                              ; preds = %661
  %787 = landingpad { ptr, i32 }
          cleanup
  %788 = extractvalue { ptr, i32 } %787, 0
  store ptr %788, ptr %13, align 8
  %789 = extractvalue { ptr, i32 } %787, 1
  store i32 %789, ptr %14, align 4
  br label %794

790:                                              ; preds = %662
  %791 = landingpad { ptr, i32 }
          cleanup
  %792 = extractvalue { ptr, i32 } %791, 0
  store ptr %792, ptr %13, align 8
  %793 = extractvalue { ptr, i32 } %791, 1
  store i32 %793, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  br label %794

794:                                              ; preds = %790, %786
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  br label %795

795:                                              ; preds = %794, %782
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #8
  br label %950

796:                                              ; preds = %664
  %797 = landingpad { ptr, i32 }
          cleanup
  %798 = extractvalue { ptr, i32 } %797, 0
  store ptr %798, ptr %13, align 8
  %799 = extractvalue { ptr, i32 } %797, 1
  store i32 %799, ptr %14, align 4
  br label %809

800:                                              ; preds = %671
  %801 = landingpad { ptr, i32 }
          cleanup
  %802 = extractvalue { ptr, i32 } %801, 0
  store ptr %802, ptr %13, align 8
  %803 = extractvalue { ptr, i32 } %801, 1
  store i32 %803, ptr %14, align 4
  br label %808

804:                                              ; preds = %672
  %805 = landingpad { ptr, i32 }
          cleanup
  %806 = extractvalue { ptr, i32 } %805, 0
  store ptr %806, ptr %13, align 8
  %807 = extractvalue { ptr, i32 } %805, 1
  store i32 %807, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #8
  br label %808

808:                                              ; preds = %804, %800
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  br label %809

809:                                              ; preds = %808, %796
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #8
  br label %950

810:                                              ; preds = %674
  %811 = landingpad { ptr, i32 }
          cleanup
  %812 = extractvalue { ptr, i32 } %811, 0
  store ptr %812, ptr %13, align 8
  %813 = extractvalue { ptr, i32 } %811, 1
  store i32 %813, ptr %14, align 4
  br label %823

814:                                              ; preds = %681
  %815 = landingpad { ptr, i32 }
          cleanup
  %816 = extractvalue { ptr, i32 } %815, 0
  store ptr %816, ptr %13, align 8
  %817 = extractvalue { ptr, i32 } %815, 1
  store i32 %817, ptr %14, align 4
  br label %822

818:                                              ; preds = %682
  %819 = landingpad { ptr, i32 }
          cleanup
  %820 = extractvalue { ptr, i32 } %819, 0
  store ptr %820, ptr %13, align 8
  %821 = extractvalue { ptr, i32 } %819, 1
  store i32 %821, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  br label %822

822:                                              ; preds = %818, %814
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #8
  br label %823

823:                                              ; preds = %822, %810
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #8
  br label %950

824:                                              ; preds = %684
  %825 = landingpad { ptr, i32 }
          cleanup
  %826 = extractvalue { ptr, i32 } %825, 0
  store ptr %826, ptr %13, align 8
  %827 = extractvalue { ptr, i32 } %825, 1
  store i32 %827, ptr %14, align 4
  br label %837

828:                                              ; preds = %691
  %829 = landingpad { ptr, i32 }
          cleanup
  %830 = extractvalue { ptr, i32 } %829, 0
  store ptr %830, ptr %13, align 8
  %831 = extractvalue { ptr, i32 } %829, 1
  store i32 %831, ptr %14, align 4
  br label %836

832:                                              ; preds = %692
  %833 = landingpad { ptr, i32 }
          cleanup
  %834 = extractvalue { ptr, i32 } %833, 0
  store ptr %834, ptr %13, align 8
  %835 = extractvalue { ptr, i32 } %833, 1
  store i32 %835, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #8
  br label %836

836:                                              ; preds = %832, %828
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #8
  br label %837

837:                                              ; preds = %836, %824
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #8
  br label %950

838:                                              ; preds = %694
  %839 = landingpad { ptr, i32 }
          cleanup
  %840 = extractvalue { ptr, i32 } %839, 0
  store ptr %840, ptr %13, align 8
  %841 = extractvalue { ptr, i32 } %839, 1
  store i32 %841, ptr %14, align 4
  br label %851

842:                                              ; preds = %701
  %843 = landingpad { ptr, i32 }
          cleanup
  %844 = extractvalue { ptr, i32 } %843, 0
  store ptr %844, ptr %13, align 8
  %845 = extractvalue { ptr, i32 } %843, 1
  store i32 %845, ptr %14, align 4
  br label %850

846:                                              ; preds = %702
  %847 = landingpad { ptr, i32 }
          cleanup
  %848 = extractvalue { ptr, i32 } %847, 0
  store ptr %848, ptr %13, align 8
  %849 = extractvalue { ptr, i32 } %847, 1
  store i32 %849, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #8
  br label %850

850:                                              ; preds = %846, %842
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #8
  br label %851

851:                                              ; preds = %850, %838
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #8
  br label %950

852:                                              ; preds = %704
  %853 = landingpad { ptr, i32 }
          cleanup
  %854 = extractvalue { ptr, i32 } %853, 0
  store ptr %854, ptr %13, align 8
  %855 = extractvalue { ptr, i32 } %853, 1
  store i32 %855, ptr %14, align 4
  br label %865

856:                                              ; preds = %711
  %857 = landingpad { ptr, i32 }
          cleanup
  %858 = extractvalue { ptr, i32 } %857, 0
  store ptr %858, ptr %13, align 8
  %859 = extractvalue { ptr, i32 } %857, 1
  store i32 %859, ptr %14, align 4
  br label %864

860:                                              ; preds = %712
  %861 = landingpad { ptr, i32 }
          cleanup
  %862 = extractvalue { ptr, i32 } %861, 0
  store ptr %862, ptr %13, align 8
  %863 = extractvalue { ptr, i32 } %861, 1
  store i32 %863, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  br label %864

864:                                              ; preds = %860, %856
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #8
  br label %865

865:                                              ; preds = %864, %852
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #8
  br label %950

866:                                              ; preds = %714
  %867 = landingpad { ptr, i32 }
          cleanup
  %868 = extractvalue { ptr, i32 } %867, 0
  store ptr %868, ptr %13, align 8
  %869 = extractvalue { ptr, i32 } %867, 1
  store i32 %869, ptr %14, align 4
  br label %879

870:                                              ; preds = %721
  %871 = landingpad { ptr, i32 }
          cleanup
  %872 = extractvalue { ptr, i32 } %871, 0
  store ptr %872, ptr %13, align 8
  %873 = extractvalue { ptr, i32 } %871, 1
  store i32 %873, ptr %14, align 4
  br label %878

874:                                              ; preds = %722
  %875 = landingpad { ptr, i32 }
          cleanup
  %876 = extractvalue { ptr, i32 } %875, 0
  store ptr %876, ptr %13, align 8
  %877 = extractvalue { ptr, i32 } %875, 1
  store i32 %877, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #8
  br label %878

878:                                              ; preds = %874, %870
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #8
  br label %879

879:                                              ; preds = %878, %866
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #8
  br label %950

880:                                              ; preds = %724
  %881 = landingpad { ptr, i32 }
          cleanup
  %882 = extractvalue { ptr, i32 } %881, 0
  store ptr %882, ptr %13, align 8
  %883 = extractvalue { ptr, i32 } %881, 1
  store i32 %883, ptr %14, align 4
  br label %893

884:                                              ; preds = %731
  %885 = landingpad { ptr, i32 }
          cleanup
  %886 = extractvalue { ptr, i32 } %885, 0
  store ptr %886, ptr %13, align 8
  %887 = extractvalue { ptr, i32 } %885, 1
  store i32 %887, ptr %14, align 4
  br label %892

888:                                              ; preds = %732
  %889 = landingpad { ptr, i32 }
          cleanup
  %890 = extractvalue { ptr, i32 } %889, 0
  store ptr %890, ptr %13, align 8
  %891 = extractvalue { ptr, i32 } %889, 1
  store i32 %891, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #8
  br label %892

892:                                              ; preds = %888, %884
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #8
  br label %893

893:                                              ; preds = %892, %880
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #8
  br label %950

894:                                              ; preds = %734
  %895 = landingpad { ptr, i32 }
          cleanup
  %896 = extractvalue { ptr, i32 } %895, 0
  store ptr %896, ptr %13, align 8
  %897 = extractvalue { ptr, i32 } %895, 1
  store i32 %897, ptr %14, align 4
  br label %907

898:                                              ; preds = %741
  %899 = landingpad { ptr, i32 }
          cleanup
  %900 = extractvalue { ptr, i32 } %899, 0
  store ptr %900, ptr %13, align 8
  %901 = extractvalue { ptr, i32 } %899, 1
  store i32 %901, ptr %14, align 4
  br label %906

902:                                              ; preds = %742
  %903 = landingpad { ptr, i32 }
          cleanup
  %904 = extractvalue { ptr, i32 } %903, 0
  store ptr %904, ptr %13, align 8
  %905 = extractvalue { ptr, i32 } %903, 1
  store i32 %905, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #8
  br label %906

906:                                              ; preds = %902, %898
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #8
  br label %907

907:                                              ; preds = %906, %894
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %72) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #8
  br label %950

908:                                              ; preds = %744
  %909 = landingpad { ptr, i32 }
          cleanup
  %910 = extractvalue { ptr, i32 } %909, 0
  store ptr %910, ptr %13, align 8
  %911 = extractvalue { ptr, i32 } %909, 1
  store i32 %911, ptr %14, align 4
  br label %921

912:                                              ; preds = %751
  %913 = landingpad { ptr, i32 }
          cleanup
  %914 = extractvalue { ptr, i32 } %913, 0
  store ptr %914, ptr %13, align 8
  %915 = extractvalue { ptr, i32 } %913, 1
  store i32 %915, ptr %14, align 4
  br label %920

916:                                              ; preds = %752
  %917 = landingpad { ptr, i32 }
          cleanup
  %918 = extractvalue { ptr, i32 } %917, 0
  store ptr %918, ptr %13, align 8
  %919 = extractvalue { ptr, i32 } %917, 1
  store i32 %919, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #8
  br label %920

920:                                              ; preds = %916, %912
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #8
  br label %921

921:                                              ; preds = %920, %908
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #8
  br label %950

922:                                              ; preds = %754
  %923 = landingpad { ptr, i32 }
          cleanup
  %924 = extractvalue { ptr, i32 } %923, 0
  store ptr %924, ptr %13, align 8
  %925 = extractvalue { ptr, i32 } %923, 1
  store i32 %925, ptr %14, align 4
  br label %935

926:                                              ; preds = %761
  %927 = landingpad { ptr, i32 }
          cleanup
  %928 = extractvalue { ptr, i32 } %927, 0
  store ptr %928, ptr %13, align 8
  %929 = extractvalue { ptr, i32 } %927, 1
  store i32 %929, ptr %14, align 4
  br label %934

930:                                              ; preds = %762
  %931 = landingpad { ptr, i32 }
          cleanup
  %932 = extractvalue { ptr, i32 } %931, 0
  store ptr %932, ptr %13, align 8
  %933 = extractvalue { ptr, i32 } %931, 1
  store i32 %933, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #8
  br label %934

934:                                              ; preds = %930, %926
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #8
  br label %935

935:                                              ; preds = %934, %922
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #8
  br label %950

936:                                              ; preds = %764
  %937 = landingpad { ptr, i32 }
          cleanup
  %938 = extractvalue { ptr, i32 } %937, 0
  store ptr %938, ptr %13, align 8
  %939 = extractvalue { ptr, i32 } %937, 1
  store i32 %939, ptr %14, align 4
  br label %949

940:                                              ; preds = %771
  %941 = landingpad { ptr, i32 }
          cleanup
  %942 = extractvalue { ptr, i32 } %941, 0
  store ptr %942, ptr %13, align 8
  %943 = extractvalue { ptr, i32 } %941, 1
  store i32 %943, ptr %14, align 4
  br label %948

944:                                              ; preds = %772
  %945 = landingpad { ptr, i32 }
          cleanup
  %946 = extractvalue { ptr, i32 } %945, 0
  store ptr %946, ptr %13, align 8
  %947 = extractvalue { ptr, i32 } %945, 1
  store i32 %947, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #8
  br label %948

948:                                              ; preds = %944, %940
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #8
  br label %949

949:                                              ; preds = %948, %936
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #8
  br label %950

950:                                              ; preds = %949, %935, %921, %907, %893, %879, %865, %851, %837, %823, %809, %795, %778
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #8
  br label %993

951:                                              ; preds = %486
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  %952 = load ptr, ptr %26, align 8, !tbaa !5
  %953 = load ptr, ptr %952, align 8, !tbaa !5
  %954 = load ptr, ptr %8, align 8, !tbaa !5
  %955 = getelementptr inbounds %struct.gpt2_model, ptr %954, i32 0, i32 11
  %956 = load ptr, ptr %955, align 8, !tbaa !50
  %957 = invoke ptr @ggml_backend_alloc_ctx_tensors(ptr noundef %953, ptr noundef %956)
          to label %958 unwind label %362

958:                                              ; preds = %951
  %959 = load ptr, ptr %8, align 8, !tbaa !5
  %960 = getelementptr inbounds %struct.gpt2_model, ptr %959, i32 0, i32 12
  store ptr %957, ptr %960, align 8, !tbaa !70
  %961 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.33, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, i32 noundef 336)
          to label %962 unwind label %362

962:                                              ; preds = %958
  %963 = load ptr, ptr %8, align 8, !tbaa !5
  %964 = getelementptr inbounds %struct.gpt2_model, ptr %963, i32 0, i32 12
  %965 = load ptr, ptr %964, align 8, !tbaa !70
  %966 = invoke i64 @ggml_backend_buffer_get_size(ptr noundef %965)
          to label %967 unwind label %362

967:                                              ; preds = %962
  %968 = uitofp i64 %966 to double
  %969 = fdiv double %968, 0x4130000000000000
  %970 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.34, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, double noundef %969)
          to label %971 unwind label %362

971:                                              ; preds = %967
  %972 = load i32, ptr %10, align 4, !tbaa !9
  %973 = load ptr, ptr %8, align 8, !tbaa !5
  %974 = getelementptr inbounds %struct.gpt2_model, ptr %973, i32 0, i32 0
  %975 = getelementptr inbounds %struct.gpt2_hparams, ptr %974, i32 0, i32 1
  store i32 %972, ptr %975, align 4, !tbaa !71
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #8
  %976 = load ptr, ptr %8, align 8, !tbaa !5
  %977 = getelementptr inbounds %struct.gpt2_model, ptr %976, i32 0, i32 10
  %978 = load ptr, ptr %977, align 8, !tbaa !72
  store ptr %978, ptr %83, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #8
  store i64 2, ptr %84, align 8, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 24, ptr %85) #8
  %979 = getelementptr inbounds %struct.ggml_init_params, ptr %85, i32 0, i32 0
  %980 = invoke i64 @ggml_tensor_overhead()
          to label %981 unwind label %994

981:                                              ; preds = %971
  %982 = load i64, ptr %84, align 8, !tbaa !42
  %983 = mul i64 %980, %982
  store i64 %983, ptr %979, align 8, !tbaa !43
  %984 = getelementptr inbounds %struct.ggml_init_params, ptr %85, i32 0, i32 1
  store ptr null, ptr %984, align 8, !tbaa !46
  %985 = getelementptr inbounds %struct.ggml_init_params, ptr %85, i32 0, i32 2
  store i8 1, ptr %985, align 8, !tbaa !47
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %86, ptr align 8 %85, i64 24, i1 false), !tbaa.struct !48
  %986 = invoke ptr @ggml_init(ptr noundef byval(%struct.ggml_init_params) align 8 %86)
          to label %987 unwind label %994

987:                                              ; preds = %981
  store ptr %986, ptr %83, align 8, !tbaa !5
  %988 = load ptr, ptr %83, align 8, !tbaa !5
  %989 = icmp ne ptr %988, null
  br i1 %989, label %998, label %990

990:                                              ; preds = %987
  %991 = load ptr, ptr @stderr, align 8, !tbaa !5
  %992 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %991, ptr noundef @.str.12, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii) #8
  store i1 false, ptr %6, align 1
  store i32 1, ptr %15, align 4
  br label %999

993:                                              ; preds = %950, %535, %526, %517, %508, %499, %487
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  br label %1321

994:                                              ; preds = %981, %971
  %995 = landingpad { ptr, i32 }
          cleanup
  %996 = extractvalue { ptr, i32 } %995, 0
  store ptr %996, ptr %13, align 8
  %997 = extractvalue { ptr, i32 } %995, 1
  store i32 %997, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %85) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #8
  br label %1080

998:                                              ; preds = %987
  store i32 0, ptr %15, align 4
  br label %999

999:                                              ; preds = %998, %990
  call void @llvm.lifetime.end.p0(i64 24, ptr %85) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #8
  %1000 = load i32, ptr %15, align 4
  switch i32 %1000, label %1053 [
    i32 0, label %1001
  ]

1001:                                             ; preds = %999
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #8
  %1002 = load ptr, ptr %8, align 8, !tbaa !5
  %1003 = getelementptr inbounds %struct.gpt2_model, ptr %1002, i32 0, i32 0
  store ptr %1003, ptr %87, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #8
  %1004 = load ptr, ptr %87, align 8, !tbaa !5
  %1005 = getelementptr inbounds %struct.gpt2_hparams, ptr %1004, i32 0, i32 2
  %1006 = load i32, ptr %1005, align 4, !tbaa !18
  store i32 %1006, ptr %88, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #8
  %1007 = load ptr, ptr %87, align 8, !tbaa !5
  %1008 = getelementptr inbounds %struct.gpt2_hparams, ptr %1007, i32 0, i32 4
  %1009 = load i32, ptr %1008, align 4, !tbaa !20
  store i32 %1009, ptr %89, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #8
  %1010 = load ptr, ptr %87, align 8, !tbaa !5
  %1011 = getelementptr inbounds %struct.gpt2_hparams, ptr %1010, i32 0, i32 1
  %1012 = load i32, ptr %1011, align 4, !tbaa !17
  store i32 %1012, ptr %90, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #8
  %1013 = load i32, ptr %89, align 4, !tbaa !9
  %1014 = load i32, ptr %90, align 4, !tbaa !9
  %1015 = mul nsw i32 %1013, %1014
  store i32 %1015, ptr %91, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #8
  %1016 = load i32, ptr %88, align 4, !tbaa !9
  %1017 = load i32, ptr %91, align 4, !tbaa !9
  %1018 = mul nsw i32 %1016, %1017
  store i32 %1018, ptr %92, align 4, !tbaa !9
  %1019 = load ptr, ptr %83, align 8, !tbaa !5
  %1020 = load i32, ptr %92, align 4, !tbaa !9
  %1021 = sext i32 %1020 to i64
  %1022 = invoke ptr @ggml_new_tensor_1d(ptr noundef %1019, i32 noundef 0, i64 noundef %1021)
          to label %1023 unwind label %1071

1023:                                             ; preds = %1001
  %1024 = load ptr, ptr %8, align 8, !tbaa !5
  %1025 = getelementptr inbounds %struct.gpt2_model, ptr %1024, i32 0, i32 7
  store ptr %1022, ptr %1025, align 8, !tbaa !73
  %1026 = load ptr, ptr %83, align 8, !tbaa !5
  %1027 = load i32, ptr %92, align 4, !tbaa !9
  %1028 = sext i32 %1027 to i64
  %1029 = invoke ptr @ggml_new_tensor_1d(ptr noundef %1026, i32 noundef 0, i64 noundef %1028)
          to label %1030 unwind label %1071

1030:                                             ; preds = %1023
  %1031 = load ptr, ptr %8, align 8, !tbaa !5
  %1032 = getelementptr inbounds %struct.gpt2_model, ptr %1031, i32 0, i32 8
  store ptr %1029, ptr %1032, align 8, !tbaa !74
  %1033 = load ptr, ptr %83, align 8, !tbaa !5
  %1034 = load ptr, ptr %8, align 8, !tbaa !5
  %1035 = getelementptr inbounds %struct.gpt2_model, ptr %1034, i32 0, i32 11
  %1036 = load ptr, ptr %1035, align 8, !tbaa !50
  %1037 = invoke ptr @ggml_backend_alloc_ctx_tensors(ptr noundef %1033, ptr noundef %1036)
          to label %1038 unwind label %1071

1038:                                             ; preds = %1030
  %1039 = load ptr, ptr %8, align 8, !tbaa !5
  %1040 = getelementptr inbounds %struct.gpt2_model, ptr %1039, i32 0, i32 13
  store ptr %1037, ptr %1040, align 8, !tbaa !75
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #8
  %1041 = load ptr, ptr %8, align 8, !tbaa !5
  %1042 = getelementptr inbounds %struct.gpt2_model, ptr %1041, i32 0, i32 13
  %1043 = load ptr, ptr %1042, align 8, !tbaa !75
  %1044 = invoke i64 @ggml_backend_buffer_get_size(ptr noundef %1043)
          to label %1045 unwind label %1075

1045:                                             ; preds = %1038
  store i64 %1044, ptr %93, align 8, !tbaa !42
  %1046 = load i64, ptr %93, align 8, !tbaa !42
  %1047 = uitofp i64 %1046 to double
  %1048 = fdiv double %1047, 1.024000e+03
  %1049 = fdiv double %1048, 1.024000e+03
  %1050 = load i32, ptr %91, align 4, !tbaa !9
  %1051 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.35, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, double noundef %1049, i32 noundef %1050)
          to label %1052 unwind label %1075

1052:                                             ; preds = %1045
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #8
  store i32 0, ptr %15, align 4
  br label %1053

1053:                                             ; preds = %1052, %999
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #8
  %1054 = load i32, ptr %15, align 4
  switch i32 %1054, label %1320 [
    i32 0, label %1055
  ]

1055:                                             ; preds = %1053
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #8
  store i64 0, ptr %94, align 8, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 1, ptr %95) #8
  store i8 0, ptr %95, align 1, !tbaa !49
  call void @llvm.lifetime.start.p0(i64 24, ptr %96) #8
  call void @_ZNSt6vectorIcSaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %96) #8
  br label %1056

1056:                                             ; preds = %1298, %1055
  br label %1057

1057:                                             ; preds = %1056
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #8
  %1058 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef %97, i64 noundef 4)
          to label %1059 unwind label %1081

1059:                                             ; preds = %1057
  %1060 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef %98, i64 noundef 4)
          to label %1061 unwind label %1081

1061:                                             ; preds = %1059
  %1062 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef %99, i64 noundef 4)
          to label %1063 unwind label %1081

1063:                                             ; preds = %1061
  %1064 = load ptr, ptr %12, align 8, !tbaa !11
  %1065 = getelementptr i8, ptr %1064, i64 -24
  %1066 = load i64, ptr %1065, align 8
  %1067 = getelementptr inbounds i8, ptr %12, i64 %1066
  %1068 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %1067)
          to label %1069 unwind label %1081

1069:                                             ; preds = %1063
  br i1 %1068, label %1070, label %1085

1070:                                             ; preds = %1069
  store i32 9, ptr %15, align 4
  br label %1296

1071:                                             ; preds = %1030, %1023, %1001
  %1072 = landingpad { ptr, i32 }
          cleanup
  %1073 = extractvalue { ptr, i32 } %1072, 0
  store ptr %1073, ptr %13, align 8
  %1074 = extractvalue { ptr, i32 } %1072, 1
  store i32 %1074, ptr %14, align 4
  br label %1079

1075:                                             ; preds = %1045, %1038
  %1076 = landingpad { ptr, i32 }
          cleanup
  %1077 = extractvalue { ptr, i32 } %1076, 0
  store ptr %1077, ptr %13, align 8
  %1078 = extractvalue { ptr, i32 } %1076, 1
  store i32 %1078, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #8
  br label %1079

1079:                                             ; preds = %1075, %1071
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #8
  br label %1080

1080:                                             ; preds = %1079, %994
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #8
  br label %1321

1081:                                             ; preds = %1063, %1061, %1059, %1057
  %1082 = landingpad { ptr, i32 }
          cleanup
  %1083 = extractvalue { ptr, i32 } %1082, 0
  store ptr %1083, ptr %13, align 8
  %1084 = extractvalue { ptr, i32 } %1082, 1
  store i32 %1084, ptr %14, align 4
  br label %1303

1085:                                             ; preds = %1069
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #8
  store i32 1, ptr %100, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %101, ptr align 4 @__const._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii.ne, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #8
  store i32 0, ptr %102, align 4, !tbaa !9
  br label %1086

1086:                                             ; preds = %1103, %1085
  %1087 = load i32, ptr %102, align 4, !tbaa !9
  %1088 = load i32, ptr %97, align 4, !tbaa !9
  %1089 = icmp slt i32 %1087, %1088
  br i1 %1089, label %1091, label %1090

1090:                                             ; preds = %1086
  store i32 10, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #8
  br label %1110

1091:                                             ; preds = %1086
  %1092 = load i32, ptr %102, align 4, !tbaa !9
  %1093 = sext i32 %1092 to i64
  %1094 = getelementptr inbounds [2 x i32], ptr %101, i64 0, i64 %1093
  %1095 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef %1094, i64 noundef 4)
          to label %1096 unwind label %1106

1096:                                             ; preds = %1091
  %1097 = load i32, ptr %102, align 4, !tbaa !9
  %1098 = sext i32 %1097 to i64
  %1099 = getelementptr inbounds [2 x i32], ptr %101, i64 0, i64 %1098
  %1100 = load i32, ptr %1099, align 4, !tbaa !9
  %1101 = load i32, ptr %100, align 4, !tbaa !9
  %1102 = mul nsw i32 %1101, %1100
  store i32 %1102, ptr %100, align 4, !tbaa !9
  br label %1103

1103:                                             ; preds = %1096
  %1104 = load i32, ptr %102, align 4, !tbaa !9
  %1105 = add nsw i32 %1104, 1
  store i32 %1105, ptr %102, align 4, !tbaa !9
  br label %1086, !llvm.loop !76

1106:                                             ; preds = %1091
  %1107 = landingpad { ptr, i32 }
          cleanup
  %1108 = extractvalue { ptr, i32 } %1107, 0
  store ptr %1108, ptr %13, align 8
  %1109 = extractvalue { ptr, i32 } %1107, 1
  store i32 %1109, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #8
  br label %1302

1110:                                             ; preds = %1090
  call void @llvm.lifetime.start.p0(i64 32, ptr %103) #8
  %1111 = load i32, ptr %98, align 4, !tbaa !9
  %1112 = sext i32 %1111 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %104) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %104) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %103, i64 noundef %1112, i8 noundef signext 0, ptr noundef nonnull align 1 dereferenceable(1) %104)
          to label %1113 unwind label %1134

1113:                                             ; preds = %1110
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %104) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %104) #8
  %1114 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %103, i64 noundef 0)
          to label %1115 unwind label %1138

1115:                                             ; preds = %1113
  %1116 = load i32, ptr %98, align 4, !tbaa !9
  %1117 = sext i32 %1116 to i64
  %1118 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef %1114, i64 noundef %1117)
          to label %1119 unwind label %1138

1119:                                             ; preds = %1115
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #8
  %1120 = load ptr, ptr %8, align 8, !tbaa !5
  %1121 = getelementptr inbounds %struct.gpt2_model, ptr %1120, i32 0, i32 14
  %1122 = invoke ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEE4findERSB_(ptr noundef nonnull align 8 dereferenceable(48) %1121, ptr noundef nonnull align 8 dereferenceable(32) %103)
          to label %1123 unwind label %1142

1123:                                             ; preds = %1119
  %1124 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %105, i32 0, i32 0
  store ptr %1122, ptr %1124, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #8
  %1125 = load ptr, ptr %8, align 8, !tbaa !5
  %1126 = getelementptr inbounds %struct.gpt2_model, ptr %1125, i32 0, i32 14
  %1127 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %1126) #8
  %1128 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %106, i32 0, i32 0
  store ptr %1127, ptr %1128, align 8
  %1129 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorEESD_(ptr noundef nonnull align 8 dereferenceable(8) %105, ptr noundef nonnull align 8 dereferenceable(8) %106) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #8
  br i1 %1129, label %1130, label %1146

1130:                                             ; preds = %1123
  %1131 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1132 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %103) #8
  %1133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1131, ptr noundef @.str.36, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, ptr noundef %1132) #8
  store i1 false, ptr %6, align 1
  store i32 1, ptr %15, align 4
  br label %1295

1134:                                             ; preds = %1110
  %1135 = landingpad { ptr, i32 }
          cleanup
  %1136 = extractvalue { ptr, i32 } %1135, 0
  store ptr %1136, ptr %13, align 8
  %1137 = extractvalue { ptr, i32 } %1135, 1
  store i32 %1137, ptr %14, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %104) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %104) #8
  br label %1301

1138:                                             ; preds = %1115, %1113
  %1139 = landingpad { ptr, i32 }
          cleanup
  %1140 = extractvalue { ptr, i32 } %1139, 0
  store ptr %1140, ptr %13, align 8
  %1141 = extractvalue { ptr, i32 } %1139, 1
  store i32 %1141, ptr %14, align 4
  br label %1300

1142:                                             ; preds = %1119
  %1143 = landingpad { ptr, i32 }
          cleanup
  %1144 = extractvalue { ptr, i32 } %1143, 0
  store ptr %1144, ptr %13, align 8
  %1145 = extractvalue { ptr, i32 } %1143, 1
  store i32 %1145, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #8
  br label %1300

1146:                                             ; preds = %1123
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #8
  %1147 = load ptr, ptr %8, align 8, !tbaa !5
  %1148 = getelementptr inbounds %struct.gpt2_model, ptr %1147, i32 0, i32 14
  %1149 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixERSB_(ptr noundef nonnull align 8 dereferenceable(48) %1148, ptr noundef nonnull align 8 dereferenceable(32) %103)
          to label %1150 unwind label %1166

1150:                                             ; preds = %1146
  %1151 = load ptr, ptr %1149, align 8, !tbaa !5
  store ptr %1151, ptr %107, align 8, !tbaa !5
  %1152 = load ptr, ptr %107, align 8, !tbaa !5
  %1153 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %103) #8
  %1154 = invoke ptr @ggml_set_name(ptr noundef %1152, ptr noundef %1153)
          to label %1155 unwind label %1166

1155:                                             ; preds = %1150
  %1156 = load ptr, ptr %107, align 8, !tbaa !5
  %1157 = invoke i64 @ggml_nelements(ptr noundef %1156)
          to label %1158 unwind label %1166

1158:                                             ; preds = %1155
  %1159 = load i32, ptr %100, align 4, !tbaa !9
  %1160 = sext i32 %1159 to i64
  %1161 = icmp ne i64 %1157, %1160
  br i1 %1161, label %1162, label %1170

1162:                                             ; preds = %1158
  %1163 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1164 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %103) #8
  %1165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1163, ptr noundef @.str.37, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, ptr noundef %1164) #8
  store i1 false, ptr %6, align 1
  store i32 1, ptr %15, align 4
  br label %1294

1166:                                             ; preds = %1155, %1150, %1146
  %1167 = landingpad { ptr, i32 }
          cleanup
  %1168 = extractvalue { ptr, i32 } %1167, 0
  store ptr %1168, ptr %13, align 8
  %1169 = extractvalue { ptr, i32 } %1167, 1
  store i32 %1169, ptr %14, align 4
  br label %1299

1170:                                             ; preds = %1158
  %1171 = load ptr, ptr %107, align 8, !tbaa !5
  %1172 = getelementptr inbounds %struct.ggml_tensor, ptr %1171, i32 0, i32 2
  %1173 = getelementptr inbounds [4 x i64], ptr %1172, i64 0, i64 0
  %1174 = load i64, ptr %1173, align 8, !tbaa !42
  %1175 = getelementptr inbounds [2 x i32], ptr %101, i64 0, i64 0
  %1176 = load i32, ptr %1175, align 4, !tbaa !9
  %1177 = sext i32 %1176 to i64
  %1178 = icmp ne i64 %1174, %1177
  br i1 %1178, label %1188, label %1179

1179:                                             ; preds = %1170
  %1180 = load ptr, ptr %107, align 8, !tbaa !5
  %1181 = getelementptr inbounds %struct.ggml_tensor, ptr %1180, i32 0, i32 2
  %1182 = getelementptr inbounds [4 x i64], ptr %1181, i64 0, i64 1
  %1183 = load i64, ptr %1182, align 8, !tbaa !42
  %1184 = getelementptr inbounds [2 x i32], ptr %101, i64 0, i64 1
  %1185 = load i32, ptr %1184, align 4, !tbaa !9
  %1186 = sext i32 %1185 to i64
  %1187 = icmp ne i64 %1183, %1186
  br i1 %1187, label %1188, label %1206

1188:                                             ; preds = %1179, %1170
  %1189 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1190 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %103) #8
  %1191 = load ptr, ptr %107, align 8, !tbaa !5
  %1192 = getelementptr inbounds %struct.ggml_tensor, ptr %1191, i32 0, i32 2
  %1193 = getelementptr inbounds [4 x i64], ptr %1192, i64 0, i64 0
  %1194 = load i64, ptr %1193, align 8, !tbaa !42
  %1195 = trunc i64 %1194 to i32
  %1196 = load ptr, ptr %107, align 8, !tbaa !5
  %1197 = getelementptr inbounds %struct.ggml_tensor, ptr %1196, i32 0, i32 2
  %1198 = getelementptr inbounds [4 x i64], ptr %1197, i64 0, i64 1
  %1199 = load i64, ptr %1198, align 8, !tbaa !42
  %1200 = trunc i64 %1199 to i32
  %1201 = getelementptr inbounds [2 x i32], ptr %101, i64 0, i64 0
  %1202 = load i32, ptr %1201, align 4, !tbaa !9
  %1203 = getelementptr inbounds [2 x i32], ptr %101, i64 0, i64 1
  %1204 = load i32, ptr %1203, align 4, !tbaa !9
  %1205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1189, ptr noundef @.str.38, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, ptr noundef %1190, i32 noundef %1195, i32 noundef %1200, i32 noundef %1202, i32 noundef %1204) #8
  store i1 false, ptr %6, align 1
  store i32 1, ptr %15, align 4
  br label %1294

1206:                                             ; preds = %1179
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #8
  %1207 = load i32, ptr %99, align 4, !tbaa !9
  %1208 = invoke i64 @ggml_type_size(i32 noundef %1207)
          to label %1209 unwind label %1235

1209:                                             ; preds = %1206
  store i64 %1208, ptr %108, align 8, !tbaa !42
  %1210 = load i32, ptr %100, align 4, !tbaa !9
  %1211 = sext i32 %1210 to i64
  %1212 = load i64, ptr %108, align 8, !tbaa !42
  %1213 = mul i64 %1211, %1212
  %1214 = load ptr, ptr %107, align 8, !tbaa !5
  %1215 = getelementptr inbounds %struct.ggml_tensor, ptr %1214, i32 0, i32 0
  %1216 = load i32, ptr %1215, align 8, !tbaa !77
  %1217 = invoke i64 @ggml_blck_size(i32 noundef %1216)
          to label %1218 unwind label %1235

1218:                                             ; preds = %1209
  %1219 = udiv i64 %1213, %1217
  %1220 = load ptr, ptr %107, align 8, !tbaa !5
  %1221 = invoke i64 @ggml_nbytes(ptr noundef %1220)
          to label %1222 unwind label %1235

1222:                                             ; preds = %1218
  %1223 = icmp ne i64 %1219, %1221
  br i1 %1223, label %1224, label %1239

1224:                                             ; preds = %1222
  %1225 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1226 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %103) #8
  %1227 = load ptr, ptr %107, align 8, !tbaa !5
  %1228 = invoke i64 @ggml_nbytes(ptr noundef %1227)
          to label %1229 unwind label %1235

1229:                                             ; preds = %1224
  %1230 = load i32, ptr %100, align 4, !tbaa !9
  %1231 = sext i32 %1230 to i64
  %1232 = load i64, ptr %108, align 8, !tbaa !42
  %1233 = mul i64 %1231, %1232
  %1234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1225, ptr noundef @.str.39, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, ptr noundef %1226, i64 noundef %1228, i64 noundef %1233) #8
  store i1 false, ptr %6, align 1
  store i32 1, ptr %15, align 4
  br label %1293

1235:                                             ; preds = %1287, %1283, %1271, %1269, %1264, %1262, %1258, %1257, %1254, %1251, %1245, %1239, %1224, %1218, %1209, %1206
  %1236 = landingpad { ptr, i32 }
          cleanup
  %1237 = extractvalue { ptr, i32 } %1236, 0
  store ptr %1237, ptr %13, align 8
  %1238 = extractvalue { ptr, i32 } %1236, 1
  store i32 %1238, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #8
  br label %1299

1239:                                             ; preds = %1222
  %1240 = load ptr, ptr %8, align 8, !tbaa !5
  %1241 = getelementptr inbounds %struct.gpt2_model, ptr %1240, i32 0, i32 12
  %1242 = load ptr, ptr %1241, align 8, !tbaa !70
  %1243 = invoke zeroext i1 @ggml_backend_buffer_is_host(ptr noundef %1242)
          to label %1244 unwind label %1235

1244:                                             ; preds = %1239
  br i1 %1243, label %1245, label %1254

1245:                                             ; preds = %1244
  %1246 = load ptr, ptr %107, align 8, !tbaa !5
  %1247 = getelementptr inbounds %struct.ggml_tensor, ptr %1246, i32 0, i32 10
  %1248 = load ptr, ptr %1247, align 8, !tbaa !80
  %1249 = load ptr, ptr %107, align 8, !tbaa !5
  %1250 = invoke i64 @ggml_nbytes(ptr noundef %1249)
          to label %1251 unwind label %1235

1251:                                             ; preds = %1245
  %1252 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef %1248, i64 noundef %1250)
          to label %1253 unwind label %1235

1253:                                             ; preds = %1251
  br label %1271

1254:                                             ; preds = %1244
  %1255 = load ptr, ptr %107, align 8, !tbaa !5
  %1256 = invoke i64 @ggml_nbytes(ptr noundef %1255)
          to label %1257 unwind label %1235

1257:                                             ; preds = %1254
  invoke void @_ZNSt6vectorIcSaIcEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %96, i64 noundef %1256)
          to label %1258 unwind label %1235

1258:                                             ; preds = %1257
  %1259 = call noundef ptr @_ZNSt6vectorIcSaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %96) #8
  %1260 = load ptr, ptr %107, align 8, !tbaa !5
  %1261 = invoke i64 @ggml_nbytes(ptr noundef %1260)
          to label %1262 unwind label %1235

1262:                                             ; preds = %1258
  %1263 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef %1259, i64 noundef %1261)
          to label %1264 unwind label %1235

1264:                                             ; preds = %1262
  %1265 = load ptr, ptr %107, align 8, !tbaa !5
  %1266 = call noundef ptr @_ZNSt6vectorIcSaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %96) #8
  %1267 = load ptr, ptr %107, align 8, !tbaa !5
  %1268 = invoke i64 @ggml_nbytes(ptr noundef %1267)
          to label %1269 unwind label %1235

1269:                                             ; preds = %1264
  invoke void @ggml_backend_tensor_set(ptr noundef %1265, ptr noundef %1266, i64 noundef 0, i64 noundef %1268)
          to label %1270 unwind label %1235

1270:                                             ; preds = %1269
  br label %1271

1271:                                             ; preds = %1270, %1253
  %1272 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef @.str.17)
          to label %1273 unwind label %1235

1273:                                             ; preds = %1271
  br i1 %1272, label %1274, label %1283

1274:                                             ; preds = %1273
  %1275 = load i8, ptr %95, align 1, !tbaa !49, !range !81, !noundef !82
  %1276 = trunc i8 %1275 to i1
  %1277 = zext i1 %1276 to i32
  %1278 = icmp eq i32 %1277, 0
  br i1 %1278, label %1279, label %1283

1279:                                             ; preds = %1274
  %1280 = load ptr, ptr %107, align 8, !tbaa !5
  %1281 = load ptr, ptr %8, align 8, !tbaa !5
  %1282 = getelementptr inbounds %struct.gpt2_model, ptr %1281, i32 0, i32 5
  store ptr %1280, ptr %1282, align 8, !tbaa !55
  br label %1283

1283:                                             ; preds = %1279, %1274, %1273
  %1284 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef @.str.19)
          to label %1285 unwind label %1235

1285:                                             ; preds = %1283
  br i1 %1284, label %1286, label %1287

1286:                                             ; preds = %1285
  store i8 1, ptr %95, align 1, !tbaa !49
  br label %1287

1287:                                             ; preds = %1286, %1285
  %1288 = load ptr, ptr %107, align 8, !tbaa !5
  %1289 = invoke i64 @ggml_nbytes(ptr noundef %1288)
          to label %1290 unwind label %1235

1290:                                             ; preds = %1287
  %1291 = load i64, ptr %94, align 8, !tbaa !42
  %1292 = add i64 %1291, %1289
  store i64 %1292, ptr %94, align 8, !tbaa !42
  store i32 0, ptr %15, align 4
  br label %1293

1293:                                             ; preds = %1290, %1229
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #8
  br label %1294

1294:                                             ; preds = %1293, %1188, %1162
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #8
  br label %1295

1295:                                             ; preds = %1294, %1130
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %103) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #8
  br label %1296

1296:                                             ; preds = %1295, %1070
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #8
  %1297 = load i32, ptr %15, align 4
  switch i32 %1297, label %1311 [
    i32 0, label %1298
    i32 9, label %1304
  ]

1298:                                             ; preds = %1296
  br label %1056, !llvm.loop !83

1299:                                             ; preds = %1235, %1166
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #8
  br label %1300

1300:                                             ; preds = %1299, %1142, %1138
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #8
  br label %1301

1301:                                             ; preds = %1300, %1134
  call void @llvm.lifetime.end.p0(i64 32, ptr %103) #8
  br label %1302

1302:                                             ; preds = %1301, %1106
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #8
  br label %1303

1303:                                             ; preds = %1302, %1081
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #8
  br label %1319

1304:                                             ; preds = %1296
  %1305 = load i64, ptr %94, align 8, !tbaa !42
  %1306 = uitofp i64 %1305 to double
  %1307 = fdiv double %1306, 1.024000e+03
  %1308 = fdiv double %1307, 1.024000e+03
  %1309 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.40, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, double noundef %1308)
          to label %1310 unwind label %1315

1310:                                             ; preds = %1304
  store i32 0, ptr %15, align 4
  br label %1311

1311:                                             ; preds = %1310, %1296
  call void @_ZNSt6vectorIcSaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %96) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %96) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %95) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #8
  %1312 = load i32, ptr %15, align 4
  switch i32 %1312, label %1320 [
    i32 0, label %1313
  ]

1313:                                             ; preds = %1311
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv(ptr noundef nonnull align 8 dereferenceable(256) %12)
          to label %1314 unwind label %362

1314:                                             ; preds = %1313
  store i1 true, ptr %6, align 1
  store i32 1, ptr %15, align 4
  br label %1320

1315:                                             ; preds = %1304
  %1316 = landingpad { ptr, i32 }
          cleanup
  %1317 = extractvalue { ptr, i32 } %1316, 0
  store ptr %1317, ptr %13, align 8
  %1318 = extractvalue { ptr, i32 } %1316, 1
  store i32 %1318, ptr %14, align 4
  br label %1319

1319:                                             ; preds = %1315, %1303
  call void @_ZNSt6vectorIcSaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %96) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %96) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %95) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #8
  br label %1321

1320:                                             ; preds = %1314, %1311, %1053, %371, %348
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #8
  br label %1322

1321:                                             ; preds = %1319, %1080, %993, %362, %343
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #8
  br label %1323

1322:                                             ; preds = %1320, %301
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #8
  br label %1324

1323:                                             ; preds = %1321, %312
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #8
  br label %1326

1324:                                             ; preds = %1322, %290, %143, %119
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %12) #8
  call void @llvm.lifetime.end.p0(i64 520, ptr %12) #8
  %1325 = load i1, ptr %6, align 1
  ret i1 %1325

1326:                                             ; preds = %1323, %311, %239, %138, %124
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %12) #8
  call void @llvm.lifetime.end.p0(i64 520, ptr %12) #8
  br label %1327

1327:                                             ; preds = %1326
  %1328 = load ptr, ptr %13, align 8
  %1329 = load i32, ptr %14, align 4
  %1330 = insertvalue { ptr, i32 } poison, ptr %1328, 0
  %1331 = insertvalue { ptr, i32 } %1330, i32 %1329, 1
  resume { ptr, i32 } %1331
}

declare i32 @printf(ptr noundef, ...) #3

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

; Function Attrs: mustprogress uwtable
declare void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv(ptr noundef nonnull align 8 dereferenceable(264)) #2 align 2

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #4

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef, i64 noundef) #3

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapIiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIiESaISt4pairIKiS5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 4 dereferenceable(4)) #2 align 2

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

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

declare i32 @ggml_ftype_to_ggml_type(i32 noundef) #3

declare void @ggml_log_set(ptr noundef, ptr noundef) #3

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL25ggml_log_callback_default14ggml_log_levelPKcPv(i32 noundef, ptr noundef, ptr noundef) #2

declare i64 @ggml_tensor_overhead() #3

declare ptr @ggml_init(ptr noundef byval(%struct.ggml_init_params) align 8) #3

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

declare ptr @ggml_backend_cpu_init() #3

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

declare ptr @ggml_new_tensor_1d(ptr noundef, i32 noundef, i64 noundef) #3

declare ptr @ggml_new_tensor_2d(ptr noundef, i32 noundef, i64 noundef, i64 noundef) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, i32 noundef) #7

declare ptr @ggml_backend_alloc_ctx_tensors(ptr noundef, ptr noundef) #3

declare i64 @ggml_backend_buffer_get_size(ptr noundef) #3

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

; Function Attrs: mustprogress nounwind uwtable
declare noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264)) #1 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorEESD_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #1

; Function Attrs: mustprogress uwtable
declare dso_local ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEE4findERSB_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixERSB_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

declare ptr @ggml_set_name(ptr noundef, ptr noundef) #3

declare i64 @ggml_nelements(ptr noundef) #3

declare i64 @ggml_type_size(i32 noundef) #3

declare i64 @ggml_blck_size(i32 noundef) #3

declare i64 @ggml_nbytes(ptr noundef) #3

declare zeroext i1 @ggml_backend_buffer_is_host(ptr noundef) #3

declare void @ggml_backend_tensor_set(ptr noundef, ptr noundef, i64 noundef, i64 noundef) #3

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

; Function Attrs: mustprogress uwtable
declare void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv(ptr noundef nonnull align 8 dereferenceable(256)) #2 align 2

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"vtable pointer", !8, i64 0}
!13 = !{!14, !10, i64 20}
!14 = !{!"_ZTS12gpt2_hparams", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !15, i64 24}
!15 = !{!"float", !7, i64 0}
!16 = !{!14, !10, i64 0}
!17 = !{!14, !10, i64 4}
!18 = !{!14, !10, i64 8}
!19 = !{!14, !10, i64 12}
!20 = !{!14, !10, i64 16}
!21 = !{!22, !10, i64 0}
!22 = !{!"_ZTS10gpt2_model", !14, i64 0, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !23, i64 72, !6, i64 96, !6, i64 104, !6, i64 112, !6, i64 120, !6, i64 128, !6, i64 136, !6, i64 144, !27, i64 152}
!23 = !{!"_ZTSSt6vectorI10gpt2_layerSaIS0_EE", !24, i64 0}
!24 = !{!"_ZTSSt12_Vector_baseI10gpt2_layerSaIS0_EE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseI10gpt2_layerSaIS0_EE12_Vector_implE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseI10gpt2_layerSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!27 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEE", !28, i64 0}
!28 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_P11ggml_tensorESt10_Select1stISA_ESt4lessIS5_ESaISA_EE", !29, i64 0}
!29 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_P11ggml_tensorESt10_Select1stISA_ESt4lessIS5_ESaISA_EE13_Rb_tree_implISE_Lb1EEE", !30, i64 0, !32, i64 8}
!30 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !31, i64 0}
!31 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!32 = !{!"_ZTSSt15_Rb_tree_header", !33, i64 0, !35, i64 32}
!33 = !{!"_ZTSSt18_Rb_tree_node_base", !34, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!34 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!35 = !{!"long", !7, i64 0}
!36 = distinct !{!36, !37}
!37 = !{!"llvm.loop.mustprogress"}
!38 = !{!22, !10, i64 20}
!39 = !{!40, !40, i64 0}
!40 = !{!"_ZTS9ggml_type", !7, i64 0}
!41 = !{!22, !10, i64 16}
!42 = !{!35, !35, i64 0}
!43 = !{!44, !35, i64 0}
!44 = !{!"_ZTS16ggml_init_params", !35, i64 0, !6, i64 8, !45, i64 16}
!45 = !{!"bool", !7, i64 0}
!46 = !{!44, !6, i64 8}
!47 = !{!44, !45, i64 16}
!48 = !{i64 0, i64 8, !42, i64 8, i64 8, !5, i64 16, i64 1, !49}
!49 = !{!45, !45, i64 0}
!50 = !{!22, !6, i64 128}
!51 = !{!22, !6, i64 32}
!52 = !{!22, !6, i64 40}
!53 = !{!22, !6, i64 48}
!54 = !{!22, !6, i64 56}
!55 = !{!22, !6, i64 64}
!56 = !{!57, !6, i64 0}
!57 = !{!"_ZTS10gpt2_layer", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88}
!58 = !{!57, !6, i64 8}
!59 = !{!57, !6, i64 16}
!60 = !{!57, !6, i64 24}
!61 = !{!57, !6, i64 32}
!62 = !{!57, !6, i64 40}
!63 = !{!57, !6, i64 48}
!64 = !{!57, !6, i64 56}
!65 = !{!57, !6, i64 64}
!66 = !{!57, !6, i64 72}
!67 = !{!57, !6, i64 80}
!68 = !{!57, !6, i64 88}
!69 = distinct !{!69, !37}
!70 = !{!22, !6, i64 136}
!71 = !{!22, !10, i64 4}
!72 = !{!22, !6, i64 120}
!73 = !{!22, !6, i64 96}
!74 = !{!22, !6, i64 104}
!75 = !{!22, !6, i64 144}
!76 = distinct !{!76, !37}
!77 = !{!78, !40, i64 0}
!78 = !{!"_ZTS11ggml_tensor", !40, i64 0, !6, i64 8, !7, i64 16, !7, i64 48, !79, i64 80, !7, i64 84, !10, i64 148, !7, i64 152, !6, i64 232, !35, i64 240, !6, i64 248, !7, i64 256, !6, i64 320, !7, i64 328}
!79 = !{!"_ZTS7ggml_op", !7, i64 0}
!80 = !{!78, !6, i64 248}
!81 = !{i8 0, i8 2}
!82 = !{}
!83 = distinct !{!83, !37}


; 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::basic_ifstream" = type { %"class.std::basic_istream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon.3 }
%union.anon.3 = type { i32 }
%"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.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::vector.12" = type { %"struct.std::_Vector_base.13" }
%"struct.std::_Vector_base.13" = type { %"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl" }
%"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl" = type { %"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<char, std::allocator<char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.0" = type { i8 }
%struct.ggml_init_params = type { i64, ptr, i8 }
%"struct.std::_Rb_tree_iterator" = type { ptr }

@.str = external hidden unnamed_addr constant [29 x i8], align 1
@__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii = external hidden unnamed_addr constant [16 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [40 x i8], align 1
@__const._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii.ne = external hidden unnamed_addr constant [2 x i32], align 4
@.str.36 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [28 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

; 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 noundef zeroext i1 @_Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(200) %1, ptr noundef nonnull align 8 dereferenceable(120) %2, i32 noundef %3, i32 noundef %4) local_unnamed_addr #2 personality ptr @__gxx_personality_v0 {
  %6 = alloca %"class.std::basic_ifstream", align 8
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::vector.12", align 8
  %11 = alloca %"class.std::allocator.0", align 1
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca %struct.ggml_init_params, align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator.0", align 1
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::allocator.0", align 1
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::allocator.0", align 1
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::allocator.0", align 1
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::allocator.0", align 1
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca %struct.ggml_init_params, align 8
  %62 = alloca %"class.std::vector.12", align 8
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca [2 x i32], align 8
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::allocator.0", align 1
  %69 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %70 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %71 = tail call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %0) #7
  %72 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, ptr noundef %71)
  call void @llvm.lifetime.start.p0(i64 520, ptr nonnull %6) #7
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256) %6, ptr noundef nonnull align 8 dereferenceable(32) %0, i32 noundef 4)
  %73 = load ptr, ptr %6, align 8, !tbaa !5
  %74 = getelementptr i8, ptr %73, i64 -24
  %75 = load i64, ptr %74, align 8
  %76 = getelementptr inbounds i8, ptr %6, i64 %75
  %77 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv(ptr noundef nonnull align 8 dereferenceable(264) %76)
          to label %78 unwind label %83

78:                                               ; preds = %5
  br i1 %77, label %79, label %85

79:                                               ; preds = %78
  %80 = load ptr, ptr @stderr, align 8, !tbaa !8
  %81 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %0) #7
  %82 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %80, ptr noundef nonnull @.str.1, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, ptr noundef %81) #8
  br label %.critedge398

83:                                               ; preds = %5
  %84 = landingpad { ptr, i32 }
          cleanup
  br label %707

85:                                               ; preds = %78
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #7
  %86 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull %7, i64 noundef 4)
          to label %87 unwind label %93

87:                                               ; preds = %85
  %88 = load i32, ptr %7, align 4, !tbaa !11
  %.not = icmp eq i32 %88, 1734831468
  br i1 %.not, label %.critedge, label %89

89:                                               ; preds = %87
  %90 = load ptr, ptr @stderr, align 8, !tbaa !8
  %91 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %0) #7
  %92 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %90, ptr noundef nonnull @.str.2, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, ptr noundef %91) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #7
  br label %.critedge398

93:                                               ; preds = %85
  %94 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #7
  br label %707

.critedge:                                        ; preds = %87
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #7
  %95 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull %1, i64 noundef 4)
          to label %96 unwind label %138

96:                                               ; preds = %.critedge
  %97 = getelementptr inbounds i8, ptr %1, i64 4
  %98 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull %97, i64 noundef 4)
          to label %99 unwind label %138

99:                                               ; preds = %96
  %100 = getelementptr inbounds i8, ptr %1, i64 8
  %101 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull %100, i64 noundef 4)
          to label %102 unwind label %138

102:                                              ; preds = %99
  %103 = getelementptr inbounds i8, ptr %1, i64 12
  %104 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull %103, i64 noundef 4)
          to label %105 unwind label %138

105:                                              ; preds = %102
  %106 = getelementptr inbounds i8, ptr %1, i64 16
  %107 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull %106, i64 noundef 4)
          to label %108 unwind label %138

108:                                              ; preds = %105
  %109 = getelementptr inbounds i8, ptr %1, i64 20
  %110 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull %109, i64 noundef 4)
          to label %111 unwind label %138

111:                                              ; preds = %108
  %112 = load i32, ptr %109, align 4, !tbaa !13
  %113 = sdiv i32 %112, 1000
  %114 = load i32, ptr %1, align 8, !tbaa !16
  %115 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.3, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, i32 noundef %114)
  %116 = load i32, ptr %97, align 4, !tbaa !17
  %117 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, i32 noundef %116)
  %118 = load i32, ptr %100, align 8, !tbaa !18
  %119 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.5, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, i32 noundef %118)
  %120 = load i32, ptr %103, align 4, !tbaa !19
  %121 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.6, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, i32 noundef %120)
  %122 = load i32, ptr %106, align 8, !tbaa !20
  %123 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.7, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, i32 noundef %122)
  %124 = load i32, ptr %109, align 4, !tbaa !13
  %125 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.8, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, i32 noundef %124)
  %126 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.9, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, i32 noundef %113)
  %127 = load i32, ptr %109, align 4, !tbaa !13
  %128 = srem i32 %127, 1000
  store i32 %128, ptr %109, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #7
  store i32 0, ptr %8, align 4, !tbaa !11
  %129 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull %8, i64 noundef 4)
          to label %130 unwind label %140

130:                                              ; preds = %111
  %131 = load i32, ptr %8, align 4, !tbaa !11
  %132 = load i32, ptr %1, align 8, !tbaa !21
  %.not321 = icmp eq i32 %131, %132
  br i1 %.not321, label %142, label %.thread

.thread:                                          ; preds = %130
  %133 = load ptr, ptr @stderr, align 8, !tbaa !8
  %134 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %0) #7
  %135 = load i32, ptr %8, align 4, !tbaa !11
  %136 = load i32, ptr %1, align 8, !tbaa !21
  %137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %133, ptr noundef nonnull @.str.10, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, ptr noundef %134, i32 noundef %135, i32 noundef %136) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #7
  br label %.critedge398

138:                                              ; preds = %108, %105, %102, %99, %96, %.critedge
  %139 = landingpad { ptr, i32 }
          cleanup
  br label %707

140:                                              ; preds = %111
  %141 = landingpad { ptr, i32 }
          cleanup
  br label %188

142:                                              ; preds = %130
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #7
  invoke void @_ZNSt6vectorIcSaIcEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef 128, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %143 unwind label %147

143:                                              ; preds = %142
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #7
  store i32 0, ptr %12, align 4, !tbaa !11
  %144 = load i32, ptr %8, align 4, !tbaa !11
  %145 = icmp sgt i32 %144, 0
  br i1 %145, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %143
  %146 = getelementptr inbounds i8, ptr %2, i64 48
  br label %149

147:                                              ; preds = %142
  %148 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #7
  br label %187

149:                                              ; preds = %.lr.ph, %171
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #7
  %150 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull %13, i64 noundef 4)
          to label %151 unwind label %176

151:                                              ; preds = %149
  %152 = load i32, ptr %13, align 4, !tbaa !11
  %153 = zext i32 %152 to i64
  invoke void @_ZNSt6vectorIcSaIcEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %153)
          to label %154 unwind label %176

154:                                              ; preds = %151
  %155 = call noundef ptr @_ZNSt6vectorIcSaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %10) #7
  %156 = load i32, ptr %13, align 4, !tbaa !11
  %157 = zext i32 %156 to i64
  %158 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef %155, i64 noundef %157)
          to label %159 unwind label %176

159:                                              ; preds = %154
  %160 = call noundef ptr @_ZNSt6vectorIcSaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %10) #7
  %161 = load i32, ptr %13, align 4, !tbaa !11
  %162 = zext i32 %161 to i64
  %163 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignEPKcm(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef %160, i64 noundef %162)
          to label %164 unwind label %176

164:                                              ; preds = %159
  %165 = load i32, ptr %12, align 4, !tbaa !11
  %166 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %167 unwind label %176

167:                                              ; preds = %164
  store i32 %165, ptr %166, align 4, !tbaa !11
  %168 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapIiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIiESaISt4pairIKiS5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %146, ptr noundef nonnull align 4 dereferenceable(4) %12)
          to label %169 unwind label %176

169:                                              ; preds = %167
  %170 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %168, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %171 unwind label %176

171:                                              ; preds = %169
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #7
  %172 = load i32, ptr %12, align 4, !tbaa !11
  %173 = add nsw i32 %172, 1
  store i32 %173, ptr %12, align 4, !tbaa !11
  %174 = load i32, ptr %8, align 4, !tbaa !11
  %175 = icmp slt i32 %173, %174
  br i1 %175, label %149, label %._crit_edge, !llvm.loop !36

176:                                              ; preds = %169, %167, %164, %159, %154, %151, %149
  %177 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #7
  call void @_ZNSt6vectorIcSaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #7
  br label %187

._crit_edge:                                      ; preds = %171, %143
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #7
  call void @_ZNSt6vectorIcSaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #7
  %178 = load i32, ptr %109, align 4, !tbaa !38
  %179 = invoke i32 @ggml_ftype_to_ggml_type(i32 noundef %178)
          to label %180 unwind label %189

180:                                              ; preds = %._crit_edge
  %181 = icmp eq i32 %179, 39
  br i1 %181, label %182, label %191

182:                                              ; preds = %180
  %183 = load ptr, ptr @stderr, align 8, !tbaa !8
  %184 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %0) #7
  %185 = load i32, ptr %109, align 4, !tbaa !38
  %186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %183, ptr noundef nonnull @.str.11, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, ptr noundef %184, i32 noundef %185) #8
  br label %.critedge398

187:                                              ; preds = %176, %147
  %.pn = phi { ptr, i32 } [ %177, %176 ], [ %148, %147 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #7
  br label %188

188:                                              ; preds = %187, %140
  %.pn.pn = phi { ptr, i32 } [ %.pn, %187 ], [ %141, %140 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #7
  br label %707

189:                                              ; preds = %191, %._crit_edge
  %190 = landingpad { ptr, i32 }
          cleanup
  br label %707

191:                                              ; preds = %180
  invoke void @ggml_log_set(ptr noundef nonnull @_ZL25ggml_log_callback_default14ggml_log_levelPKcPv, ptr noundef null)
          to label %192 unwind label %189

192:                                              ; preds = %191
  %193 = getelementptr inbounds i8, ptr %1, i64 112
  %194 = load i32, ptr %106, align 8, !tbaa !39
  %195 = invoke i64 @ggml_tensor_overhead()
          to label %196 unwind label %206

196:                                              ; preds = %192
  %197 = mul nsw i32 %194, 12
  %198 = add nsw i32 %197, 8
  %199 = sext i32 %198 to i64
  %200 = mul i64 %195, %199
  store i64 %200, ptr %14, align 8, !tbaa !40
  %.sroa.5120.0..sroa_idx = getelementptr inbounds i8, ptr %14, i64 8
  store ptr null, ptr %.sroa.5120.0..sroa_idx, align 8, !tbaa !8
  %.sroa.6121.0..sroa_idx = getelementptr inbounds i8, ptr %14, i64 16
  store i8 1, ptr %.sroa.6121.0..sroa_idx, align 8, !tbaa !41
  %201 = invoke ptr @ggml_init(ptr noundef nonnull byval(%struct.ggml_init_params) align 8 %14)
          to label %202 unwind label %206

202:                                              ; preds = %196
  store ptr %201, ptr %193, align 8, !tbaa !8
  %.not324.not = icmp eq ptr %201, null
  br i1 %.not324.not, label %203, label %.critedge394

203:                                              ; preds = %202
  %204 = load ptr, ptr @stderr, align 8, !tbaa !8
  %205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %204, ptr noundef nonnull @.str.12, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii) #8
  br label %.critedge398

206:                                              ; preds = %196, %192
  %207 = landingpad { ptr, i32 }
          cleanup
  br label %707

.critedge394:                                     ; preds = %202
  %208 = getelementptr inbounds i8, ptr %1, i64 128
  %209 = load ptr, ptr %208, align 8, !tbaa !43
  %.not325 = icmp eq ptr %209, null
  br i1 %.not325, label %210, label %.thread400

210:                                              ; preds = %.critedge394
  %211 = load ptr, ptr @stderr, align 8, !tbaa !8
  %212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %211, ptr noundef nonnull @.str.13, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii) #8
  %213 = invoke ptr @ggml_backend_cpu_init()
          to label %216 unwind label %214

214:                                              ; preds = %702, %514, %._crit_edge436, %210
  %215 = landingpad { ptr, i32 }
          cleanup
  br label %707

216:                                              ; preds = %210
  store ptr %213, ptr %208, align 8, !tbaa !43
  %.not326 = icmp eq ptr %213, null
  br i1 %.not326, label %217, label %.thread400

217:                                              ; preds = %216
  %218 = load ptr, ptr @stderr, align 8, !tbaa !8
  %219 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %218, ptr noundef nonnull @.str.14, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii) #8
  br label %.critedge398

.thread400:                                       ; preds = %.critedge394, %216
  %220 = load i32, ptr %100, align 8, !tbaa !18
  %221 = load i32, ptr %106, align 8, !tbaa !20
  %222 = load i32, ptr %97, align 4, !tbaa !17
  %223 = load i32, ptr %1, align 8, !tbaa !16
  %224 = getelementptr inbounds i8, ptr %1, i64 72
  %225 = sext i32 %221 to i64
  invoke void @_ZNSt6vectorI10gpt2_layerSaIS0_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %224, i64 noundef %225)
          to label %226 unwind label %279

226:                                              ; preds = %.thread400
  %227 = load ptr, ptr %193, align 8, !tbaa !8
  %228 = sext i32 %220 to i64
  %229 = invoke ptr @ggml_new_tensor_1d(ptr noundef %227, i32 noundef 0, i64 noundef %228)
          to label %230 unwind label %279

230:                                              ; preds = %226
  %231 = getelementptr inbounds i8, ptr %1, i64 32
  store ptr %229, ptr %231, align 8, !tbaa !44
  %232 = load ptr, ptr %193, align 8, !tbaa !8
  %233 = invoke ptr @ggml_new_tensor_1d(ptr noundef %232, i32 noundef 0, i64 noundef %228)
          to label %234 unwind label %279

234:                                              ; preds = %230
  %235 = getelementptr inbounds i8, ptr %1, i64 40
  store ptr %233, ptr %235, align 8, !tbaa !45
  %236 = load ptr, ptr %193, align 8, !tbaa !8
  %237 = sext i32 %223 to i64
  %238 = invoke ptr @ggml_new_tensor_2d(ptr noundef %236, i32 noundef %179, i64 noundef %228, i64 noundef %237)
          to label %239 unwind label %279

239:                                              ; preds = %234
  %240 = getelementptr inbounds i8, ptr %1, i64 48
  store ptr %238, ptr %240, align 8, !tbaa !46
  %241 = load ptr, ptr %193, align 8, !tbaa !8
  %242 = sext i32 %222 to i64
  %243 = invoke ptr @ggml_new_tensor_2d(ptr noundef %241, i32 noundef 0, i64 noundef %228, i64 noundef %242)
          to label %244 unwind label %279

244:                                              ; preds = %239
  %245 = getelementptr inbounds i8, ptr %1, i64 56
  store ptr %243, ptr %245, align 8, !tbaa !47
  %246 = load ptr, ptr %193, align 8, !tbaa !8
  %247 = invoke ptr @ggml_new_tensor_2d(ptr noundef %246, i32 noundef %179, i64 noundef %228, i64 noundef %237)
          to label %248 unwind label %279

248:                                              ; preds = %244
  %249 = getelementptr inbounds i8, ptr %1, i64 64
  store ptr %247, ptr %249, align 8, !tbaa !48
  %250 = load ptr, ptr %231, align 8, !tbaa !44
  %251 = getelementptr inbounds i8, ptr %1, i64 152
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull @.str.15, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %252 unwind label %281

252:                                              ; preds = %248
  %253 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %251, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %254 unwind label %283

254:                                              ; preds = %252
  store ptr %250, ptr %253, align 8, !tbaa !8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #7
  %255 = load ptr, ptr %235, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %18) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %256 unwind label %286

256:                                              ; preds = %254
  %257 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %251, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %258 unwind label %288

258:                                              ; preds = %256
  store ptr %255, ptr %257, align 8, !tbaa !8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #7
  %259 = load ptr, ptr %240, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %260 unwind label %291

260:                                              ; preds = %258
  %261 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %251, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %262 unwind label %293

262:                                              ; preds = %260
  store ptr %259, ptr %261, align 8, !tbaa !8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  %263 = load ptr, ptr %245, align 8, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %264 unwind label %296

264:                                              ; preds = %262
  %265 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %251, ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %266 unwind label %298

266:                                              ; preds = %264
  store ptr %263, ptr %265, align 8, !tbaa !8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #7
  %267 = load ptr, ptr %249, align 8, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %268 unwind label %301

268:                                              ; preds = %266
  %269 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %251, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %270 unwind label %303

270:                                              ; preds = %268
  store ptr %267, ptr %269, align 8, !tbaa !8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #7
  %271 = icmp sgt i32 %221, 0
  br i1 %271, label %.lr.ph435, label %._crit_edge436

.lr.ph435:                                        ; preds = %270
  %272 = mul nsw i32 %220, 3
  %273 = sext i32 %272 to i64
  %274 = shl nsw i32 %220, 2
  %275 = sext i32 %274 to i64
  %wide.trip.count = zext nneg i32 %221 to i64
  br label %306

._crit_edge436:                                   ; preds = %415, %270
  %276 = load ptr, ptr %193, align 8, !tbaa !8
  %277 = load ptr, ptr %208, align 8, !tbaa !43
  %278 = invoke ptr @ggml_backend_alloc_ctx_tensors(ptr noundef %276, ptr noundef %277)
          to label %514 unwind label %214

279:                                              ; preds = %244, %239, %234, %230, %226, %.thread400
  %280 = landingpad { ptr, i32 }
          cleanup
  br label %707

281:                                              ; preds = %248
  %282 = landingpad { ptr, i32 }
          cleanup
  br label %285

283:                                              ; preds = %252
  %284 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  br label %285

285:                                              ; preds = %283, %281
  %.pn327 = phi { ptr, i32 } [ %284, %283 ], [ %282, %281 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #7
  br label %707

286:                                              ; preds = %254
  %287 = landingpad { ptr, i32 }
          cleanup
  br label %290

288:                                              ; preds = %256
  %289 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #7
  br label %290

290:                                              ; preds = %288, %286
  %.pn329 = phi { ptr, i32 } [ %289, %288 ], [ %287, %286 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #7
  br label %707

291:                                              ; preds = %258
  %292 = landingpad { ptr, i32 }
          cleanup
  br label %295

293:                                              ; preds = %260
  %294 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  br label %295

295:                                              ; preds = %293, %291
  %.pn331 = phi { ptr, i32 } [ %294, %293 ], [ %292, %291 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  br label %707

296:                                              ; preds = %262
  %297 = landingpad { ptr, i32 }
          cleanup
  br label %300

298:                                              ; preds = %264
  %299 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  br label %300

300:                                              ; preds = %298, %296
  %.pn333 = phi { ptr, i32 } [ %299, %298 ], [ %297, %296 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #7
  br label %707

301:                                              ; preds = %266
  %302 = landingpad { ptr, i32 }
          cleanup
  br label %305

303:                                              ; preds = %268
  %304 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  br label %305

305:                                              ; preds = %303, %301
  %.pn335 = phi { ptr, i32 } [ %304, %303 ], [ %302, %301 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #7
  br label %707

306:                                              ; preds = %.lr.ph435, %415
  %indvars.iv = phi i64 [ 0, %.lr.ph435 ], [ %indvars.iv.next, %415 ]
  %307 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNSt6vectorI10gpt2_layerSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %224, i64 noundef %indvars.iv) #7
  %308 = load ptr, ptr %193, align 8, !tbaa !8
  %309 = invoke ptr @ggml_new_tensor_1d(ptr noundef %308, i32 noundef 0, i64 noundef %228)
          to label %310 unwind label %416

310:                                              ; preds = %306
  store ptr %309, ptr %307, align 8, !tbaa !49
  %311 = load ptr, ptr %193, align 8, !tbaa !8
  %312 = invoke ptr @ggml_new_tensor_1d(ptr noundef %311, i32 noundef 0, i64 noundef %228)
          to label %313 unwind label %416

313:                                              ; preds = %310
  %314 = getelementptr inbounds i8, ptr %307, i64 8
  store ptr %312, ptr %314, align 8, !tbaa !51
  %315 = load ptr, ptr %193, align 8, !tbaa !8
  %316 = invoke ptr @ggml_new_tensor_1d(ptr noundef %315, i32 noundef 0, i64 noundef %228)
          to label %317 unwind label %416

317:                                              ; preds = %313
  %318 = getelementptr inbounds i8, ptr %307, i64 16
  store ptr %316, ptr %318, align 8, !tbaa !52
  %319 = load ptr, ptr %193, align 8, !tbaa !8
  %320 = invoke ptr @ggml_new_tensor_1d(ptr noundef %319, i32 noundef 0, i64 noundef %228)
          to label %321 unwind label %416

321:                                              ; preds = %317
  %322 = getelementptr inbounds i8, ptr %307, i64 24
  store ptr %320, ptr %322, align 8, !tbaa !53
  %323 = load ptr, ptr %193, align 8, !tbaa !8
  %324 = invoke ptr @ggml_new_tensor_2d(ptr noundef %323, i32 noundef %179, i64 noundef %228, i64 noundef %273)
          to label %325 unwind label %416

325:                                              ; preds = %321
  %326 = getelementptr inbounds i8, ptr %307, i64 32
  store ptr %324, ptr %326, align 8, !tbaa !54
  %327 = load ptr, ptr %193, align 8, !tbaa !8
  %328 = invoke ptr @ggml_new_tensor_1d(ptr noundef %327, i32 noundef 0, i64 noundef %273)
          to label %329 unwind label %416

329:                                              ; preds = %325
  %330 = getelementptr inbounds i8, ptr %307, i64 40
  store ptr %328, ptr %330, align 8, !tbaa !55
  %331 = load ptr, ptr %193, align 8, !tbaa !8
  %332 = invoke ptr @ggml_new_tensor_2d(ptr noundef %331, i32 noundef %179, i64 noundef %228, i64 noundef %228)
          to label %333 unwind label %416

333:                                              ; preds = %329
  %334 = getelementptr inbounds i8, ptr %307, i64 48
  store ptr %332, ptr %334, align 8, !tbaa !56
  %335 = load ptr, ptr %193, align 8, !tbaa !8
  %336 = invoke ptr @ggml_new_tensor_1d(ptr noundef %335, i32 noundef 0, i64 noundef %228)
          to label %337 unwind label %416

337:                                              ; preds = %333
  %338 = getelementptr inbounds i8, ptr %307, i64 56
  store ptr %336, ptr %338, align 8, !tbaa !57
  %339 = load ptr, ptr %193, align 8, !tbaa !8
  %340 = invoke ptr @ggml_new_tensor_2d(ptr noundef %339, i32 noundef %179, i64 noundef %228, i64 noundef %275)
          to label %341 unwind label %416

341:                                              ; preds = %337
  %342 = getelementptr inbounds i8, ptr %307, i64 64
  store ptr %340, ptr %342, align 8, !tbaa !58
  %343 = load ptr, ptr %193, align 8, !tbaa !8
  %344 = invoke ptr @ggml_new_tensor_1d(ptr noundef %343, i32 noundef 0, i64 noundef %275)
          to label %345 unwind label %416

345:                                              ; preds = %341
  %346 = getelementptr inbounds i8, ptr %307, i64 72
  store ptr %344, ptr %346, align 8, !tbaa !59
  %347 = load ptr, ptr %193, align 8, !tbaa !8
  %348 = invoke ptr @ggml_new_tensor_2d(ptr noundef %347, i32 noundef %179, i64 noundef %275, i64 noundef %228)
          to label %349 unwind label %416

349:                                              ; preds = %345
  %350 = getelementptr inbounds i8, ptr %307, i64 80
  store ptr %348, ptr %350, align 8, !tbaa !60
  %351 = load ptr, ptr %193, align 8, !tbaa !8
  %352 = invoke ptr @ggml_new_tensor_1d(ptr noundef %351, i32 noundef 0, i64 noundef %228)
          to label %353 unwind label %416

353:                                              ; preds = %349
  %354 = getelementptr inbounds i8, ptr %307, i64 88
  store ptr %352, ptr %354, align 8, !tbaa !61
  %355 = load ptr, ptr %307, align 8, !tbaa !49
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #7
  %356 = trunc nuw nsw i64 %indvars.iv to i32
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %27, i32 noundef %356) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull @.str.20, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %357 unwind label %418

357:                                              ; preds = %353
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull @.str.21)
          to label %358 unwind label %420

358:                                              ; preds = %357
  %359 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %251, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %360 unwind label %422

360:                                              ; preds = %358
  store ptr %355, ptr %359, align 8, !tbaa !8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #7
  %361 = load ptr, ptr %314, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #7
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %30, i32 noundef %356) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull @.str.20, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %362 unwind label %426

362:                                              ; preds = %360
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %28, ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull @.str.22)
          to label %363 unwind label %428

363:                                              ; preds = %362
  %364 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %251, ptr noundef nonnull align 8 dereferenceable(32) %28)
          to label %365 unwind label %430

365:                                              ; preds = %363
  store ptr %361, ptr %364, align 8, !tbaa !8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #7
  %366 = load ptr, ptr %318, align 8, !tbaa !52
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #7
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %33, i32 noundef %356) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr noundef nonnull @.str.20, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %367 unwind label %434

367:                                              ; preds = %365
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %31, ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull @.str.23)
          to label %368 unwind label %436

368:                                              ; preds = %367
  %369 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %251, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %370 unwind label %438

370:                                              ; preds = %368
  store ptr %366, ptr %369, align 8, !tbaa !8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #7
  %371 = load ptr, ptr %322, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #7
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %36, i32 noundef %356) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef nonnull @.str.20, ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %372 unwind label %442

372:                                              ; preds = %370
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull @.str.24)
          to label %373 unwind label %444

373:                                              ; preds = %372
  %374 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %251, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %375 unwind label %446

375:                                              ; preds = %373
  store ptr %371, ptr %374, align 8, !tbaa !8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #7
  %376 = load ptr, ptr %326, align 8, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #7
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %39, i32 noundef %356) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr noundef nonnull @.str.20, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %377 unwind label %450

377:                                              ; preds = %375
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %37, ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull @.str.25)
          to label %378 unwind label %452

378:                                              ; preds = %377
  %379 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %251, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %380 unwind label %454

380:                                              ; preds = %378
  store ptr %376, ptr %379, align 8, !tbaa !8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #7
  %381 = load ptr, ptr %330, align 8, !tbaa !55
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %40) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %42) #7
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %42, i32 noundef %356) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull @.str.20, ptr noundef nonnull align 8 dereferenceable(32) %42)
          to label %382 unwind label %458

382:                                              ; preds = %380
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %40, ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull @.str.26)
          to label %383 unwind label %460

383:                                              ; preds = %382
  %384 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %251, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %385 unwind label %462

385:                                              ; preds = %383
  store ptr %381, ptr %384, align 8, !tbaa !8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #7
  %386 = load ptr, ptr %334, align 8, !tbaa !56
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %45) #7
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %45, i32 noundef %356) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %44, ptr noundef nonnull @.str.20, ptr noundef nonnull align 8 dereferenceable(32) %45)
          to label %387 unwind label %466

387:                                              ; preds = %385
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %43, ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull @.str.27)
          to label %388 unwind label %468

388:                                              ; preds = %387
  %389 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %251, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %390 unwind label %470

390:                                              ; preds = %388
  store ptr %386, ptr %389, align 8, !tbaa !8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #7
  %391 = load ptr, ptr %338, align 8, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %48) #7
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %48, i32 noundef %356) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %47, ptr noundef nonnull @.str.20, ptr noundef nonnull align 8 dereferenceable(32) %48)
          to label %392 unwind label %474

392:                                              ; preds = %390
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull @.str.28)
          to label %393 unwind label %476

393:                                              ; preds = %392
  %394 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %251, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %395 unwind label %478

395:                                              ; preds = %393
  store ptr %391, ptr %394, align 8, !tbaa !8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #7
  %396 = load ptr, ptr %342, align 8, !tbaa !58
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %49) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %50) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %51) #7
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %51, i32 noundef %356) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull @.str.20, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %397 unwind label %482

397:                                              ; preds = %395
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %49, ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull @.str.29)
          to label %398 unwind label %484

398:                                              ; preds = %397
  %399 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %251, ptr noundef nonnull align 8 dereferenceable(32) %49)
          to label %400 unwind label %486

400:                                              ; preds = %398
  store ptr %396, ptr %399, align 8, !tbaa !8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #7
  %401 = load ptr, ptr %346, align 8, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %52) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %54) #7
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %54, i32 noundef %356) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %53, ptr noundef nonnull @.str.20, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %402 unwind label %490

402:                                              ; preds = %400
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %52, ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull @.str.30)
          to label %403 unwind label %492

403:                                              ; preds = %402
  %404 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %251, ptr noundef nonnull align 8 dereferenceable(32) %52)
          to label %405 unwind label %494

405:                                              ; preds = %403
  store ptr %401, ptr %404, align 8, !tbaa !8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #7
  %406 = load ptr, ptr %350, align 8, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %55) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %56) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %57) #7
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %57, i32 noundef %356) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %56, ptr noundef nonnull @.str.20, ptr noundef nonnull align 8 dereferenceable(32) %57)
          to label %407 unwind label %498

407:                                              ; preds = %405
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %55, ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull @.str.31)
          to label %408 unwind label %500

408:                                              ; preds = %407
  %409 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %251, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %410 unwind label %502

410:                                              ; preds = %408
  store ptr %406, ptr %409, align 8, !tbaa !8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %56) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #7
  %411 = load ptr, ptr %354, align 8, !tbaa !61
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %58) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %59) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %60) #7
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %60, i32 noundef %356) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %59, ptr noundef nonnull @.str.20, ptr noundef nonnull align 8 dereferenceable(32) %60)
          to label %412 unwind label %506

412:                                              ; preds = %410
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %58, ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull @.str.32)
          to label %413 unwind label %508

413:                                              ; preds = %412
  %414 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %251, ptr noundef nonnull align 8 dereferenceable(32) %58)
          to label %415 unwind label %510

415:                                              ; preds = %413
  store ptr %411, ptr %414, align 8, !tbaa !8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #7
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge436, label %306, !llvm.loop !62

416:                                              ; preds = %349, %345, %341, %337, %333, %329, %325, %321, %317, %313, %310, %306
  %417 = landingpad { ptr, i32 }
          cleanup
  br label %707

418:                                              ; preds = %353
  %419 = landingpad { ptr, i32 }
          cleanup
  br label %425

420:                                              ; preds = %357
  %421 = landingpad { ptr, i32 }
          cleanup
  br label %424

422:                                              ; preds = %358
  %423 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  br label %424

424:                                              ; preds = %422, %420
  %.pn352 = phi { ptr, i32 } [ %423, %422 ], [ %421, %420 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  br label %425

425:                                              ; preds = %424, %418
  %.pn352.pn = phi { ptr, i32 } [ %.pn352, %424 ], [ %419, %418 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #7
  br label %707

426:                                              ; preds = %360
  %427 = landingpad { ptr, i32 }
          cleanup
  br label %433

428:                                              ; preds = %362
  %429 = landingpad { ptr, i32 }
          cleanup
  br label %432

430:                                              ; preds = %363
  %431 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  br label %432

432:                                              ; preds = %430, %428
  %.pn355 = phi { ptr, i32 } [ %431, %430 ], [ %429, %428 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  br label %433

433:                                              ; preds = %432, %426
  %.pn355.pn = phi { ptr, i32 } [ %.pn355, %432 ], [ %427, %426 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #7
  br label %707

434:                                              ; preds = %365
  %435 = landingpad { ptr, i32 }
          cleanup
  br label %441

436:                                              ; preds = %367
  %437 = landingpad { ptr, i32 }
          cleanup
  br label %440

438:                                              ; preds = %368
  %439 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  br label %440

440:                                              ; preds = %438, %436
  %.pn358 = phi { ptr, i32 } [ %439, %438 ], [ %437, %436 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #7
  br label %441

441:                                              ; preds = %440, %434
  %.pn358.pn = phi { ptr, i32 } [ %.pn358, %440 ], [ %435, %434 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #7
  br label %707

442:                                              ; preds = %370
  %443 = landingpad { ptr, i32 }
          cleanup
  br label %449

444:                                              ; preds = %372
  %445 = landingpad { ptr, i32 }
          cleanup
  br label %448

446:                                              ; preds = %373
  %447 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #7
  br label %448

448:                                              ; preds = %446, %444
  %.pn361 = phi { ptr, i32 } [ %447, %446 ], [ %445, %444 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  br label %449

449:                                              ; preds = %448, %442
  %.pn361.pn = phi { ptr, i32 } [ %.pn361, %448 ], [ %443, %442 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #7
  br label %707

450:                                              ; preds = %375
  %451 = landingpad { ptr, i32 }
          cleanup
  br label %457

452:                                              ; preds = %377
  %453 = landingpad { ptr, i32 }
          cleanup
  br label %456

454:                                              ; preds = %378
  %455 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  br label %456

456:                                              ; preds = %454, %452
  %.pn364 = phi { ptr, i32 } [ %455, %454 ], [ %453, %452 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  br label %457

457:                                              ; preds = %456, %450
  %.pn364.pn = phi { ptr, i32 } [ %.pn364, %456 ], [ %451, %450 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #7
  br label %707

458:                                              ; preds = %380
  %459 = landingpad { ptr, i32 }
          cleanup
  br label %465

460:                                              ; preds = %382
  %461 = landingpad { ptr, i32 }
          cleanup
  br label %464

462:                                              ; preds = %383
  %463 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #7
  br label %464

464:                                              ; preds = %462, %460
  %.pn367 = phi { ptr, i32 } [ %463, %462 ], [ %461, %460 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #7
  br label %465

465:                                              ; preds = %464, %458
  %.pn367.pn = phi { ptr, i32 } [ %.pn367, %464 ], [ %459, %458 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #7
  br label %707

466:                                              ; preds = %385
  %467 = landingpad { ptr, i32 }
          cleanup
  br label %473

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

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

472:                                              ; preds = %470, %468
  %.pn370 = phi { ptr, i32 } [ %471, %470 ], [ %469, %468 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  br label %473

473:                                              ; preds = %472, %466
  %.pn370.pn = phi { ptr, i32 } [ %.pn370, %472 ], [ %467, %466 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #7
  br label %707

474:                                              ; preds = %390
  %475 = landingpad { ptr, i32 }
          cleanup
  br label %481

476:                                              ; preds = %392
  %477 = landingpad { ptr, i32 }
          cleanup
  br label %480

478:                                              ; preds = %393
  %479 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #7
  br label %480

480:                                              ; preds = %478, %476
  %.pn373 = phi { ptr, i32 } [ %479, %478 ], [ %477, %476 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #7
  br label %481

481:                                              ; preds = %480, %474
  %.pn373.pn = phi { ptr, i32 } [ %.pn373, %480 ], [ %475, %474 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #7
  br label %707

482:                                              ; preds = %395
  %483 = landingpad { ptr, i32 }
          cleanup
  br label %489

484:                                              ; preds = %397
  %485 = landingpad { ptr, i32 }
          cleanup
  br label %488

486:                                              ; preds = %398
  %487 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #7
  br label %488

488:                                              ; preds = %486, %484
  %.pn376 = phi { ptr, i32 } [ %487, %486 ], [ %485, %484 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #7
  br label %489

489:                                              ; preds = %488, %482
  %.pn376.pn = phi { ptr, i32 } [ %.pn376, %488 ], [ %483, %482 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #7
  br label %707

490:                                              ; preds = %400
  %491 = landingpad { ptr, i32 }
          cleanup
  br label %497

492:                                              ; preds = %402
  %493 = landingpad { ptr, i32 }
          cleanup
  br label %496

494:                                              ; preds = %403
  %495 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #7
  br label %496

496:                                              ; preds = %494, %492
  %.pn379 = phi { ptr, i32 } [ %495, %494 ], [ %493, %492 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  br label %497

497:                                              ; preds = %496, %490
  %.pn379.pn = phi { ptr, i32 } [ %.pn379, %496 ], [ %491, %490 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #7
  br label %707

498:                                              ; preds = %405
  %499 = landingpad { ptr, i32 }
          cleanup
  br label %505

500:                                              ; preds = %407
  %501 = landingpad { ptr, i32 }
          cleanup
  br label %504

502:                                              ; preds = %408
  %503 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #7
  br label %504

504:                                              ; preds = %502, %500
  %.pn382 = phi { ptr, i32 } [ %503, %502 ], [ %501, %500 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #7
  br label %505

505:                                              ; preds = %504, %498
  %.pn382.pn = phi { ptr, i32 } [ %.pn382, %504 ], [ %499, %498 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %56) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #7
  br label %707

506:                                              ; preds = %410
  %507 = landingpad { ptr, i32 }
          cleanup
  br label %513

508:                                              ; preds = %412
  %509 = landingpad { ptr, i32 }
          cleanup
  br label %512

510:                                              ; preds = %413
  %511 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #7
  br label %512

512:                                              ; preds = %510, %508
  %.pn385 = phi { ptr, i32 } [ %511, %510 ], [ %509, %508 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #7
  br label %513

513:                                              ; preds = %512, %506
  %.pn385.pn = phi { ptr, i32 } [ %.pn385, %512 ], [ %507, %506 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #7
  br label %707

514:                                              ; preds = %._crit_edge436
  %515 = getelementptr inbounds i8, ptr %1, i64 136
  store ptr %278, ptr %515, align 8, !tbaa !63
  %516 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.33, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, i32 noundef 336)
  %517 = load ptr, ptr %515, align 8, !tbaa !63
  %518 = invoke i64 @ggml_backend_buffer_get_size(ptr noundef %517)
          to label %519 unwind label %214

519:                                              ; preds = %514
  %520 = uitofp i64 %518 to double
  %521 = fmul double %520, 0x3EB0000000000000
  %522 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.34, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, double noundef %521)
  store i32 %3, ptr %97, align 4, !tbaa !64
  %523 = invoke i64 @ggml_tensor_overhead()
          to label %524 unwind label %531

524:                                              ; preds = %519
  %525 = shl i64 %523, 1
  store i64 %525, ptr %61, align 8, !tbaa !40
  %.sroa.5.0..sroa_idx = getelementptr inbounds i8, ptr %61, i64 8
  store ptr null, ptr %.sroa.5.0..sroa_idx, align 8, !tbaa !8
  %.sroa.6.0..sroa_idx = getelementptr inbounds i8, ptr %61, i64 16
  store i8 1, ptr %.sroa.6.0..sroa_idx, align 8, !tbaa !41
  %526 = invoke ptr @ggml_init(ptr noundef nonnull byval(%struct.ggml_init_params) align 8 %61)
          to label %527 unwind label %531

527:                                              ; preds = %524
  %.not337.not.not = icmp eq ptr %526, null
  br i1 %.not337.not.not, label %528, label %.critedge396

528:                                              ; preds = %527
  %529 = load ptr, ptr @stderr, align 8, !tbaa !8
  %530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %529, ptr noundef nonnull @.str.12, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii) #8
  br label %.critedge398

531:                                              ; preds = %524, %519
  %532 = landingpad { ptr, i32 }
          cleanup
  br label %707

.critedge396:                                     ; preds = %527
  %533 = load i32, ptr %100, align 8, !tbaa !18
  %534 = load i32, ptr %106, align 8, !tbaa !20
  %535 = load i32, ptr %97, align 4, !tbaa !17
  %536 = mul nsw i32 %535, %534
  %537 = mul nsw i32 %536, %533
  %538 = sext i32 %537 to i64
  %539 = invoke ptr @ggml_new_tensor_1d(ptr noundef nonnull %526, i32 noundef 0, i64 noundef %538)
          to label %540 unwind label %569

540:                                              ; preds = %.critedge396
  %541 = getelementptr inbounds i8, ptr %1, i64 96
  store ptr %539, ptr %541, align 8, !tbaa !65
  %542 = invoke ptr @ggml_new_tensor_1d(ptr noundef nonnull %526, i32 noundef 0, i64 noundef %538)
          to label %543 unwind label %569

543:                                              ; preds = %540
  %544 = getelementptr inbounds i8, ptr %1, i64 104
  store ptr %542, ptr %544, align 8, !tbaa !66
  %545 = load ptr, ptr %208, align 8, !tbaa !43
  %546 = invoke ptr @ggml_backend_alloc_ctx_tensors(ptr noundef nonnull %526, ptr noundef %545)
          to label %547 unwind label %569

547:                                              ; preds = %543
  %548 = getelementptr inbounds i8, ptr %1, i64 144
  store ptr %546, ptr %548, align 8, !tbaa !67
  %549 = invoke i64 @ggml_backend_buffer_get_size(ptr noundef %546)
          to label %550 unwind label %571

550:                                              ; preds = %547
  %551 = uitofp i64 %549 to double
  %552 = fmul double %551, 0x3F50000000000000
  %553 = fmul double %552, 0x3F50000000000000
  %554 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.35, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, double noundef %553, i32 noundef %536)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %62) #7
  call void @_ZNSt6vectorIcSaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %62) #7
  %555 = load i64, ptr @__const._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii.ne, align 4
  %556 = getelementptr inbounds i8, ptr %66, i64 4
  br label %557

557:                                              ; preds = %695, %550
  %.0261 = phi i64 [ 0, %550 ], [ %696, %695 ]
  %.0255 = phi i8 [ 0, %550 ], [ %spec.select, %695 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %63) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %64) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %65) #7
  %558 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull %63, i64 noundef 4)
          to label %559 unwind label %573

559:                                              ; preds = %557
  %560 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull %64, i64 noundef 4)
          to label %561 unwind label %573

561:                                              ; preds = %559
  %562 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull %65, i64 noundef 4)
          to label %563 unwind label %573

563:                                              ; preds = %561
  %564 = load ptr, ptr %6, align 8, !tbaa !5
  %565 = getelementptr i8, ptr %564, i64 -24
  %566 = load i64, ptr %565, align 8
  %567 = getelementptr inbounds i8, ptr %6, i64 %566
  %568 = call noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %567)
  br i1 %568, label %702, label %575

569:                                              ; preds = %543, %540, %.critedge396
  %570 = landingpad { ptr, i32 }
          cleanup
  br label %707

571:                                              ; preds = %547
  %572 = landingpad { ptr, i32 }
          cleanup
  br label %707

573:                                              ; preds = %561, %559, %557
  %574 = landingpad { ptr, i32 }
          cleanup
  br label %700

575:                                              ; preds = %563
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %66) #7
  store i64 %555, ptr %66, align 8
  %576 = load i32, ptr %63, align 4, !tbaa !11
  %577 = icmp sgt i32 %576, 0
  br i1 %577, label %.lr.ph440, label %._crit_edge441

._crit_edge441:                                   ; preds = %582, %575
  %.0254.lcssa = phi i32 [ 1, %575 ], [ %584, %582 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %67) #7
  %578 = load i32, ptr %64, align 4, !tbaa !11
  %579 = sext i32 %578 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %68) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %67, i64 noundef %579, i8 noundef signext 0, ptr noundef nonnull align 1 dereferenceable(1) %68)
          to label %590 unwind label %604

.lr.ph440:                                        ; preds = %575, %582
  %indvars.iv460 = phi i64 [ %indvars.iv.next461, %582 ], [ 0, %575 ]
  %.0254437 = phi i32 [ %584, %582 ], [ 1, %575 ]
  %580 = getelementptr inbounds [2 x i32], ptr %66, i64 0, i64 %indvars.iv460
  %581 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull %580, i64 noundef 4)
          to label %582 unwind label %588

582:                                              ; preds = %.lr.ph440
  %583 = load i32, ptr %580, align 4, !tbaa !11
  %584 = mul nsw i32 %583, %.0254437
  %indvars.iv.next461 = add nuw nsw i64 %indvars.iv460, 1
  %585 = load i32, ptr %63, align 4, !tbaa !11
  %586 = sext i32 %585 to i64
  %587 = icmp slt i64 %indvars.iv.next461, %586
  br i1 %587, label %.lr.ph440, label %._crit_edge441, !llvm.loop !68

588:                                              ; preds = %.lr.ph440
  %589 = landingpad { ptr, i32 }
          cleanup
  br label %699

590:                                              ; preds = %._crit_edge441
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %68) #7
  %591 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %67, i64 noundef 0)
  %592 = load i32, ptr %64, align 4, !tbaa !11
  %593 = sext i32 %592 to i64
  %594 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull %591, i64 noundef %593)
          to label %595 unwind label %606

595:                                              ; preds = %590
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %69) #7
  %596 = invoke ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEE4findERSB_(ptr noundef nonnull align 8 dereferenceable(48) %251, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %597 unwind label %608

597:                                              ; preds = %595
  store ptr %596, ptr %69, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %70) #7
  %598 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %251) #7
  store ptr %598, ptr %70, align 8
  %599 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorEESD_(ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef nonnull align 8 dereferenceable(8) %70) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %70) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #7
  br i1 %599, label %600, label %610

600:                                              ; preds = %597
  %601 = load ptr, ptr @stderr, align 8, !tbaa !8
  %602 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %67) #7
  %603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %601, ptr noundef nonnull @.str.36, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, ptr noundef %602) #8
  br label %701

604:                                              ; preds = %._crit_edge441
  %605 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %68) #7
  br label %698

606:                                              ; preds = %590
  %607 = landingpad { ptr, i32 }
          cleanup
  br label %697

608:                                              ; preds = %595
  %609 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #7
  br label %697

610:                                              ; preds = %597
  %611 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixERSB_(ptr noundef nonnull align 8 dereferenceable(48) %251, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %612 unwind label %624

612:                                              ; preds = %610
  %613 = load ptr, ptr %611, align 8, !tbaa !8
  %614 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %67) #7
  %615 = invoke ptr @ggml_set_name(ptr noundef %613, ptr noundef %614)
          to label %616 unwind label %624

616:                                              ; preds = %612
  %617 = invoke i64 @ggml_nelements(ptr noundef %613)
          to label %618 unwind label %624

618:                                              ; preds = %616
  %619 = sext i32 %.0254.lcssa to i64
  %.not341 = icmp eq i64 %617, %619
  br i1 %.not341, label %626, label %620

620:                                              ; preds = %618
  %621 = load ptr, ptr @stderr, align 8, !tbaa !8
  %622 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %67) #7
  %623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %621, ptr noundef nonnull @.str.37, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, ptr noundef %622) #8
  br label %701

624:                                              ; preds = %616, %612, %610
  %625 = landingpad { ptr, i32 }
          cleanup
  br label %697

626:                                              ; preds = %618
  %627 = getelementptr inbounds i8, ptr %613, i64 16
  %628 = load i64, ptr %627, align 8, !tbaa !40
  %629 = load i32, ptr %66, align 8, !tbaa !11
  %630 = sext i32 %629 to i64
  %.not342 = icmp eq i64 %628, %630
  br i1 %.not342, label %631, label %636

631:                                              ; preds = %626
  %632 = getelementptr inbounds i8, ptr %613, i64 24
  %633 = load i64, ptr %632, align 8, !tbaa !40
  %634 = load i32, ptr %556, align 4, !tbaa !11
  %635 = sext i32 %634 to i64
  %.not343 = icmp eq i64 %633, %635
  br i1 %.not343, label %648, label %636

636:                                              ; preds = %631, %626
  %637 = getelementptr inbounds i8, ptr %613, i64 16
  %638 = load ptr, ptr @stderr, align 8, !tbaa !8
  %639 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %67) #7
  %640 = load i64, ptr %637, align 8, !tbaa !40
  %641 = trunc i64 %640 to i32
  %642 = getelementptr inbounds i8, ptr %613, i64 24
  %643 = load i64, ptr %642, align 8, !tbaa !40
  %644 = trunc i64 %643 to i32
  %645 = load i32, ptr %66, align 8, !tbaa !11
  %646 = load i32, ptr %556, align 4, !tbaa !11
  %647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %638, ptr noundef nonnull @.str.38, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, ptr noundef %639, i32 noundef %641, i32 noundef %644, i32 noundef %645, i32 noundef %646) #8
  br label %701

648:                                              ; preds = %631
  %649 = load i32, ptr %65, align 4, !tbaa !11
  %650 = invoke i64 @ggml_type_size(i32 noundef %649)
          to label %651 unwind label %.loopexit

651:                                              ; preds = %648
  %652 = mul i64 %650, %617
  %653 = load i32, ptr %613, align 8, !tbaa !69
  %654 = invoke i64 @ggml_blck_size(i32 noundef %653)
          to label %655 unwind label %.loopexit

655:                                              ; preds = %651
  %656 = invoke i64 @ggml_nbytes(ptr noundef nonnull %613)
          to label %657 unwind label %.loopexit

657:                                              ; preds = %655
  %658 = udiv i64 %652, %654
  %.not344 = icmp eq i64 %658, %656
  br i1 %.not344, label %665, label %659

659:                                              ; preds = %657
  %660 = load ptr, ptr @stderr, align 8, !tbaa !8
  %661 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %67) #7
  %662 = invoke i64 @ggml_nbytes(ptr noundef nonnull %613)
          to label %663 unwind label %.loopexit.split-lp

663:                                              ; preds = %659
  %664 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %660, ptr noundef nonnull @.str.39, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, ptr noundef %661, i64 noundef %662, i64 noundef %652) #8
  br label %701

.loopexit:                                        ; preds = %648, %651, %655, %665, %669, %673, %675, %677, %678, %681, %683, %686, %692
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %697

.loopexit.split-lp:                               ; preds = %659
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %697

665:                                              ; preds = %657
  %666 = load ptr, ptr %515, align 8, !tbaa !63
  %667 = invoke zeroext i1 @ggml_backend_buffer_is_host(ptr noundef %666)
          to label %668 unwind label %.loopexit

668:                                              ; preds = %665
  br i1 %667, label %669, label %675

669:                                              ; preds = %668
  %670 = getelementptr inbounds i8, ptr %613, i64 248
  %671 = load ptr, ptr %670, align 8, !tbaa !73
  %672 = invoke i64 @ggml_nbytes(ptr noundef nonnull %613)
          to label %673 unwind label %.loopexit

673:                                              ; preds = %669
  %674 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef %671, i64 noundef %672)
          to label %687 unwind label %.loopexit

675:                                              ; preds = %668
  %676 = invoke i64 @ggml_nbytes(ptr noundef nonnull %613)
          to label %677 unwind label %.loopexit

677:                                              ; preds = %675
  invoke void @_ZNSt6vectorIcSaIcEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef %676)
          to label %678 unwind label %.loopexit

678:                                              ; preds = %677
  %679 = call noundef ptr @_ZNSt6vectorIcSaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %62) #7
  %680 = invoke i64 @ggml_nbytes(ptr noundef nonnull %613)
          to label %681 unwind label %.loopexit

681:                                              ; preds = %678
  %682 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef %679, i64 noundef %680)
          to label %683 unwind label %.loopexit

683:                                              ; preds = %681
  %684 = call noundef ptr @_ZNSt6vectorIcSaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %62) #7
  %685 = invoke i64 @ggml_nbytes(ptr noundef nonnull %613)
          to label %686 unwind label %.loopexit

686:                                              ; preds = %683
  invoke void @ggml_backend_tensor_set(ptr noundef nonnull %613, ptr noundef %684, i64 noundef 0, i64 noundef %685)
          to label %687 unwind label %.loopexit

687:                                              ; preds = %686, %673
  %688 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull @.str.17)
  %689 = and i8 %.0255, 1
  %690 = icmp eq i8 %689, 0
  %or.cond = select i1 %688, i1 %690, i1 false
  br i1 %or.cond, label %691, label %692

691:                                              ; preds = %687
  store ptr %613, ptr %249, align 8, !tbaa !48
  br label %692

692:                                              ; preds = %691, %687
  %693 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull @.str.19)
  %694 = invoke i64 @ggml_nbytes(ptr noundef nonnull %613)
          to label %695 unwind label %.loopexit

695:                                              ; preds = %692
  %spec.select = select i1 %693, i8 1, i8 %.0255
  %696 = add i64 %694, %.0261
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %65) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %64) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %63) #7
  br label %557

697:                                              ; preds = %.loopexit, %.loopexit.split-lp, %624, %608, %606
  %.pn345.pn = phi { ptr, i32 } [ %609, %608 ], [ %607, %606 ], [ %625, %624 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #7
  br label %698

698:                                              ; preds = %697, %604
  %.pn345.pn.pn = phi { ptr, i32 } [ %.pn345.pn, %697 ], [ %605, %604 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #7
  br label %699

699:                                              ; preds = %698, %588
  %.pn349 = phi { ptr, i32 } [ %589, %588 ], [ %.pn345.pn.pn, %698 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #7
  br label %700

700:                                              ; preds = %699, %573
  %.pn349.pn = phi { ptr, i32 } [ %.pn349, %699 ], [ %574, %573 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %65) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %64) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %63) #7
  call void @_ZNSt6vectorIcSaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %62) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %62) #7
  br label %707

701:                                              ; preds = %600, %620, %636, %663
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %65) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %64) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %63) #7
  call void @_ZNSt6vectorIcSaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %62) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %62) #7
  br label %.critedge398

702:                                              ; preds = %563
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %65) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %64) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %63) #7
  %703 = uitofp i64 %.0261 to double
  %704 = fmul double %703, 0x3F50000000000000
  %705 = fmul double %704, 0x3F50000000000000
  %706 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.40, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabii, double noundef %705)
  call void @_ZNSt6vectorIcSaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %62) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %62) #7
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv(ptr noundef nonnull align 8 dereferenceable(256) %6)
          to label %.critedge398 unwind label %214

.critedge398:                                     ; preds = %701, %.thread, %528, %203, %89, %182, %702, %217, %79
  %.11 = phi i1 [ false, %79 ], [ false, %89 ], [ false, %182 ], [ false, %701 ], [ false, %217 ], [ false, %203 ], [ true, %702 ], [ false, %528 ], [ false, %.thread ]
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %6) #7
  call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %6) #7
  ret i1 %.11

707:                                              ; preds = %189, %531, %571, %569, %279, %285, %290, %295, %300, %305, %513, %505, %497, %489, %481, %473, %465, %457, %449, %441, %433, %425, %416, %700, %214, %206, %188, %138, %93, %83
  %.pn385.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %188 ], [ %139, %138 ], [ %94, %93 ], [ %84, %83 ], [ %190, %189 ], [ %215, %214 ], [ %.pn349.pn, %700 ], [ %207, %206 ], [ %.pn335, %305 ], [ %.pn333, %300 ], [ %.pn331, %295 ], [ %.pn329, %290 ], [ %.pn327, %285 ], [ %280, %279 ], [ %.pn385.pn, %513 ], [ %.pn382.pn, %505 ], [ %.pn379.pn, %497 ], [ %.pn376.pn, %489 ], [ %.pn373.pn, %481 ], [ %.pn370.pn, %473 ], [ %.pn367.pn, %465 ], [ %.pn364.pn, %457 ], [ %.pn361.pn, %449 ], [ %.pn358.pn, %441 ], [ %.pn355.pn, %433 ], [ %.pn352.pn, %425 ], [ %417, %416 ], [ %532, %531 ], [ %572, %571 ], [ %570, %569 ]
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %6) #7
  call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %6) #7
  resume { ptr, i32 } %.pn385.pn.pn.pn.pn.pn.pn
}

; Function Attrs: nofree nounwind
declare noundef i32 @printf(ptr nocapture noundef readonly, ...) local_unnamed_addr #3

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

; Function Attrs: mustprogress uwtable
declare void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv(ptr noundef nonnull align 8 dereferenceable(264)) local_unnamed_addr #2 align 2

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #3

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef, i64 noundef) local_unnamed_addr #4

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapIiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIiESaISt4pairIKiS5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #2 align 2

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

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

declare i32 @ggml_ftype_to_ggml_type(i32 noundef) local_unnamed_addr #4

declare void @ggml_log_set(ptr noundef, ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare hidden void @_ZL25ggml_log_callback_default14ggml_log_levelPKcPv(i32 noundef, ptr noundef, ptr noundef) #2

declare i64 @ggml_tensor_overhead() local_unnamed_addr #4

declare ptr @ggml_init(ptr noundef byval(%struct.ggml_init_params) align 8) local_unnamed_addr #4

declare ptr @ggml_backend_cpu_init() local_unnamed_addr #4

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

declare ptr @ggml_new_tensor_1d(ptr noundef, i32 noundef, i64 noundef) local_unnamed_addr #4

declare ptr @ggml_new_tensor_2d(ptr noundef, i32 noundef, i64 noundef, i64 noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, i32 noundef) local_unnamed_addr #6

declare ptr @ggml_backend_alloc_ctx_tensors(ptr noundef, ptr noundef) local_unnamed_addr #4

declare i64 @ggml_backend_buffer_get_size(ptr noundef) local_unnamed_addr #4

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

; Function Attrs: mustprogress nounwind uwtable
declare noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264)) local_unnamed_addr #1 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorEESD_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEE4findERSB_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixERSB_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

declare ptr @ggml_set_name(ptr noundef, ptr noundef) local_unnamed_addr #4

declare i64 @ggml_nelements(ptr noundef) local_unnamed_addr #4

declare i64 @ggml_type_size(i32 noundef) local_unnamed_addr #4

declare i64 @ggml_blck_size(i32 noundef) local_unnamed_addr #4

declare i64 @ggml_nbytes(ptr noundef) local_unnamed_addr #4

declare zeroext i1 @ggml_backend_buffer_is_host(ptr noundef) local_unnamed_addr #4

declare void @ggml_backend_tensor_set(ptr noundef, ptr noundef, i64 noundef, i64 noundef) local_unnamed_addr #4

; 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 #6

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"vtable pointer", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = !{!9, !9, i64 0}
!9 = !{!"any pointer", !10, i64 0}
!10 = !{!"omnipotent char", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"int", !10, i64 0}
!13 = !{!14, !12, i64 20}
!14 = !{!"_ZTS12gpt2_hparams", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !12, i64 20, !15, i64 24}
!15 = !{!"float", !10, i64 0}
!16 = !{!14, !12, i64 0}
!17 = !{!14, !12, i64 4}
!18 = !{!14, !12, i64 8}
!19 = !{!14, !12, i64 12}
!20 = !{!14, !12, i64 16}
!21 = !{!22, !12, i64 0}
!22 = !{!"_ZTS10gpt2_model", !14, i64 0, !9, i64 32, !9, i64 40, !9, i64 48, !9, i64 56, !9, i64 64, !23, i64 72, !9, i64 96, !9, i64 104, !9, i64 112, !9, i64 120, !9, i64 128, !9, i64 136, !9, i64 144, !27, i64 152}
!23 = !{!"_ZTSSt6vectorI10gpt2_layerSaIS0_EE", !24, i64 0}
!24 = !{!"_ZTSSt12_Vector_baseI10gpt2_layerSaIS0_EE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseI10gpt2_layerSaIS0_EE12_Vector_implE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseI10gpt2_layerSaIS0_EE17_Vector_impl_dataE", !9, i64 0, !9, i64 8, !9, i64 16}
!27 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEE", !28, i64 0}
!28 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_P11ggml_tensorESt10_Select1stISA_ESt4lessIS5_ESaISA_EE", !29, i64 0}
!29 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_P11ggml_tensorESt10_Select1stISA_ESt4lessIS5_ESaISA_EE13_Rb_tree_implISE_Lb1EEE", !30, i64 0, !32, i64 8}
!30 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !31, i64 0}
!31 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!32 = !{!"_ZTSSt15_Rb_tree_header", !33, i64 0, !35, i64 32}
!33 = !{!"_ZTSSt18_Rb_tree_node_base", !34, i64 0, !9, i64 8, !9, i64 16, !9, i64 24}
!34 = !{!"_ZTSSt14_Rb_tree_color", !10, i64 0}
!35 = !{!"long", !10, i64 0}
!36 = distinct !{!36, !37}
!37 = !{!"llvm.loop.mustprogress"}
!38 = !{!22, !12, i64 20}
!39 = !{!22, !12, i64 16}
!40 = !{!35, !35, i64 0}
!41 = !{!42, !42, i64 0}
!42 = !{!"bool", !10, i64 0}
!43 = !{!22, !9, i64 128}
!44 = !{!22, !9, i64 32}
!45 = !{!22, !9, i64 40}
!46 = !{!22, !9, i64 48}
!47 = !{!22, !9, i64 56}
!48 = !{!22, !9, i64 64}
!49 = !{!50, !9, i64 0}
!50 = !{!"_ZTS10gpt2_layer", !9, i64 0, !9, i64 8, !9, i64 16, !9, i64 24, !9, i64 32, !9, i64 40, !9, i64 48, !9, i64 56, !9, i64 64, !9, i64 72, !9, i64 80, !9, i64 88}
!51 = !{!50, !9, i64 8}
!52 = !{!50, !9, i64 16}
!53 = !{!50, !9, i64 24}
!54 = !{!50, !9, i64 32}
!55 = !{!50, !9, i64 40}
!56 = !{!50, !9, i64 48}
!57 = !{!50, !9, i64 56}
!58 = !{!50, !9, i64 64}
!59 = !{!50, !9, i64 72}
!60 = !{!50, !9, i64 80}
!61 = !{!50, !9, i64 88}
!62 = distinct !{!62, !37}
!63 = !{!22, !9, i64 136}
!64 = !{!22, !12, i64 4}
!65 = !{!22, !9, i64 96}
!66 = !{!22, !9, i64 104}
!67 = !{!22, !9, i64 144}
!68 = distinct !{!68, !37}
!69 = !{!70, !71, i64 0}
!70 = !{!"_ZTS11ggml_tensor", !71, i64 0, !9, i64 8, !10, i64 16, !10, i64 48, !72, i64 80, !10, i64 84, !12, i64 148, !10, i64 152, !9, i64 232, !35, i64 240, !9, i64 248, !10, i64 256, !9, i64 320, !10, i64 328}
!71 = !{!"_ZTS9ggml_type", !10, i64 0}
!72 = !{!"_ZTS7ggml_op", !10, i64 0}
!73 = !{!70, !9, i64 248}


; Effective O3 passes: ConstraintEliminationPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass