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

; 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.21 }
%union.anon.21 = 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.22" = type { %"struct.std::_Vector_base.23" }
%"struct.std::_Vector_base.23" = 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 }
%"class.std::map.35" = type { %"class.std::_Rb_tree.36" }
%"class.std::_Rb_tree.36" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, ggml_backend *>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, ggml_backend *>>, 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_backend *>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, ggml_backend *>>, 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.std::_Rb_tree_iterator" = type { ptr }
%"struct.std::pair" = type { %"class.std::__cxx11::basic_string", ptr }
%"class.std::map.40" = type { %"class.std::_Rb_tree.41" }
%"class.std::_Rb_tree.41" = type { %"struct.std::_Rb_tree<ggml_backend *, std::pair<ggml_backend *const, ggml_tallocr>, std::_Select1st<std::pair<ggml_backend *const, ggml_tallocr>>, std::less<ggml_backend *>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<ggml_backend *, std::pair<ggml_backend *const, ggml_tallocr>, std::_Select1st<std::pair<ggml_backend *const, ggml_tallocr>>, std::less<ggml_backend *>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%struct.ggml_tallocr = type { ptr, ptr, i64, i64 }
%"struct.std::pair.49" = type { ptr, %struct.ggml_tallocr }
%"struct.std::pair.46" = type <{ %"struct.std::_Rb_tree_iterator.48", i8, [7 x i8] }>
%"struct.std::_Rb_tree_iterator.48" = type { ptr }
%struct.gpt2_model = type { %struct.gpt2_hparams, ptr, ptr, ptr, ptr, ptr, %"class.std::vector.3", ptr, ptr, ptr, %"class.std::vector.8", %"class.std::vector.13", ptr, ptr, %"class.std::map", ptr, ptr }
%struct.gpt2_hparams = type { i32, i32, i32, i32, i32, i32, float }
%"class.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = 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::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = type { %"struct.std::_Vector_base<ggml_backend *, std::allocator<ggml_backend *>>::_Vector_impl" }
%"struct.std::_Vector_base<ggml_backend *, std::allocator<ggml_backend *>>::_Vector_impl" = type { %"struct.std::_Vector_base<ggml_backend *, std::allocator<ggml_backend *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ggml_backend *, std::allocator<ggml_backend *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<ggml_backend_buffer *, std::allocator<ggml_backend_buffer *>>::_Vector_impl" }
%"struct.std::_Vector_base<ggml_backend_buffer *, std::allocator<ggml_backend_buffer *>>::_Vector_impl" = type { %"struct.std::_Vector_base<ggml_backend_buffer *, std::allocator<ggml_backend_buffer *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ggml_backend_buffer *, std::allocator<ggml_backend_buffer *>>::_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.gpt_vocab = type { %"class.std::map.24", %"class.std::map.29", %"class.std::vector" }
%"class.std::map.24" = type { %"class.std::_Rb_tree.25" }
%"class.std::_Rb_tree.25" = 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.29" = type { %"class.std::_Rb_tree.30" }
%"class.std::_Rb_tree.30" = 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.gpt_params = type { i32, i32, i32, i32, i32, i32, i32, i8, i32, float, float, i32, float, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i8, i32 }
%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] }
%"struct.std::pair.51" = type { ptr, %struct.ggml_tallocr }

@.str = external hidden unnamed_addr constant [29 x i8], align 1
@__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params = 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 [13 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [8 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 [15 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [15 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 [12 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [21 x i8], align 1
@__const._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params.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
@.str.41 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [33 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
declare dso_local void @_Z13init_backendsR10gpt2_modelRK10gpt_params(ptr noundef nonnull align 8 dereferenceable(248), ptr noundef nonnull align 8 dereferenceable(160)) #2

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(248) %1, ptr noundef nonnull align 8 dereferenceable(120) %2, ptr noundef nonnull align 8 dereferenceable(160) %3) #2 personality ptr @__gxx_personality_v0 {
  %5 = alloca i1, align 1
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca %"class.std::basic_ifstream", align 8
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::vector.22", align 8
  %20 = alloca %"class.std::allocator.0", align 1
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca ptr, align 8
  %25 = alloca i64, align 8
  %26 = alloca %struct.ggml_init_params, align 8
  %27 = alloca %struct.ggml_init_params, align 8
  %28 = alloca ptr, align 8
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::allocator.0", align 1
  %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 i32, align 4
  %44 = alloca ptr, 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 %"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 ptr, align 8
  %82 = alloca ptr, align 8
  %83 = alloca %"class.std::map.35", align 8
  %84 = alloca i32, align 4
  %85 = alloca ptr, align 8
  %86 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %87 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %88 = alloca %"struct.std::pair", align 8
  %89 = alloca ptr, align 8
  %90 = alloca %"class.std::__cxx11::basic_string", align 8
  %91 = alloca i32, align 4
  %92 = alloca %"class.std::__cxx11::basic_string", align 8
  %93 = alloca %"class.std::map.40", align 8
  %94 = alloca ptr, align 8
  %95 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %96 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %97 = alloca ptr, align 8
  %98 = alloca i64, align 8
  %99 = alloca ptr, align 8
  %100 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %101 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %102 = alloca %"struct.std::pair", align 8
  %103 = alloca ptr, align 8
  %104 = alloca %struct.ggml_tallocr, align 8
  %105 = alloca %"struct.std::pair.49", align 8
  %106 = alloca %"struct.std::pair.46", align 8
  %107 = alloca ptr, align 8
  %108 = alloca ptr, align 8
  %109 = alloca i32, align 4
  %110 = alloca i32, align 4
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca i64, align 8
  %115 = alloca ptr, align 8
  %116 = alloca %struct.ggml_tallocr, align 8
  %117 = alloca i64, align 8
  %118 = alloca i8, align 1
  %119 = alloca %"class.std::vector.22", align 8
  %120 = alloca i32, align 4
  %121 = alloca i32, align 4
  %122 = alloca i32, align 4
  %123 = alloca i32, align 4
  %124 = alloca [2 x i32], align 4
  %125 = alloca i32, align 4
  %126 = alloca %"class.std::__cxx11::basic_string", align 8
  %127 = alloca %"class.std::allocator.0", align 1
  %128 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %129 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %130 = alloca ptr, align 8
  %131 = alloca i64, align 8
  %132 = alloca ptr, align 8
  %133 = alloca ptr, align 8
  %134 = alloca %"struct.std::_Rb_tree_iterator.48", align 8
  %135 = alloca ptr, align 8
  %136 = alloca %"struct.std::_Rb_tree_iterator.48", align 8
  %137 = alloca %"class.std::__cxx11::basic_string", align 8
  %138 = alloca %"class.std::allocator.0", align 1
  %139 = alloca i64, align 8
  %140 = alloca ptr, align 8
  %141 = alloca %struct.ggml_tallocr, align 8
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !5
  store ptr %2, ptr %8, align 8, !tbaa !5
  store ptr %3, ptr %9, align 8, !tbaa !5
  %142 = load ptr, ptr %6, align 8, !tbaa !5
  %143 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %142) #8
  %144 = call i32 (ptr, ...) @printf(ptr noundef @.str, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, ptr noundef %143)
  call void @llvm.lifetime.start.p0(i64 520, ptr %10) #8
  %145 = load ptr, ptr %6, align 8, !tbaa !5
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256) %10, ptr noundef nonnull align 8 dereferenceable(32) %145, i32 noundef 4)
  %146 = load ptr, ptr %10, align 8, !tbaa !9
  %147 = getelementptr i8, ptr %146, i64 -24
  %148 = load i64, ptr %147, align 8
  %149 = getelementptr inbounds i8, ptr %10, i64 %148
  %150 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv(ptr noundef nonnull align 8 dereferenceable(264) %149)
          to label %151 unwind label %157

151:                                              ; preds = %4
  br i1 %150, label %152, label %161

152:                                              ; preds = %151
  %153 = load ptr, ptr @stderr, align 8, !tbaa !5
  %154 = load ptr, ptr %6, align 8, !tbaa !5
  %155 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %154) #8
  %156 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %153, ptr noundef @.str.1, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, ptr noundef %155) #8
  store i1 false, ptr %5, align 1
  store i32 1, ptr %13, align 4
  br label %1778

157:                                              ; preds = %4
  %158 = landingpad { ptr, i32 }
          cleanup
  %159 = extractvalue { ptr, i32 } %158, 0
  store ptr %159, ptr %11, align 8
  %160 = extractvalue { ptr, i32 } %158, 1
  store i32 %160, ptr %12, align 4
  br label %1780

161:                                              ; preds = %151
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #8
  %162 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef %14, i64 noundef 4)
          to label %163 unwind label %171

163:                                              ; preds = %161
  %164 = load i32, ptr %14, align 4, !tbaa !11
  %165 = icmp ne i32 %164, 1734831468
  br i1 %165, label %166, label %175

166:                                              ; preds = %163
  %167 = load ptr, ptr @stderr, align 8, !tbaa !5
  %168 = load ptr, ptr %6, align 8, !tbaa !5
  %169 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %168) #8
  %170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %167, ptr noundef @.str.2, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, ptr noundef %169) #8
  store i1 false, ptr %5, align 1
  store i32 1, ptr %13, align 4
  br label %176

171:                                              ; preds = %161
  %172 = landingpad { ptr, i32 }
          cleanup
  %173 = extractvalue { ptr, i32 } %172, 0
  store ptr %173, ptr %11, align 8
  %174 = extractvalue { ptr, i32 } %172, 1
  store i32 %174, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #8
  br label %1780

175:                                              ; preds = %163
  store i32 0, ptr %13, align 4
  br label %176

176:                                              ; preds = %175, %166
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #8
  %177 = load i32, ptr %13, align 4
  switch i32 %177, label %1778 [
    i32 0, label %178
  ]

178:                                              ; preds = %176
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #8
  %179 = load ptr, ptr %7, align 8, !tbaa !5
  %180 = getelementptr inbounds %struct.gpt2_model, ptr %179, i32 0, i32 0
  store ptr %180, ptr %15, align 8, !tbaa !5
  %181 = load ptr, ptr %15, align 8, !tbaa !5
  %182 = getelementptr inbounds %struct.gpt2_hparams, ptr %181, i32 0, i32 0
  %183 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef %182, i64 noundef 4)
          to label %184 unwind label %264

184:                                              ; preds = %178
  %185 = load ptr, ptr %15, align 8, !tbaa !5
  %186 = getelementptr inbounds %struct.gpt2_hparams, ptr %185, i32 0, i32 1
  %187 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef %186, i64 noundef 4)
          to label %188 unwind label %264

188:                                              ; preds = %184
  %189 = load ptr, ptr %15, align 8, !tbaa !5
  %190 = getelementptr inbounds %struct.gpt2_hparams, ptr %189, i32 0, i32 2
  %191 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef %190, i64 noundef 4)
          to label %192 unwind label %264

192:                                              ; preds = %188
  %193 = load ptr, ptr %15, align 8, !tbaa !5
  %194 = getelementptr inbounds %struct.gpt2_hparams, ptr %193, i32 0, i32 3
  %195 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef %194, i64 noundef 4)
          to label %196 unwind label %264

196:                                              ; preds = %192
  %197 = load ptr, ptr %15, align 8, !tbaa !5
  %198 = getelementptr inbounds %struct.gpt2_hparams, ptr %197, i32 0, i32 4
  %199 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef %198, i64 noundef 4)
          to label %200 unwind label %264

200:                                              ; preds = %196
  %201 = load ptr, ptr %15, align 8, !tbaa !5
  %202 = getelementptr inbounds %struct.gpt2_hparams, ptr %201, i32 0, i32 5
  %203 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef %202, i64 noundef 4)
          to label %204 unwind label %264

204:                                              ; preds = %200
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #8
  %205 = load ptr, ptr %15, align 8, !tbaa !5
  %206 = getelementptr inbounds %struct.gpt2_hparams, ptr %205, i32 0, i32 5
  %207 = load i32, ptr %206, align 4, !tbaa !13
  %208 = sdiv i32 %207, 1000
  store i32 %208, ptr %16, align 4, !tbaa !11
  %209 = load ptr, ptr %15, align 8, !tbaa !5
  %210 = getelementptr inbounds %struct.gpt2_hparams, ptr %209, i32 0, i32 0
  %211 = load i32, ptr %210, align 4, !tbaa !16
  %212 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.3, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, i32 noundef %211)
          to label %213 unwind label %268

213:                                              ; preds = %204
  %214 = load ptr, ptr %15, align 8, !tbaa !5
  %215 = getelementptr inbounds %struct.gpt2_hparams, ptr %214, i32 0, i32 1
  %216 = load i32, ptr %215, align 4, !tbaa !17
  %217 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.4, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, i32 noundef %216)
          to label %218 unwind label %268

218:                                              ; preds = %213
  %219 = load ptr, ptr %15, align 8, !tbaa !5
  %220 = getelementptr inbounds %struct.gpt2_hparams, ptr %219, i32 0, i32 2
  %221 = load i32, ptr %220, align 4, !tbaa !18
  %222 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.5, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, i32 noundef %221)
          to label %223 unwind label %268

223:                                              ; preds = %218
  %224 = load ptr, ptr %15, align 8, !tbaa !5
  %225 = getelementptr inbounds %struct.gpt2_hparams, ptr %224, i32 0, i32 3
  %226 = load i32, ptr %225, align 4, !tbaa !19
  %227 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.6, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, i32 noundef %226)
          to label %228 unwind label %268

228:                                              ; preds = %223
  %229 = load ptr, ptr %15, align 8, !tbaa !5
  %230 = getelementptr inbounds %struct.gpt2_hparams, ptr %229, i32 0, i32 4
  %231 = load i32, ptr %230, align 4, !tbaa !20
  %232 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.7, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, i32 noundef %231)
          to label %233 unwind label %268

233:                                              ; preds = %228
  %234 = load ptr, ptr %15, align 8, !tbaa !5
  %235 = getelementptr inbounds %struct.gpt2_hparams, ptr %234, i32 0, i32 5
  %236 = load i32, ptr %235, align 4, !tbaa !13
  %237 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.8, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, i32 noundef %236)
          to label %238 unwind label %268

238:                                              ; preds = %233
  %239 = load i32, ptr %16, align 4, !tbaa !11
  %240 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.9, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, i32 noundef %239)
          to label %241 unwind label %268

241:                                              ; preds = %238
  %242 = load ptr, ptr %15, align 8, !tbaa !5
  %243 = getelementptr inbounds %struct.gpt2_hparams, ptr %242, i32 0, i32 5
  %244 = load i32, ptr %243, align 4, !tbaa !13
  %245 = srem i32 %244, 1000
  store i32 %245, ptr %243, align 4, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #8
  store i32 0, ptr %17, align 4, !tbaa !11
  %246 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef %17, i64 noundef 4)
          to label %247 unwind label %273

247:                                              ; preds = %241
  %248 = load i32, ptr %17, align 4, !tbaa !11
  %249 = load ptr, ptr %7, align 8, !tbaa !5
  %250 = getelementptr inbounds %struct.gpt2_model, ptr %249, i32 0, i32 0
  %251 = getelementptr inbounds %struct.gpt2_hparams, ptr %250, i32 0, i32 0
  %252 = load i32, ptr %251, align 8, !tbaa !21
  %253 = icmp ne i32 %248, %252
  br i1 %253, label %254, label %277

254:                                              ; preds = %247
  %255 = load ptr, ptr @stderr, align 8, !tbaa !5
  %256 = load ptr, ptr %6, align 8, !tbaa !5
  %257 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %256) #8
  %258 = load i32, ptr %17, align 4, !tbaa !11
  %259 = load ptr, ptr %7, align 8, !tbaa !5
  %260 = getelementptr inbounds %struct.gpt2_model, ptr %259, i32 0, i32 0
  %261 = getelementptr inbounds %struct.gpt2_hparams, ptr %260, i32 0, i32 0
  %262 = load i32, ptr %261, align 8, !tbaa !21
  %263 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %255, ptr noundef @.str.10, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, ptr noundef %257, i32 noundef %258, i32 noundef %262) #8
  store i1 false, ptr %5, align 1
  store i32 1, ptr %13, align 4
  br label %323

264:                                              ; preds = %200, %196, %192, %188, %184, %178
  %265 = landingpad { ptr, i32 }
          cleanup
  %266 = extractvalue { ptr, i32 } %265, 0
  store ptr %266, ptr %11, align 8
  %267 = extractvalue { ptr, i32 } %265, 1
  store i32 %267, ptr %12, align 4
  br label %272

268:                                              ; preds = %238, %233, %228, %223, %218, %213, %204
  %269 = landingpad { ptr, i32 }
          cleanup
  %270 = extractvalue { ptr, i32 } %269, 0
  store ptr %270, ptr %11, align 8
  %271 = extractvalue { ptr, i32 } %269, 1
  store i32 %271, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #8
  br label %272

272:                                              ; preds = %268, %264
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #8
  br label %1780

273:                                              ; preds = %241
  %274 = landingpad { ptr, i32 }
          cleanup
  %275 = extractvalue { ptr, i32 } %274, 0
  store ptr %275, ptr %11, align 8
  %276 = extractvalue { ptr, i32 } %274, 1
  store i32 %276, ptr %12, align 4
  br label %344

277:                                              ; preds = %247
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %19) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %20) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #8
  invoke void @_ZNSt6vectorIcSaIcEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %19, i64 noundef 128, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %278 unwind label %284

278:                                              ; preds = %277
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #8
  store i32 0, ptr %21, align 4, !tbaa !11
  br label %279

279:                                              ; preds = %315, %278
  %280 = load i32, ptr %21, align 4, !tbaa !11
  %281 = load i32, ptr %17, align 4, !tbaa !11
  %282 = icmp slt i32 %280, %281
  br i1 %282, label %288, label %283

283:                                              ; preds = %279
  store i32 2, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #8
  br label %322

284:                                              ; preds = %277
  %285 = landingpad { ptr, i32 }
          cleanup
  %286 = extractvalue { ptr, i32 } %285, 0
  store ptr %286, ptr %11, align 8
  %287 = extractvalue { ptr, i32 } %285, 1
  store i32 %287, ptr %12, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #8
  br label %343

288:                                              ; preds = %279
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #8
  %289 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef %22, i64 noundef 4)
          to label %290 unwind label %318

290:                                              ; preds = %288
  %291 = load i32, ptr %22, align 4, !tbaa !11
  %292 = zext i32 %291 to i64
  invoke void @_ZNSt6vectorIcSaIcEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %19, i64 noundef %292)
          to label %293 unwind label %318

293:                                              ; preds = %290
  %294 = call noundef ptr @_ZNSt6vectorIcSaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %19) #8
  %295 = load i32, ptr %22, align 4, !tbaa !11
  %296 = zext i32 %295 to i64
  %297 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef %294, i64 noundef %296)
          to label %298 unwind label %318

298:                                              ; preds = %293
  %299 = call noundef ptr @_ZNSt6vectorIcSaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %19) #8
  %300 = load i32, ptr %22, align 4, !tbaa !11
  %301 = zext i32 %300 to i64
  %302 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignEPKcm(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef %299, i64 noundef %301)
          to label %303 unwind label %318

303:                                              ; preds = %298
  %304 = load i32, ptr %21, align 4, !tbaa !11
  %305 = load ptr, ptr %8, align 8, !tbaa !5
  %306 = getelementptr inbounds %struct.gpt_vocab, ptr %305, i32 0, i32 0
  %307 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %306, ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %308 unwind label %318

308:                                              ; preds = %303
  store i32 %304, ptr %307, align 4, !tbaa !11
  %309 = load ptr, ptr %8, align 8, !tbaa !5
  %310 = getelementptr inbounds %struct.gpt_vocab, ptr %309, i32 0, i32 1
  %311 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapIiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIiESaISt4pairIKiS5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %310, ptr noundef nonnull align 4 dereferenceable(4) %21)
          to label %312 unwind label %318

312:                                              ; preds = %308
  %313 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %311, ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %314 unwind label %318

314:                                              ; preds = %312
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #8
  br label %315

315:                                              ; preds = %314
  %316 = load i32, ptr %21, align 4, !tbaa !11
  %317 = add nsw i32 %316, 1
  store i32 %317, ptr %21, align 4, !tbaa !11
  br label %279, !llvm.loop !44

318:                                              ; preds = %312, %308, %303, %298, %293, %290, %288
  %319 = landingpad { ptr, i32 }
          cleanup
  %320 = extractvalue { ptr, i32 } %319, 0
  store ptr %320, ptr %11, align 8
  %321 = extractvalue { ptr, i32 } %319, 1
  store i32 %321, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #8
  call void @_ZNSt6vectorIcSaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #8
  br label %343

322:                                              ; preds = %283
  call void @_ZNSt6vectorIcSaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %19) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #8
  store i32 0, ptr %13, align 4
  br label %323

323:                                              ; preds = %322, %254
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #8
  %324 = load i32, ptr %13, align 4
  switch i32 %324, label %1778 [
    i32 0, label %325
  ]

325:                                              ; preds = %323
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #8
  %326 = load ptr, ptr %7, align 8, !tbaa !5
  %327 = getelementptr inbounds %struct.gpt2_model, ptr %326, i32 0, i32 0
  %328 = getelementptr inbounds %struct.gpt2_hparams, ptr %327, i32 0, i32 5
  %329 = load i32, ptr %328, align 4, !tbaa !46
  %330 = invoke i32 @ggml_ftype_to_ggml_type(i32 noundef %329)
          to label %331 unwind label %345

331:                                              ; preds = %325
  store i32 %330, ptr %23, align 4, !tbaa !47
  %332 = load i32, ptr %23, align 4, !tbaa !47
  %333 = icmp eq i32 %332, 39
  br i1 %333, label %334, label %349

334:                                              ; preds = %331
  %335 = load ptr, ptr @stderr, align 8, !tbaa !5
  %336 = load ptr, ptr %6, align 8, !tbaa !5
  %337 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %336) #8
  %338 = load ptr, ptr %7, align 8, !tbaa !5
  %339 = getelementptr inbounds %struct.gpt2_model, ptr %338, i32 0, i32 0
  %340 = getelementptr inbounds %struct.gpt2_hparams, ptr %339, i32 0, i32 5
  %341 = load i32, ptr %340, align 4, !tbaa !46
  %342 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %335, ptr noundef @.str.11, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, ptr noundef %337, i32 noundef %341) #8
  store i1 false, ptr %5, align 1
  store i32 1, ptr %13, align 4
  br label %1776

343:                                              ; preds = %318, %284
  call void @llvm.lifetime.end.p0(i64 24, ptr %19) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #8
  br label %344

344:                                              ; preds = %343, %273
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #8
  br label %1780

345:                                              ; preds = %325
  %346 = landingpad { ptr, i32 }
          cleanup
  %347 = extractvalue { ptr, i32 } %346, 0
  store ptr %347, ptr %11, align 8
  %348 = extractvalue { ptr, i32 } %346, 1
  store i32 %348, ptr %12, align 4
  br label %1777

349:                                              ; preds = %331
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #8
  %350 = load ptr, ptr %7, align 8, !tbaa !5
  %351 = getelementptr inbounds %struct.gpt2_model, ptr %350, i32 0, i32 9
  store ptr %351, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #8
  %352 = load ptr, ptr %7, align 8, !tbaa !5
  %353 = getelementptr inbounds %struct.gpt2_model, ptr %352, i32 0, i32 0
  %354 = getelementptr inbounds %struct.gpt2_hparams, ptr %353, i32 0, i32 4
  %355 = load i32, ptr %354, align 8, !tbaa !49
  %356 = mul nsw i32 12, %355
  %357 = add nsw i32 11, %356
  %358 = sext i32 %357 to i64
  store i64 %358, ptr %25, align 8, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 24, ptr %26) #8
  %359 = getelementptr inbounds %struct.ggml_init_params, ptr %26, i32 0, i32 0
  %360 = invoke i64 @ggml_tensor_overhead()
          to label %361 unwind label %377

361:                                              ; preds = %349
  %362 = load i64, ptr %25, align 8, !tbaa !50
  %363 = mul i64 %360, %362
  store i64 %363, ptr %359, align 8, !tbaa !51
  %364 = getelementptr inbounds %struct.ggml_init_params, ptr %26, i32 0, i32 1
  store ptr null, ptr %364, align 8, !tbaa !54
  %365 = getelementptr inbounds %struct.ggml_init_params, ptr %26, i32 0, i32 2
  store i8 1, ptr %365, align 8, !tbaa !55
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %27, ptr align 8 %26, i64 24, i1 false), !tbaa.struct !56
  %366 = invoke ptr @ggml_init(ptr noundef byval(%struct.ggml_init_params) align 8 %27)
          to label %367 unwind label %377

367:                                              ; preds = %361
  %368 = load ptr, ptr %7, align 8, !tbaa !5
  %369 = getelementptr inbounds %struct.gpt2_model, ptr %368, i32 0, i32 9
  store ptr %366, ptr %369, align 8, !tbaa !58
  %370 = load ptr, ptr %7, align 8, !tbaa !5
  %371 = getelementptr inbounds %struct.gpt2_model, ptr %370, i32 0, i32 9
  %372 = load ptr, ptr %371, align 8, !tbaa !58
  %373 = icmp ne ptr %372, null
  br i1 %373, label %381, label %374

374:                                              ; preds = %367
  %375 = load ptr, ptr @stderr, align 8, !tbaa !5
  %376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %375, ptr noundef @.str.12, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params) #8
  store i1 false, ptr %5, align 1
  store i32 1, ptr %13, align 4
  br label %382

377:                                              ; preds = %361, %349
  %378 = landingpad { ptr, i32 }
          cleanup
  %379 = extractvalue { ptr, i32 } %378, 0
  store ptr %379, ptr %11, align 8
  %380 = extractvalue { ptr, i32 } %378, 1
  store i32 %380, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  br label %1775

381:                                              ; preds = %367
  store i32 0, ptr %13, align 4
  br label %382

382:                                              ; preds = %381, %374
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  %383 = load i32, ptr %13, align 4
  switch i32 %383, label %1774 [
    i32 0, label %384
  ]

384:                                              ; preds = %382
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #8
  %385 = load ptr, ptr %7, align 8, !tbaa !5
  %386 = getelementptr inbounds %struct.gpt2_model, ptr %385, i32 0, i32 0
  store ptr %386, ptr %28, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #8
  %387 = load ptr, ptr %28, align 8, !tbaa !5
  %388 = getelementptr inbounds %struct.gpt2_hparams, ptr %387, i32 0, i32 2
  %389 = load i32, ptr %388, align 4, !tbaa !18
  store i32 %389, ptr %29, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #8
  %390 = load ptr, ptr %28, align 8, !tbaa !5
  %391 = getelementptr inbounds %struct.gpt2_hparams, ptr %390, i32 0, i32 4
  %392 = load i32, ptr %391, align 4, !tbaa !20
  store i32 %392, ptr %30, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #8
  %393 = load ptr, ptr %28, align 8, !tbaa !5
  %394 = getelementptr inbounds %struct.gpt2_hparams, ptr %393, i32 0, i32 1
  %395 = load i32, ptr %394, align 4, !tbaa !17
  store i32 %395, ptr %31, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #8
  %396 = load ptr, ptr %28, align 8, !tbaa !5
  %397 = getelementptr inbounds %struct.gpt2_hparams, ptr %396, i32 0, i32 0
  %398 = load i32, ptr %397, align 4, !tbaa !16
  store i32 %398, ptr %32, align 4, !tbaa !11
  %399 = load ptr, ptr %7, align 8, !tbaa !5
  %400 = getelementptr inbounds %struct.gpt2_model, ptr %399, i32 0, i32 6
  %401 = load i32, ptr %30, align 4, !tbaa !11
  %402 = sext i32 %401 to i64
  invoke void @_ZNSt6vectorI10gpt2_layerSaIS0_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %400, i64 noundef %402)
          to label %403 unwind label %497

403:                                              ; preds = %384
  %404 = load ptr, ptr %24, align 8, !tbaa !5
  %405 = load ptr, ptr %404, align 8, !tbaa !5
  %406 = load i32, ptr %29, align 4, !tbaa !11
  %407 = sext i32 %406 to i64
  %408 = invoke ptr @ggml_new_tensor_1d(ptr noundef %405, i32 noundef 0, i64 noundef %407)
          to label %409 unwind label %497

409:                                              ; preds = %403
  %410 = load ptr, ptr %7, align 8, !tbaa !5
  %411 = getelementptr inbounds %struct.gpt2_model, ptr %410, i32 0, i32 1
  store ptr %408, ptr %411, align 8, !tbaa !59
  %412 = load ptr, ptr %24, align 8, !tbaa !5
  %413 = load ptr, ptr %412, align 8, !tbaa !5
  %414 = load i32, ptr %29, align 4, !tbaa !11
  %415 = sext i32 %414 to i64
  %416 = invoke ptr @ggml_new_tensor_1d(ptr noundef %413, i32 noundef 0, i64 noundef %415)
          to label %417 unwind label %497

417:                                              ; preds = %409
  %418 = load ptr, ptr %7, align 8, !tbaa !5
  %419 = getelementptr inbounds %struct.gpt2_model, ptr %418, i32 0, i32 2
  store ptr %416, ptr %419, align 8, !tbaa !60
  %420 = load ptr, ptr %24, align 8, !tbaa !5
  %421 = load ptr, ptr %420, align 8, !tbaa !5
  %422 = load i32, ptr %23, align 4, !tbaa !47
  %423 = load i32, ptr %29, align 4, !tbaa !11
  %424 = sext i32 %423 to i64
  %425 = load i32, ptr %32, align 4, !tbaa !11
  %426 = sext i32 %425 to i64
  %427 = invoke ptr @ggml_new_tensor_2d(ptr noundef %421, i32 noundef %422, i64 noundef %424, i64 noundef %426)
          to label %428 unwind label %497

428:                                              ; preds = %417
  %429 = load ptr, ptr %7, align 8, !tbaa !5
  %430 = getelementptr inbounds %struct.gpt2_model, ptr %429, i32 0, i32 3
  store ptr %427, ptr %430, align 8, !tbaa !61
  %431 = load ptr, ptr %24, align 8, !tbaa !5
  %432 = load ptr, ptr %431, align 8, !tbaa !5
  %433 = load i32, ptr %29, align 4, !tbaa !11
  %434 = sext i32 %433 to i64
  %435 = load i32, ptr %31, align 4, !tbaa !11
  %436 = sext i32 %435 to i64
  %437 = invoke ptr @ggml_new_tensor_2d(ptr noundef %432, i32 noundef 0, i64 noundef %434, i64 noundef %436)
          to label %438 unwind label %497

438:                                              ; preds = %428
  %439 = load ptr, ptr %7, align 8, !tbaa !5
  %440 = getelementptr inbounds %struct.gpt2_model, ptr %439, i32 0, i32 4
  store ptr %437, ptr %440, align 8, !tbaa !62
  %441 = load ptr, ptr %24, align 8, !tbaa !5
  %442 = load ptr, ptr %441, align 8, !tbaa !5
  %443 = load i32, ptr %23, align 4, !tbaa !47
  %444 = load i32, ptr %29, align 4, !tbaa !11
  %445 = sext i32 %444 to i64
  %446 = load i32, ptr %32, align 4, !tbaa !11
  %447 = sext i32 %446 to i64
  %448 = invoke ptr @ggml_new_tensor_2d(ptr noundef %442, i32 noundef %443, i64 noundef %445, i64 noundef %447)
          to label %449 unwind label %497

449:                                              ; preds = %438
  %450 = load ptr, ptr %7, align 8, !tbaa !5
  %451 = getelementptr inbounds %struct.gpt2_model, ptr %450, i32 0, i32 5
  store ptr %448, ptr %451, align 8, !tbaa !63
  %452 = load ptr, ptr %7, align 8, !tbaa !5
  %453 = getelementptr inbounds %struct.gpt2_model, ptr %452, i32 0, i32 1
  %454 = load ptr, ptr %453, align 8, !tbaa !59
  %455 = load ptr, ptr %7, align 8, !tbaa !5
  %456 = getelementptr inbounds %struct.gpt2_model, ptr %455, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %457 unwind label %501

457:                                              ; preds = %449
  %458 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %456, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %459 unwind label %505

459:                                              ; preds = %457
  store ptr %454, ptr %458, align 8, !tbaa !5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #8
  %460 = load ptr, ptr %7, align 8, !tbaa !5
  %461 = getelementptr inbounds %struct.gpt2_model, ptr %460, i32 0, i32 2
  %462 = load ptr, ptr %461, align 8, !tbaa !60
  %463 = load ptr, ptr %7, align 8, !tbaa !5
  %464 = getelementptr inbounds %struct.gpt2_model, ptr %463, 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.14, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %465 unwind label %510

465:                                              ; preds = %459
  %466 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %464, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %467 unwind label %514

467:                                              ; preds = %465
  store ptr %462, ptr %466, 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
  %468 = load ptr, ptr %7, align 8, !tbaa !5
  %469 = getelementptr inbounds %struct.gpt2_model, ptr %468, i32 0, i32 3
  %470 = load ptr, ptr %469, align 8, !tbaa !61
  %471 = load ptr, ptr %7, align 8, !tbaa !5
  %472 = getelementptr inbounds %struct.gpt2_model, ptr %471, 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.15, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %473 unwind label %519

473:                                              ; preds = %467
  %474 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %472, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %475 unwind label %523

475:                                              ; preds = %473
  store ptr %470, ptr %474, 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
  %476 = load ptr, ptr %7, align 8, !tbaa !5
  %477 = getelementptr inbounds %struct.gpt2_model, ptr %476, i32 0, i32 4
  %478 = load ptr, ptr %477, align 8, !tbaa !62
  %479 = load ptr, ptr %7, align 8, !tbaa !5
  %480 = getelementptr inbounds %struct.gpt2_model, ptr %479, 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.16, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %481 unwind label %528

481:                                              ; preds = %475
  %482 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %480, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %483 unwind label %532

483:                                              ; preds = %481
  store ptr %478, ptr %482, 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
  %484 = load ptr, ptr %7, align 8, !tbaa !5
  %485 = getelementptr inbounds %struct.gpt2_model, ptr %484, i32 0, i32 5
  %486 = load ptr, ptr %485, align 8, !tbaa !63
  %487 = load ptr, ptr %7, align 8, !tbaa !5
  %488 = getelementptr inbounds %struct.gpt2_model, ptr %487, 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.17, ptr noundef nonnull align 1 dereferenceable(1) %42)
          to label %489 unwind label %537

489:                                              ; preds = %483
  %490 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %488, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %491 unwind label %541

491:                                              ; preds = %489
  store ptr %486, ptr %490, 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
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #8
  store i32 0, ptr %43, align 4, !tbaa !11
  br label %492

492:                                              ; preds = %785, %491
  %493 = load i32, ptr %43, align 4, !tbaa !11
  %494 = load i32, ptr %30, align 4, !tbaa !11
  %495 = icmp slt i32 %493, %494
  br i1 %495, label %546, label %496

496:                                              ; preds = %492
  store i32 5, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #8
  br label %961

497:                                              ; preds = %438, %428, %417, %409, %403, %384
  %498 = landingpad { ptr, i32 }
          cleanup
  %499 = extractvalue { ptr, i32 } %498, 0
  store ptr %499, ptr %11, align 8
  %500 = extractvalue { ptr, i32 } %498, 1
  store i32 %500, ptr %12, align 4
  br label %992

501:                                              ; preds = %449
  %502 = landingpad { ptr, i32 }
          cleanup
  %503 = extractvalue { ptr, i32 } %502, 0
  store ptr %503, ptr %11, align 8
  %504 = extractvalue { ptr, i32 } %502, 1
  store i32 %504, ptr %12, align 4
  br label %509

505:                                              ; preds = %457
  %506 = landingpad { ptr, i32 }
          cleanup
  %507 = extractvalue { ptr, i32 } %506, 0
  store ptr %507, ptr %11, align 8
  %508 = extractvalue { ptr, i32 } %506, 1
  store i32 %508, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #8
  br label %509

509:                                              ; preds = %505, %501
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #8
  br label %992

510:                                              ; preds = %459
  %511 = landingpad { ptr, i32 }
          cleanup
  %512 = extractvalue { ptr, i32 } %511, 0
  store ptr %512, ptr %11, align 8
  %513 = extractvalue { ptr, i32 } %511, 1
  store i32 %513, ptr %12, align 4
  br label %518

514:                                              ; preds = %465
  %515 = landingpad { ptr, i32 }
          cleanup
  %516 = extractvalue { ptr, i32 } %515, 0
  store ptr %516, ptr %11, align 8
  %517 = extractvalue { ptr, i32 } %515, 1
  store i32 %517, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #8
  br label %518

518:                                              ; preds = %514, %510
  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 %992

519:                                              ; preds = %467
  %520 = landingpad { ptr, i32 }
          cleanup
  %521 = extractvalue { ptr, i32 } %520, 0
  store ptr %521, ptr %11, align 8
  %522 = extractvalue { ptr, i32 } %520, 1
  store i32 %522, ptr %12, align 4
  br label %527

523:                                              ; preds = %473
  %524 = landingpad { ptr, i32 }
          cleanup
  %525 = extractvalue { ptr, i32 } %524, 0
  store ptr %525, ptr %11, align 8
  %526 = extractvalue { ptr, i32 } %524, 1
  store i32 %526, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #8
  br label %527

527:                                              ; preds = %523, %519
  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 %992

528:                                              ; preds = %475
  %529 = landingpad { ptr, i32 }
          cleanup
  %530 = extractvalue { ptr, i32 } %529, 0
  store ptr %530, ptr %11, align 8
  %531 = extractvalue { ptr, i32 } %529, 1
  store i32 %531, ptr %12, align 4
  br label %536

532:                                              ; preds = %481
  %533 = landingpad { ptr, i32 }
          cleanup
  %534 = extractvalue { ptr, i32 } %533, 0
  store ptr %534, ptr %11, align 8
  %535 = extractvalue { ptr, i32 } %533, 1
  store i32 %535, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  br label %536

536:                                              ; preds = %532, %528
  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 %992

537:                                              ; preds = %483
  %538 = landingpad { ptr, i32 }
          cleanup
  %539 = extractvalue { ptr, i32 } %538, 0
  store ptr %539, ptr %11, align 8
  %540 = extractvalue { ptr, i32 } %538, 1
  store i32 %540, ptr %12, align 4
  br label %545

541:                                              ; preds = %489
  %542 = landingpad { ptr, i32 }
          cleanup
  %543 = extractvalue { ptr, i32 } %542, 0
  store ptr %543, ptr %11, align 8
  %544 = extractvalue { ptr, i32 } %542, 1
  store i32 %544, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  br label %545

545:                                              ; preds = %541, %537
  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 %992

546:                                              ; preds = %492
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #8
  %547 = load ptr, ptr %7, align 8, !tbaa !5
  %548 = getelementptr inbounds %struct.gpt2_model, ptr %547, i32 0, i32 6
  %549 = load i32, ptr %43, align 4, !tbaa !11
  %550 = sext i32 %549 to i64
  %551 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNSt6vectorI10gpt2_layerSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %548, i64 noundef %550) #8
  store ptr %551, ptr %44, align 8, !tbaa !5
  %552 = load ptr, ptr %24, align 8, !tbaa !5
  %553 = load ptr, ptr %552, align 8, !tbaa !5
  %554 = load i32, ptr %29, align 4, !tbaa !11
  %555 = sext i32 %554 to i64
  %556 = invoke ptr @ggml_new_tensor_1d(ptr noundef %553, i32 noundef 0, i64 noundef %555)
          to label %557 unwind label %788

557:                                              ; preds = %546
  %558 = load ptr, ptr %44, align 8, !tbaa !5
  %559 = getelementptr inbounds %struct.gpt2_layer, ptr %558, i32 0, i32 0
  store ptr %556, ptr %559, align 8, !tbaa !64
  %560 = load ptr, ptr %24, align 8, !tbaa !5
  %561 = load ptr, ptr %560, align 8, !tbaa !5
  %562 = load i32, ptr %29, align 4, !tbaa !11
  %563 = sext i32 %562 to i64
  %564 = invoke ptr @ggml_new_tensor_1d(ptr noundef %561, i32 noundef 0, i64 noundef %563)
          to label %565 unwind label %788

565:                                              ; preds = %557
  %566 = load ptr, ptr %44, align 8, !tbaa !5
  %567 = getelementptr inbounds %struct.gpt2_layer, ptr %566, i32 0, i32 1
  store ptr %564, ptr %567, align 8, !tbaa !66
  %568 = load ptr, ptr %24, align 8, !tbaa !5
  %569 = load ptr, ptr %568, align 8, !tbaa !5
  %570 = load i32, ptr %29, align 4, !tbaa !11
  %571 = sext i32 %570 to i64
  %572 = invoke ptr @ggml_new_tensor_1d(ptr noundef %569, i32 noundef 0, i64 noundef %571)
          to label %573 unwind label %788

573:                                              ; preds = %565
  %574 = load ptr, ptr %44, align 8, !tbaa !5
  %575 = getelementptr inbounds %struct.gpt2_layer, ptr %574, i32 0, i32 2
  store ptr %572, ptr %575, align 8, !tbaa !67
  %576 = load ptr, ptr %24, align 8, !tbaa !5
  %577 = load ptr, ptr %576, align 8, !tbaa !5
  %578 = load i32, ptr %29, align 4, !tbaa !11
  %579 = sext i32 %578 to i64
  %580 = invoke ptr @ggml_new_tensor_1d(ptr noundef %577, i32 noundef 0, i64 noundef %579)
          to label %581 unwind label %788

581:                                              ; preds = %573
  %582 = load ptr, ptr %44, align 8, !tbaa !5
  %583 = getelementptr inbounds %struct.gpt2_layer, ptr %582, i32 0, i32 3
  store ptr %580, ptr %583, align 8, !tbaa !68
  %584 = load ptr, ptr %24, align 8, !tbaa !5
  %585 = load ptr, ptr %584, align 8, !tbaa !5
  %586 = load i32, ptr %23, align 4, !tbaa !47
  %587 = load i32, ptr %29, align 4, !tbaa !11
  %588 = sext i32 %587 to i64
  %589 = load i32, ptr %29, align 4, !tbaa !11
  %590 = mul nsw i32 3, %589
  %591 = sext i32 %590 to i64
  %592 = invoke ptr @ggml_new_tensor_2d(ptr noundef %585, i32 noundef %586, i64 noundef %588, i64 noundef %591)
          to label %593 unwind label %788

593:                                              ; preds = %581
  %594 = load ptr, ptr %44, align 8, !tbaa !5
  %595 = getelementptr inbounds %struct.gpt2_layer, ptr %594, i32 0, i32 4
  store ptr %592, ptr %595, align 8, !tbaa !69
  %596 = load ptr, ptr %24, align 8, !tbaa !5
  %597 = load ptr, ptr %596, align 8, !tbaa !5
  %598 = load i32, ptr %29, align 4, !tbaa !11
  %599 = mul nsw i32 3, %598
  %600 = sext i32 %599 to i64
  %601 = invoke ptr @ggml_new_tensor_1d(ptr noundef %597, i32 noundef 0, i64 noundef %600)
          to label %602 unwind label %788

602:                                              ; preds = %593
  %603 = load ptr, ptr %44, align 8, !tbaa !5
  %604 = getelementptr inbounds %struct.gpt2_layer, ptr %603, i32 0, i32 5
  store ptr %601, ptr %604, align 8, !tbaa !70
  %605 = load ptr, ptr %24, align 8, !tbaa !5
  %606 = load ptr, ptr %605, align 8, !tbaa !5
  %607 = load i32, ptr %23, align 4, !tbaa !47
  %608 = load i32, ptr %29, align 4, !tbaa !11
  %609 = sext i32 %608 to i64
  %610 = load i32, ptr %29, align 4, !tbaa !11
  %611 = sext i32 %610 to i64
  %612 = invoke ptr @ggml_new_tensor_2d(ptr noundef %606, i32 noundef %607, i64 noundef %609, i64 noundef %611)
          to label %613 unwind label %788

613:                                              ; preds = %602
  %614 = load ptr, ptr %44, align 8, !tbaa !5
  %615 = getelementptr inbounds %struct.gpt2_layer, ptr %614, i32 0, i32 6
  store ptr %612, ptr %615, align 8, !tbaa !71
  %616 = load ptr, ptr %24, align 8, !tbaa !5
  %617 = load ptr, ptr %616, align 8, !tbaa !5
  %618 = load i32, ptr %29, align 4, !tbaa !11
  %619 = sext i32 %618 to i64
  %620 = invoke ptr @ggml_new_tensor_1d(ptr noundef %617, i32 noundef 0, i64 noundef %619)
          to label %621 unwind label %788

621:                                              ; preds = %613
  %622 = load ptr, ptr %44, align 8, !tbaa !5
  %623 = getelementptr inbounds %struct.gpt2_layer, ptr %622, i32 0, i32 7
  store ptr %620, ptr %623, align 8, !tbaa !72
  %624 = load ptr, ptr %24, align 8, !tbaa !5
  %625 = load ptr, ptr %624, align 8, !tbaa !5
  %626 = load i32, ptr %23, align 4, !tbaa !47
  %627 = load i32, ptr %29, align 4, !tbaa !11
  %628 = sext i32 %627 to i64
  %629 = load i32, ptr %29, align 4, !tbaa !11
  %630 = mul nsw i32 4, %629
  %631 = sext i32 %630 to i64
  %632 = invoke ptr @ggml_new_tensor_2d(ptr noundef %625, i32 noundef %626, i64 noundef %628, i64 noundef %631)
          to label %633 unwind label %788

633:                                              ; preds = %621
  %634 = load ptr, ptr %44, align 8, !tbaa !5
  %635 = getelementptr inbounds %struct.gpt2_layer, ptr %634, i32 0, i32 8
  store ptr %632, ptr %635, align 8, !tbaa !73
  %636 = load ptr, ptr %24, align 8, !tbaa !5
  %637 = load ptr, ptr %636, align 8, !tbaa !5
  %638 = load i32, ptr %29, align 4, !tbaa !11
  %639 = mul nsw i32 4, %638
  %640 = sext i32 %639 to i64
  %641 = invoke ptr @ggml_new_tensor_1d(ptr noundef %637, i32 noundef 0, i64 noundef %640)
          to label %642 unwind label %788

642:                                              ; preds = %633
  %643 = load ptr, ptr %44, align 8, !tbaa !5
  %644 = getelementptr inbounds %struct.gpt2_layer, ptr %643, i32 0, i32 9
  store ptr %641, ptr %644, align 8, !tbaa !74
  %645 = load ptr, ptr %24, align 8, !tbaa !5
  %646 = load ptr, ptr %645, align 8, !tbaa !5
  %647 = load i32, ptr %23, align 4, !tbaa !47
  %648 = load i32, ptr %29, align 4, !tbaa !11
  %649 = mul nsw i32 4, %648
  %650 = sext i32 %649 to i64
  %651 = load i32, ptr %29, align 4, !tbaa !11
  %652 = sext i32 %651 to i64
  %653 = invoke ptr @ggml_new_tensor_2d(ptr noundef %646, i32 noundef %647, i64 noundef %650, i64 noundef %652)
          to label %654 unwind label %788

654:                                              ; preds = %642
  %655 = load ptr, ptr %44, align 8, !tbaa !5
  %656 = getelementptr inbounds %struct.gpt2_layer, ptr %655, i32 0, i32 10
  store ptr %653, ptr %656, align 8, !tbaa !75
  %657 = load ptr, ptr %24, align 8, !tbaa !5
  %658 = load ptr, ptr %657, align 8, !tbaa !5
  %659 = load i32, ptr %29, align 4, !tbaa !11
  %660 = sext i32 %659 to i64
  %661 = invoke ptr @ggml_new_tensor_1d(ptr noundef %658, i32 noundef 0, i64 noundef %660)
          to label %662 unwind label %788

662:                                              ; preds = %654
  %663 = load ptr, ptr %44, align 8, !tbaa !5
  %664 = getelementptr inbounds %struct.gpt2_layer, ptr %663, i32 0, i32 11
  store ptr %661, ptr %664, align 8, !tbaa !76
  %665 = load ptr, ptr %44, align 8, !tbaa !5
  %666 = getelementptr inbounds %struct.gpt2_layer, ptr %665, i32 0, i32 0
  %667 = load ptr, ptr %666, align 8, !tbaa !64
  %668 = load ptr, ptr %7, 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 %45) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %46) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #8
  %670 = load i32, ptr %43, align 4, !tbaa !11
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %47, 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 %46, ptr noundef @.str.18, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %671 unwind label %792

671:                                              ; preds = %662
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef @.str.19)
          to label %672 unwind label %796

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) %45)
          to label %674 unwind label %800

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) %45) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #8
  %675 = load ptr, ptr %44, align 8, !tbaa !5
  %676 = getelementptr inbounds %struct.gpt2_layer, ptr %675, i32 0, i32 1
  %677 = load ptr, ptr %676, align 8, !tbaa !66
  %678 = load ptr, ptr %7, 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 %48) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %49) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #8
  %680 = load i32, ptr %43, align 4, !tbaa !11
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %50, 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 %49, ptr noundef @.str.18, ptr noundef nonnull align 8 dereferenceable(32) %50)
          to label %681 unwind label %806

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 %48, ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef @.str.20)
          to label %682 unwind label %810

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) %48)
          to label %684 unwind label %814

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) %48) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #8
  %685 = load ptr, ptr %44, align 8, !tbaa !5
  %686 = getelementptr inbounds %struct.gpt2_layer, ptr %685, i32 0, i32 2
  %687 = load ptr, ptr %686, align 8, !tbaa !67
  %688 = load ptr, ptr %7, 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 %51) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %53) #8
  %690 = load i32, ptr %43, align 4, !tbaa !11
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %53, 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 %52, ptr noundef @.str.18, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %691 unwind label %820

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 %51, ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef @.str.21)
          to label %692 unwind label %824

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) %51)
          to label %694 unwind label %828

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) %51) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #8
  %695 = load ptr, ptr %44, align 8, !tbaa !5
  %696 = getelementptr inbounds %struct.gpt2_layer, ptr %695, i32 0, i32 3
  %697 = load ptr, ptr %696, align 8, !tbaa !68
  %698 = load ptr, ptr %7, 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 %54) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %56) #8
  %700 = load i32, ptr %43, align 4, !tbaa !11
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %56, 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 %55, ptr noundef @.str.18, ptr noundef nonnull align 8 dereferenceable(32) %56)
          to label %701 unwind label %834

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 %54, ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef @.str.22)
          to label %702 unwind label %838

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) %54)
          to label %704 unwind label %842

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) %54) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #8
  %705 = load ptr, ptr %44, align 8, !tbaa !5
  %706 = getelementptr inbounds %struct.gpt2_layer, ptr %705, i32 0, i32 4
  %707 = load ptr, ptr %706, align 8, !tbaa !69
  %708 = load ptr, ptr %7, 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 %57) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %59) #8
  %710 = load i32, ptr %43, align 4, !tbaa !11
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %59, 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 %58, ptr noundef @.str.18, ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %711 unwind label %848

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 %57, ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef @.str.23)
          to label %712 unwind label %852

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) %57)
          to label %714 unwind label %856

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) %57) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #8
  %715 = load ptr, ptr %44, align 8, !tbaa !5
  %716 = getelementptr inbounds %struct.gpt2_layer, ptr %715, i32 0, i32 5
  %717 = load ptr, ptr %716, align 8, !tbaa !70
  %718 = load ptr, ptr %7, 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 %60) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %61) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #8
  %720 = load i32, ptr %43, align 4, !tbaa !11
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %62, 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 %61, ptr noundef @.str.18, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %721 unwind label %862

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 %60, ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef @.str.24)
          to label %722 unwind label %866

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) %60)
          to label %724 unwind label %870

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) %60) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #8
  %725 = load ptr, ptr %44, align 8, !tbaa !5
  %726 = getelementptr inbounds %struct.gpt2_layer, ptr %725, i32 0, i32 6
  %727 = load ptr, ptr %726, align 8, !tbaa !71
  %728 = load ptr, ptr %7, 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 %63) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %64) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %65) #8
  %730 = load i32, ptr %43, align 4, !tbaa !11
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %65, 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 %64, ptr noundef @.str.18, ptr noundef nonnull align 8 dereferenceable(32) %65)
          to label %731 unwind label %876

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 %63, ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef @.str.25)
          to label %732 unwind label %880

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) %63)
          to label %734 unwind label %884

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) %63) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #8
  %735 = load ptr, ptr %44, align 8, !tbaa !5
  %736 = getelementptr inbounds %struct.gpt2_layer, ptr %735, i32 0, i32 7
  %737 = load ptr, ptr %736, align 8, !tbaa !72
  %738 = load ptr, ptr %7, 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 %66) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %67) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %68) #8
  %740 = load i32, ptr %43, align 4, !tbaa !11
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %68, 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 %67, ptr noundef @.str.18, ptr noundef nonnull align 8 dereferenceable(32) %68)
          to label %741 unwind label %890

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 %66, ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef @.str.26)
          to label %742 unwind label %894

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) %66)
          to label %744 unwind label %898

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) %66) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #8
  %745 = load ptr, ptr %44, align 8, !tbaa !5
  %746 = getelementptr inbounds %struct.gpt2_layer, ptr %745, i32 0, i32 8
  %747 = load ptr, ptr %746, align 8, !tbaa !73
  %748 = load ptr, ptr %7, 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 %69) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %70) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %71) #8
  %750 = load i32, ptr %43, align 4, !tbaa !11
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %71, 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 %70, ptr noundef @.str.18, ptr noundef nonnull align 8 dereferenceable(32) %71)
          to label %751 unwind label %904

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 %69, ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef @.str.27)
          to label %752 unwind label %908

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) %69)
          to label %754 unwind label %912

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) %69) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #8
  %755 = load ptr, ptr %44, align 8, !tbaa !5
  %756 = getelementptr inbounds %struct.gpt2_layer, ptr %755, i32 0, i32 9
  %757 = load ptr, ptr %756, align 8, !tbaa !74
  %758 = load ptr, ptr %7, 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 %72) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %73) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %74) #8
  %760 = load i32, ptr %43, align 4, !tbaa !11
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %74, 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 %73, ptr noundef @.str.18, ptr noundef nonnull align 8 dereferenceable(32) %74)
          to label %761 unwind label %918

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 %72, ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef @.str.28)
          to label %762 unwind label %922

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) %72)
          to label %764 unwind label %926

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) %72) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %72) #8
  %765 = load ptr, ptr %44, align 8, !tbaa !5
  %766 = getelementptr inbounds %struct.gpt2_layer, ptr %765, i32 0, i32 10
  %767 = load ptr, ptr %766, align 8, !tbaa !75
  %768 = load ptr, ptr %7, 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 %75) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %77) #8
  %770 = load i32, ptr %43, align 4, !tbaa !11
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %77, 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 %76, ptr noundef @.str.18, ptr noundef nonnull align 8 dereferenceable(32) %77)
          to label %771 unwind label %932

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 %75, ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef @.str.29)
          to label %772 unwind label %936

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) %75)
          to label %774 unwind label %940

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) %75) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #8
  %775 = load ptr, ptr %44, align 8, !tbaa !5
  %776 = getelementptr inbounds %struct.gpt2_layer, ptr %775, i32 0, i32 11
  %777 = load ptr, ptr %776, align 8, !tbaa !76
  %778 = load ptr, ptr %7, align 8, !tbaa !5
  %779 = getelementptr inbounds %struct.gpt2_model, ptr %778, i32 0, i32 14
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %79) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %80) #8
  %780 = load i32, ptr %43, align 4, !tbaa !11
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %80, i32 noundef %780) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %79, ptr noundef @.str.18, ptr noundef nonnull align 8 dereferenceable(32) %80)
          to label %781 unwind label %946

781:                                              ; preds = %774
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %78, ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef @.str.30)
          to label %782 unwind label %950

782:                                              ; preds = %781
  %783 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %779, ptr noundef nonnull align 8 dereferenceable(32) %78)
          to label %784 unwind label %954

784:                                              ; preds = %782
  store ptr %777, ptr %783, align 8, !tbaa !5
  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 @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #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 8, ptr %44) #8
  br label %785

785:                                              ; preds = %784
  %786 = load i32, ptr %43, align 4, !tbaa !11
  %787 = add nsw i32 %786, 1
  store i32 %787, ptr %43, align 4, !tbaa !11
  br label %492, !llvm.loop !77

788:                                              ; preds = %654, %642, %633, %621, %613, %602, %593, %581, %573, %565, %557, %546
  %789 = landingpad { ptr, i32 }
          cleanup
  %790 = extractvalue { ptr, i32 } %789, 0
  store ptr %790, ptr %11, align 8
  %791 = extractvalue { ptr, i32 } %789, 1
  store i32 %791, ptr %12, align 4
  br label %960

792:                                              ; preds = %662
  %793 = landingpad { ptr, i32 }
          cleanup
  %794 = extractvalue { ptr, i32 } %793, 0
  store ptr %794, ptr %11, align 8
  %795 = extractvalue { ptr, i32 } %793, 1
  store i32 %795, ptr %12, align 4
  br label %805

796:                                              ; preds = %671
  %797 = landingpad { ptr, i32 }
          cleanup
  %798 = extractvalue { ptr, i32 } %797, 0
  store ptr %798, ptr %11, align 8
  %799 = extractvalue { ptr, i32 } %797, 1
  store i32 %799, ptr %12, align 4
  br label %804

800:                                              ; preds = %672
  %801 = landingpad { ptr, i32 }
          cleanup
  %802 = extractvalue { ptr, i32 } %801, 0
  store ptr %802, ptr %11, align 8
  %803 = extractvalue { ptr, i32 } %801, 1
  store i32 %803, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #8
  br label %804

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

805:                                              ; preds = %804, %792
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #8
  br label %960

806:                                              ; preds = %674
  %807 = landingpad { ptr, i32 }
          cleanup
  %808 = extractvalue { ptr, i32 } %807, 0
  store ptr %808, ptr %11, align 8
  %809 = extractvalue { ptr, i32 } %807, 1
  store i32 %809, ptr %12, align 4
  br label %819

810:                                              ; preds = %681
  %811 = landingpad { ptr, i32 }
          cleanup
  %812 = extractvalue { ptr, i32 } %811, 0
  store ptr %812, ptr %11, align 8
  %813 = extractvalue { ptr, i32 } %811, 1
  store i32 %813, ptr %12, align 4
  br label %818

814:                                              ; preds = %682
  %815 = landingpad { ptr, i32 }
          cleanup
  %816 = extractvalue { ptr, i32 } %815, 0
  store ptr %816, ptr %11, align 8
  %817 = extractvalue { ptr, i32 } %815, 1
  store i32 %817, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  br label %818

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

819:                                              ; preds = %818, %806
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #8
  br label %960

820:                                              ; preds = %684
  %821 = landingpad { ptr, i32 }
          cleanup
  %822 = extractvalue { ptr, i32 } %821, 0
  store ptr %822, ptr %11, align 8
  %823 = extractvalue { ptr, i32 } %821, 1
  store i32 %823, ptr %12, align 4
  br label %833

824:                                              ; preds = %691
  %825 = landingpad { ptr, i32 }
          cleanup
  %826 = extractvalue { ptr, i32 } %825, 0
  store ptr %826, ptr %11, align 8
  %827 = extractvalue { ptr, i32 } %825, 1
  store i32 %827, ptr %12, align 4
  br label %832

828:                                              ; preds = %692
  %829 = landingpad { ptr, i32 }
          cleanup
  %830 = extractvalue { ptr, i32 } %829, 0
  store ptr %830, ptr %11, align 8
  %831 = extractvalue { ptr, i32 } %829, 1
  store i32 %831, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  br label %832

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

833:                                              ; preds = %832, %820
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #8
  br label %960

834:                                              ; preds = %694
  %835 = landingpad { ptr, i32 }
          cleanup
  %836 = extractvalue { ptr, i32 } %835, 0
  store ptr %836, ptr %11, align 8
  %837 = extractvalue { ptr, i32 } %835, 1
  store i32 %837, ptr %12, align 4
  br label %847

838:                                              ; preds = %701
  %839 = landingpad { ptr, i32 }
          cleanup
  %840 = extractvalue { ptr, i32 } %839, 0
  store ptr %840, ptr %11, align 8
  %841 = extractvalue { ptr, i32 } %839, 1
  store i32 %841, ptr %12, align 4
  br label %846

842:                                              ; preds = %702
  %843 = landingpad { ptr, i32 }
          cleanup
  %844 = extractvalue { ptr, i32 } %843, 0
  store ptr %844, ptr %11, align 8
  %845 = extractvalue { ptr, i32 } %843, 1
  store i32 %845, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #8
  br label %846

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

847:                                              ; preds = %846, %834
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #8
  br label %960

848:                                              ; preds = %704
  %849 = landingpad { ptr, i32 }
          cleanup
  %850 = extractvalue { ptr, i32 } %849, 0
  store ptr %850, ptr %11, align 8
  %851 = extractvalue { ptr, i32 } %849, 1
  store i32 %851, ptr %12, align 4
  br label %861

852:                                              ; preds = %711
  %853 = landingpad { ptr, i32 }
          cleanup
  %854 = extractvalue { ptr, i32 } %853, 0
  store ptr %854, ptr %11, align 8
  %855 = extractvalue { ptr, i32 } %853, 1
  store i32 %855, ptr %12, align 4
  br label %860

856:                                              ; preds = %712
  %857 = landingpad { ptr, i32 }
          cleanup
  %858 = extractvalue { ptr, i32 } %857, 0
  store ptr %858, ptr %11, align 8
  %859 = extractvalue { ptr, i32 } %857, 1
  store i32 %859, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #8
  br label %860

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

861:                                              ; preds = %860, %848
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #8
  br label %960

862:                                              ; preds = %714
  %863 = landingpad { ptr, i32 }
          cleanup
  %864 = extractvalue { ptr, i32 } %863, 0
  store ptr %864, ptr %11, align 8
  %865 = extractvalue { ptr, i32 } %863, 1
  store i32 %865, ptr %12, align 4
  br label %875

866:                                              ; preds = %721
  %867 = landingpad { ptr, i32 }
          cleanup
  %868 = extractvalue { ptr, i32 } %867, 0
  store ptr %868, ptr %11, align 8
  %869 = extractvalue { ptr, i32 } %867, 1
  store i32 %869, ptr %12, align 4
  br label %874

870:                                              ; preds = %722
  %871 = landingpad { ptr, i32 }
          cleanup
  %872 = extractvalue { ptr, i32 } %871, 0
  store ptr %872, ptr %11, align 8
  %873 = extractvalue { ptr, i32 } %871, 1
  store i32 %873, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #8
  br label %874

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

875:                                              ; preds = %874, %862
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #8
  br label %960

876:                                              ; preds = %724
  %877 = landingpad { ptr, i32 }
          cleanup
  %878 = extractvalue { ptr, i32 } %877, 0
  store ptr %878, ptr %11, align 8
  %879 = extractvalue { ptr, i32 } %877, 1
  store i32 %879, ptr %12, align 4
  br label %889

880:                                              ; preds = %731
  %881 = landingpad { ptr, i32 }
          cleanup
  %882 = extractvalue { ptr, i32 } %881, 0
  store ptr %882, ptr %11, align 8
  %883 = extractvalue { ptr, i32 } %881, 1
  store i32 %883, ptr %12, align 4
  br label %888

884:                                              ; preds = %732
  %885 = landingpad { ptr, i32 }
          cleanup
  %886 = extractvalue { ptr, i32 } %885, 0
  store ptr %886, ptr %11, align 8
  %887 = extractvalue { ptr, i32 } %885, 1
  store i32 %887, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #8
  br label %888

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

889:                                              ; preds = %888, %876
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #8
  br label %960

890:                                              ; preds = %734
  %891 = landingpad { ptr, i32 }
          cleanup
  %892 = extractvalue { ptr, i32 } %891, 0
  store ptr %892, ptr %11, align 8
  %893 = extractvalue { ptr, i32 } %891, 1
  store i32 %893, ptr %12, align 4
  br label %903

894:                                              ; preds = %741
  %895 = landingpad { ptr, i32 }
          cleanup
  %896 = extractvalue { ptr, i32 } %895, 0
  store ptr %896, ptr %11, align 8
  %897 = extractvalue { ptr, i32 } %895, 1
  store i32 %897, ptr %12, align 4
  br label %902

898:                                              ; preds = %742
  %899 = landingpad { ptr, i32 }
          cleanup
  %900 = extractvalue { ptr, i32 } %899, 0
  store ptr %900, ptr %11, align 8
  %901 = extractvalue { ptr, i32 } %899, 1
  store i32 %901, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #8
  br label %902

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

903:                                              ; preds = %902, %890
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #8
  br label %960

904:                                              ; preds = %744
  %905 = landingpad { ptr, i32 }
          cleanup
  %906 = extractvalue { ptr, i32 } %905, 0
  store ptr %906, ptr %11, align 8
  %907 = extractvalue { ptr, i32 } %905, 1
  store i32 %907, ptr %12, align 4
  br label %917

908:                                              ; preds = %751
  %909 = landingpad { ptr, i32 }
          cleanup
  %910 = extractvalue { ptr, i32 } %909, 0
  store ptr %910, ptr %11, align 8
  %911 = extractvalue { ptr, i32 } %909, 1
  store i32 %911, ptr %12, align 4
  br label %916

912:                                              ; preds = %752
  %913 = landingpad { ptr, i32 }
          cleanup
  %914 = extractvalue { ptr, i32 } %913, 0
  store ptr %914, ptr %11, align 8
  %915 = extractvalue { ptr, i32 } %913, 1
  store i32 %915, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #8
  br label %916

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

917:                                              ; preds = %916, %904
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #8
  br label %960

918:                                              ; preds = %754
  %919 = landingpad { ptr, i32 }
          cleanup
  %920 = extractvalue { ptr, i32 } %919, 0
  store ptr %920, ptr %11, align 8
  %921 = extractvalue { ptr, i32 } %919, 1
  store i32 %921, ptr %12, align 4
  br label %931

922:                                              ; preds = %761
  %923 = landingpad { ptr, i32 }
          cleanup
  %924 = extractvalue { ptr, i32 } %923, 0
  store ptr %924, ptr %11, align 8
  %925 = extractvalue { ptr, i32 } %923, 1
  store i32 %925, ptr %12, align 4
  br label %930

926:                                              ; preds = %762
  %927 = landingpad { ptr, i32 }
          cleanup
  %928 = extractvalue { ptr, i32 } %927, 0
  store ptr %928, ptr %11, align 8
  %929 = extractvalue { ptr, i32 } %927, 1
  store i32 %929, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #8
  br label %930

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

931:                                              ; preds = %930, %918
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %72) #8
  br label %960

932:                                              ; preds = %764
  %933 = landingpad { ptr, i32 }
          cleanup
  %934 = extractvalue { ptr, i32 } %933, 0
  store ptr %934, ptr %11, align 8
  %935 = extractvalue { ptr, i32 } %933, 1
  store i32 %935, ptr %12, align 4
  br label %945

936:                                              ; preds = %771
  %937 = landingpad { ptr, i32 }
          cleanup
  %938 = extractvalue { ptr, i32 } %937, 0
  store ptr %938, ptr %11, align 8
  %939 = extractvalue { ptr, i32 } %937, 1
  store i32 %939, ptr %12, align 4
  br label %944

940:                                              ; preds = %772
  %941 = landingpad { ptr, i32 }
          cleanup
  %942 = extractvalue { ptr, i32 } %941, 0
  store ptr %942, ptr %11, align 8
  %943 = extractvalue { ptr, i32 } %941, 1
  store i32 %943, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #8
  br label %944

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

945:                                              ; preds = %944, %932
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #8
  br label %960

946:                                              ; preds = %774
  %947 = landingpad { ptr, i32 }
          cleanup
  %948 = extractvalue { ptr, i32 } %947, 0
  store ptr %948, ptr %11, align 8
  %949 = extractvalue { ptr, i32 } %947, 1
  store i32 %949, ptr %12, align 4
  br label %959

950:                                              ; preds = %781
  %951 = landingpad { ptr, i32 }
          cleanup
  %952 = extractvalue { ptr, i32 } %951, 0
  store ptr %952, ptr %11, align 8
  %953 = extractvalue { ptr, i32 } %951, 1
  store i32 %953, ptr %12, align 4
  br label %958

954:                                              ; preds = %782
  %955 = landingpad { ptr, i32 }
          cleanup
  %956 = extractvalue { ptr, i32 } %955, 0
  store ptr %956, ptr %11, align 8
  %957 = extractvalue { ptr, i32 } %955, 1
  store i32 %957, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #8
  br label %958

958:                                              ; preds = %954, %950
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #8
  br label %959

959:                                              ; preds = %958, %946
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #8
  br label %960

960:                                              ; preds = %959, %945, %931, %917, %903, %889, %875, %861, %847, %833, %819, %805, %788
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #8
  br label %992

961:                                              ; preds = %496
  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 4, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  %962 = load ptr, ptr %7, align 8, !tbaa !5
  %963 = load ptr, ptr %9, align 8, !tbaa !5
  invoke void @_Z13init_backendsR10gpt2_modelRK10gpt_params(ptr noundef nonnull align 8 dereferenceable(248) %962, ptr noundef nonnull align 8 dereferenceable(160) %963)
          to label %964 unwind label %993

964:                                              ; preds = %961
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #8
  %965 = load ptr, ptr %7, align 8, !tbaa !5
  %966 = getelementptr inbounds %struct.gpt2_model, ptr %965, i32 0, i32 10
  %967 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ggml_backendSaIS1_EE5frontEv(ptr noundef nonnull align 8 dereferenceable(24) %966) #8
  %968 = load ptr, ptr %967, align 8, !tbaa !5
  store ptr %968, ptr %81, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #8
  %969 = load ptr, ptr %7, align 8, !tbaa !5
  %970 = getelementptr inbounds %struct.gpt2_model, ptr %969, i32 0, i32 10
  %971 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ggml_backendSaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %970) #8
  %972 = load ptr, ptr %971, align 8, !tbaa !5
  store ptr %972, ptr %82, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 48, ptr %83) #8
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP12ggml_backendSt4lessIS5_ESaISt4pairIKS5_S7_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %83) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #8
  %973 = load ptr, ptr %7, 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 4
  %976 = load i32, ptr %975, align 8, !tbaa !49
  %977 = load ptr, ptr %9, align 8, !tbaa !5
  %978 = getelementptr inbounds %struct.gpt_params, ptr %977, i32 0, i32 6
  %979 = load i32, ptr %978, align 8, !tbaa !78
  %980 = sub nsw i32 %976, %979
  store i32 %980, ptr %84, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #8
  %981 = load ptr, ptr %7, align 8, !tbaa !5
  %982 = getelementptr inbounds %struct.gpt2_model, ptr %981, i32 0, i32 14
  store ptr %982, ptr %85, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #8
  %983 = load ptr, ptr %85, align 8, !tbaa !5
  %984 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %983) #8
  %985 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %86, i32 0, i32 0
  store ptr %984, ptr %985, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #8
  %986 = load ptr, ptr %85, align 8, !tbaa !5
  %987 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %986) #8
  %988 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %87, i32 0, i32 0
  store ptr %987, ptr %988, align 8
  br label %989

989:                                              ; preds = %1112, %964
  %990 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorEESD_(ptr noundef nonnull align 8 dereferenceable(8) %86, ptr noundef nonnull align 8 dereferenceable(8) %87) #8
  br i1 %990, label %997, label %991

991:                                              ; preds = %989
  store i32 8, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #8
  br label %1116

992:                                              ; preds = %960, %545, %536, %527, %518, %509, %497
  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 4, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  br label %1775

993:                                              ; preds = %961
  %994 = landingpad { ptr, i32 }
          cleanup
  %995 = extractvalue { ptr, i32 } %994, 0
  store ptr %995, ptr %11, align 8
  %996 = extractvalue { ptr, i32 } %994, 1
  store i32 %996, ptr %12, align 4
  br label %1775

997:                                              ; preds = %989
  call void @llvm.lifetime.start.p0(i64 40, ptr %88) #8
  %998 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %86) #8
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(40) %88, ptr noundef nonnull align 8 dereferenceable(40) %998)
          to label %999 unwind label %1022

999:                                              ; preds = %997
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #8
  %1000 = getelementptr inbounds %"struct.std::pair", ptr %88, i32 0, i32 0
  store ptr %1000, ptr %89, align 8, !tbaa !5
  %1001 = load ptr, ptr %89, align 8, !tbaa !5
  %1002 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %1001, ptr noundef @.str.15)
          to label %1003 unwind label %1026

1003:                                             ; preds = %999
  br i1 %1002, label %1008, label %1004

1004:                                             ; preds = %1003
  %1005 = load ptr, ptr %89, align 8, !tbaa !5
  %1006 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %1005, ptr noundef @.str.16)
          to label %1007 unwind label %1026

1007:                                             ; preds = %1004
  br i1 %1006, label %1008, label %1036

1008:                                             ; preds = %1007, %1003
  %1009 = load ptr, ptr %9, align 8, !tbaa !5
  %1010 = getelementptr inbounds %struct.gpt_params, ptr %1009, i32 0, i32 6
  %1011 = load i32, ptr %1010, align 8, !tbaa !78
  %1012 = load ptr, ptr %7, align 8, !tbaa !5
  %1013 = getelementptr inbounds %struct.gpt2_model, ptr %1012, i32 0, i32 0
  %1014 = getelementptr inbounds %struct.gpt2_hparams, ptr %1013, i32 0, i32 4
  %1015 = load i32, ptr %1014, align 8, !tbaa !49
  %1016 = icmp sgt i32 %1011, %1015
  br i1 %1016, label %1017, label %1030

1017:                                             ; preds = %1008
  %1018 = load ptr, ptr %81, align 8, !tbaa !5
  %1019 = load ptr, ptr %89, align 8, !tbaa !5
  %1020 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP12ggml_backendSt4lessIS5_ESaISt4pairIKS5_S7_EEEixERSB_(ptr noundef nonnull align 8 dereferenceable(48) %83, ptr noundef nonnull align 8 dereferenceable(32) %1019)
          to label %1021 unwind label %1026

1021:                                             ; preds = %1017
  store ptr %1018, ptr %1020, align 8, !tbaa !5
  br label %1035

1022:                                             ; preds = %997
  %1023 = landingpad { ptr, i32 }
          cleanup
  %1024 = extractvalue { ptr, i32 } %1023, 0
  store ptr %1024, ptr %11, align 8
  %1025 = extractvalue { ptr, i32 } %1023, 1
  store i32 %1025, ptr %12, align 4
  br label %1115

1026:                                             ; preds = %1058, %1053, %1044, %1040, %1036, %1030, %1017, %1004, %999
  %1027 = landingpad { ptr, i32 }
          cleanup
  %1028 = extractvalue { ptr, i32 } %1027, 0
  store ptr %1028, ptr %11, align 8
  %1029 = extractvalue { ptr, i32 } %1027, 1
  store i32 %1029, ptr %12, align 4
  br label %1114

1030:                                             ; preds = %1008
  %1031 = load ptr, ptr %82, align 8, !tbaa !5
  %1032 = load ptr, ptr %89, align 8, !tbaa !5
  %1033 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP12ggml_backendSt4lessIS5_ESaISt4pairIKS5_S7_EEEixERSB_(ptr noundef nonnull align 8 dereferenceable(48) %83, ptr noundef nonnull align 8 dereferenceable(32) %1032)
          to label %1034 unwind label %1026

1034:                                             ; preds = %1030
  store ptr %1031, ptr %1033, align 8, !tbaa !5
  br label %1035

1035:                                             ; preds = %1034, %1021
  br label %1036

1036:                                             ; preds = %1035, %1007
  %1037 = load ptr, ptr %89, align 8, !tbaa !5
  %1038 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %1037, ptr noundef @.str.13)
          to label %1039 unwind label %1026

1039:                                             ; preds = %1036
  br i1 %1038, label %1048, label %1040

1040:                                             ; preds = %1039
  %1041 = load ptr, ptr %89, align 8, !tbaa !5
  %1042 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %1041, ptr noundef @.str.14)
          to label %1043 unwind label %1026

1043:                                             ; preds = %1040
  br i1 %1042, label %1048, label %1044

1044:                                             ; preds = %1043
  %1045 = load ptr, ptr %89, align 8, !tbaa !5
  %1046 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %1045, ptr noundef @.str.17)
          to label %1047 unwind label %1026

1047:                                             ; preds = %1044
  br i1 %1046, label %1048, label %1064

1048:                                             ; preds = %1047, %1043, %1039
  %1049 = load ptr, ptr %9, align 8, !tbaa !5
  %1050 = getelementptr inbounds %struct.gpt_params, ptr %1049, i32 0, i32 6
  %1051 = load i32, ptr %1050, align 8, !tbaa !78
  %1052 = icmp sgt i32 %1051, 0
  br i1 %1052, label %1053, label %1058

1053:                                             ; preds = %1048
  %1054 = load ptr, ptr %81, align 8, !tbaa !5
  %1055 = load ptr, ptr %89, align 8, !tbaa !5
  %1056 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP12ggml_backendSt4lessIS5_ESaISt4pairIKS5_S7_EEEixERSB_(ptr noundef nonnull align 8 dereferenceable(48) %83, ptr noundef nonnull align 8 dereferenceable(32) %1055)
          to label %1057 unwind label %1026

1057:                                             ; preds = %1053
  store ptr %1054, ptr %1056, align 8, !tbaa !5
  br label %1063

1058:                                             ; preds = %1048
  %1059 = load ptr, ptr %82, align 8, !tbaa !5
  %1060 = load ptr, ptr %89, align 8, !tbaa !5
  %1061 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP12ggml_backendSt4lessIS5_ESaISt4pairIKS5_S7_EEEixERSB_(ptr noundef nonnull align 8 dereferenceable(48) %83, ptr noundef nonnull align 8 dereferenceable(32) %1060)
          to label %1062 unwind label %1026

1062:                                             ; preds = %1058
  store ptr %1059, ptr %1061, align 8, !tbaa !5
  br label %1063

1063:                                             ; preds = %1062, %1057
  br label %1064

1064:                                             ; preds = %1063, %1047
  call void @llvm.lifetime.start.p0(i64 32, ptr %90) #8
  %1065 = load ptr, ptr %89, align 8, !tbaa !5
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %90, ptr noundef nonnull align 8 dereferenceable(32) %1065, i64 noundef 0, i64 noundef 7)
          to label %1066 unwind label %1082

1066:                                             ; preds = %1064
  %1067 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %90, ptr noundef @.str.18)
          to label %1068 unwind label %1086

1068:                                             ; preds = %1066
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %90) #8
  br i1 %1067, label %1069, label %1111

1069:                                             ; preds = %1068
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %92) #8
  %1070 = load ptr, ptr %89, align 8, !tbaa !5
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %92, ptr noundef nonnull align 8 dereferenceable(32) %1070, i64 noundef 7, i64 noundef 2)
          to label %1071 unwind label %1091

1071:                                             ; preds = %1069
  %1072 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef null, i32 noundef 10)
          to label %1073 unwind label %1095

1073:                                             ; preds = %1071
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %92) #8
  store i32 %1072, ptr %91, align 4, !tbaa !11
  %1074 = load i32, ptr %91, align 4, !tbaa !11
  %1075 = load i32, ptr %84, align 4, !tbaa !11
  %1076 = icmp sge i32 %1074, %1075
  br i1 %1076, label %1077, label %1104

1077:                                             ; preds = %1073
  %1078 = load ptr, ptr %81, align 8, !tbaa !5
  %1079 = load ptr, ptr %89, align 8, !tbaa !5
  %1080 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP12ggml_backendSt4lessIS5_ESaISt4pairIKS5_S7_EEEixERSB_(ptr noundef nonnull align 8 dereferenceable(48) %83, ptr noundef nonnull align 8 dereferenceable(32) %1079)
          to label %1081 unwind label %1100

1081:                                             ; preds = %1077
  store ptr %1078, ptr %1080, align 8, !tbaa !5
  br label %1109

1082:                                             ; preds = %1064
  %1083 = landingpad { ptr, i32 }
          cleanup
  %1084 = extractvalue { ptr, i32 } %1083, 0
  store ptr %1084, ptr %11, align 8
  %1085 = extractvalue { ptr, i32 } %1083, 1
  store i32 %1085, ptr %12, align 4
  br label %1090

1086:                                             ; preds = %1066
  %1087 = landingpad { ptr, i32 }
          cleanup
  %1088 = extractvalue { ptr, i32 } %1087, 0
  store ptr %1088, ptr %11, align 8
  %1089 = extractvalue { ptr, i32 } %1087, 1
  store i32 %1089, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #8
  br label %1090

1090:                                             ; preds = %1086, %1082
  call void @llvm.lifetime.end.p0(i64 32, ptr %90) #8
  br label %1114

1091:                                             ; preds = %1069
  %1092 = landingpad { ptr, i32 }
          cleanup
  %1093 = extractvalue { ptr, i32 } %1092, 0
  store ptr %1093, ptr %11, align 8
  %1094 = extractvalue { ptr, i32 } %1092, 1
  store i32 %1094, ptr %12, align 4
  br label %1099

1095:                                             ; preds = %1071
  %1096 = landingpad { ptr, i32 }
          cleanup
  %1097 = extractvalue { ptr, i32 } %1096, 0
  store ptr %1097, ptr %11, align 8
  %1098 = extractvalue { ptr, i32 } %1096, 1
  store i32 %1098, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #8
  br label %1099

1099:                                             ; preds = %1095, %1091
  call void @llvm.lifetime.end.p0(i64 32, ptr %92) #8
  br label %1110

1100:                                             ; preds = %1104, %1077
  %1101 = landingpad { ptr, i32 }
          cleanup
  %1102 = extractvalue { ptr, i32 } %1101, 0
  store ptr %1102, ptr %11, align 8
  %1103 = extractvalue { ptr, i32 } %1101, 1
  store i32 %1103, ptr %12, align 4
  br label %1110

1104:                                             ; preds = %1073
  %1105 = load ptr, ptr %82, align 8, !tbaa !5
  %1106 = load ptr, ptr %89, align 8, !tbaa !5
  %1107 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP12ggml_backendSt4lessIS5_ESaISt4pairIKS5_S7_EEEixERSB_(ptr noundef nonnull align 8 dereferenceable(48) %83, ptr noundef nonnull align 8 dereferenceable(32) %1106)
          to label %1108 unwind label %1100

1108:                                             ; preds = %1104
  store ptr %1105, ptr %1107, align 8, !tbaa !5
  br label %1109

1109:                                             ; preds = %1108, %1081
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #8
  br label %1111

1110:                                             ; preds = %1100, %1099
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #8
  br label %1114

1111:                                             ; preds = %1109, %1068
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #8
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %88) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %88) #8
  br label %1112

1112:                                             ; preds = %1111
  %1113 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %86) #8
  br label %989

1114:                                             ; preds = %1110, %1090, %1026
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #8
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %88) #8
  br label %1115

1115:                                             ; preds = %1114, %1022
  call void @llvm.lifetime.end.p0(i64 40, ptr %88) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #8
  br label %1773

1116:                                             ; preds = %991
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #8
  call void @llvm.lifetime.start.p0(i64 48, ptr %93) #8
  call void @_ZNSt3mapIP12ggml_backend12ggml_tallocrSt4lessIS1_ESaISt4pairIKS1_S2_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %93) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #8
  %1117 = load ptr, ptr %7, align 8, !tbaa !5
  %1118 = getelementptr inbounds %struct.gpt2_model, ptr %1117, i32 0, i32 10
  store ptr %1118, ptr %94, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #8
  %1119 = load ptr, ptr %94, align 8, !tbaa !5
  %1120 = call ptr @_ZNSt6vectorIP12ggml_backendSaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1119) #8
  %1121 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %95, i32 0, i32 0
  store ptr %1120, ptr %1121, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #8
  %1122 = load ptr, ptr %94, align 8, !tbaa !5
  %1123 = call ptr @_ZNSt6vectorIP12ggml_backendSaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1122) #8
  %1124 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %96, i32 0, i32 0
  store ptr %1123, ptr %1124, align 8
  br label %1125

1125:                                             ; preds = %1229, %1116
  %1126 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPP12ggml_backendSt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %95, ptr noundef nonnull align 8 dereferenceable(8) %96) #8
  br i1 %1126, label %1128, label %1127

1127:                                             ; preds = %1125
  store i32 10, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #8
  br label %1232

1128:                                             ; preds = %1125
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #8
  %1129 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPP12ggml_backendSt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %95) #8
  %1130 = load ptr, ptr %1129, align 8, !tbaa !5
  store ptr %1130, ptr %97, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #8
  store i64 0, ptr %98, align 8, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #8
  %1131 = load ptr, ptr %7, align 8, !tbaa !5
  %1132 = getelementptr inbounds %struct.gpt2_model, ptr %1131, i32 0, i32 14
  store ptr %1132, ptr %99, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #8
  %1133 = load ptr, ptr %99, align 8, !tbaa !5
  %1134 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %1133) #8
  %1135 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %100, i32 0, i32 0
  store ptr %1134, ptr %1135, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #8
  %1136 = load ptr, ptr %99, align 8, !tbaa !5
  %1137 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %1136) #8
  %1138 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %101, i32 0, i32 0
  store ptr %1137, ptr %1138, align 8
  br label %1139

1139:                                             ; preds = %1168, %1128
  %1140 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorEESD_(ptr noundef nonnull align 8 dereferenceable(8) %100, ptr noundef nonnull align 8 dereferenceable(8) %101) #8
  br i1 %1140, label %1142, label %1141

1141:                                             ; preds = %1139
  store i32 12, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #8
  br label %1171

1142:                                             ; preds = %1139
  call void @llvm.lifetime.start.p0(i64 40, ptr %102) #8
  %1143 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %100) #8
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(40) %102, ptr noundef nonnull align 8 dereferenceable(40) %1143)
          to label %1144 unwind label %1159

1144:                                             ; preds = %1142
  %1145 = getelementptr inbounds %"struct.std::pair", ptr %102, i32 0, i32 0
  %1146 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP12ggml_backendSt4lessIS5_ESaISt4pairIKS5_S7_EEEixERSB_(ptr noundef nonnull align 8 dereferenceable(48) %83, ptr noundef nonnull align 8 dereferenceable(32) %1145)
          to label %1147 unwind label %1163

1147:                                             ; preds = %1144
  %1148 = load ptr, ptr %1146, align 8, !tbaa !5
  %1149 = load ptr, ptr %97, align 8, !tbaa !5
  %1150 = icmp eq ptr %1148, %1149
  br i1 %1150, label %1151, label %1167

1151:                                             ; preds = %1147
  %1152 = getelementptr inbounds %"struct.std::pair", ptr %102, i32 0, i32 1
  %1153 = load ptr, ptr %1152, align 8, !tbaa !82
  %1154 = invoke i64 @ggml_nbytes(ptr noundef %1153)
          to label %1155 unwind label %1163

1155:                                             ; preds = %1151
  %1156 = add i64 %1154, 512
  %1157 = load i64, ptr %98, align 8, !tbaa !50
  %1158 = add i64 %1157, %1156
  store i64 %1158, ptr %98, align 8, !tbaa !50
  br label %1167

1159:                                             ; preds = %1142
  %1160 = landingpad { ptr, i32 }
          cleanup
  %1161 = extractvalue { ptr, i32 } %1160, 0
  store ptr %1161, ptr %11, align 8
  %1162 = extractvalue { ptr, i32 } %1160, 1
  store i32 %1162, ptr %12, align 4
  br label %1170

1163:                                             ; preds = %1151, %1144
  %1164 = landingpad { ptr, i32 }
          cleanup
  %1165 = extractvalue { ptr, i32 } %1164, 0
  store ptr %1165, ptr %11, align 8
  %1166 = extractvalue { ptr, i32 } %1164, 1
  store i32 %1166, ptr %12, align 4
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %102) #8
  br label %1170

1167:                                             ; preds = %1155, %1147
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %102) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %102) #8
  br label %1168

1168:                                             ; preds = %1167
  %1169 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %100) #8
  br label %1139

1170:                                             ; preds = %1163, %1159
  call void @llvm.lifetime.end.p0(i64 40, ptr %102) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #8
  br label %1231

1171:                                             ; preds = %1141
  %1172 = load i64, ptr %98, align 8, !tbaa !50
  %1173 = icmp ugt i64 %1172, 0
  br i1 %1173, label %1174, label %1220

1174:                                             ; preds = %1171
  %1175 = load ptr, ptr %97, align 8, !tbaa !5
  %1176 = invoke ptr @ggml_backend_name(ptr noundef %1175)
          to label %1177 unwind label %1202

1177:                                             ; preds = %1174
  %1178 = load i64, ptr %98, align 8, !tbaa !50
  %1179 = uitofp i64 %1178 to double
  %1180 = fdiv double %1179, 1.024000e+03
  %1181 = fdiv double %1180, 1.024000e+03
  %1182 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.31, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, ptr noundef %1176, double noundef %1181)
          to label %1183 unwind label %1202

1183:                                             ; preds = %1177
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #8
  %1184 = load ptr, ptr %97, align 8, !tbaa !5
  %1185 = load i64, ptr %98, align 8, !tbaa !50
  %1186 = invoke ptr @ggml_backend_alloc_buffer(ptr noundef %1184, i64 noundef %1185)
          to label %1187 unwind label %1206

1187:                                             ; preds = %1183
  store ptr %1186, ptr %103, align 8, !tbaa !5
  %1188 = load ptr, ptr %103, align 8, !tbaa !5
  invoke void @ggml_backend_buffer_set_usage(ptr noundef %1188, i32 noundef 1)
          to label %1189 unwind label %1206

1189:                                             ; preds = %1187
  %1190 = load ptr, ptr %7, align 8, !tbaa !5
  %1191 = getelementptr inbounds %struct.gpt2_model, ptr %1190, i32 0, i32 11
  invoke void @_ZNSt6vectorIP19ggml_backend_bufferSaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %1191, ptr noundef nonnull align 8 dereferenceable(8) %103)
          to label %1192 unwind label %1206

1192:                                             ; preds = %1189
  call void @llvm.lifetime.start.p0(i64 32, ptr %104) #8
  %1193 = load ptr, ptr %103, align 8, !tbaa !5
  invoke void @ggml_tallocr_new(ptr dead_on_unwind writable sret(%struct.ggml_tallocr) align 8 %104, ptr noundef %1193)
          to label %1194 unwind label %1210

1194:                                             ; preds = %1192
  call void @llvm.lifetime.start.p0(i64 40, ptr %105) #8
  invoke void @_ZSt9make_pairIRP12ggml_backend12ggml_tallocrESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS5_INS6_IT0_E4typeEE6__typeEEOS7_OSC_(ptr dead_on_unwind writable sret(%"struct.std::pair.49") align 8 %105, ptr noundef nonnull align 8 dereferenceable(8) %97, ptr noundef nonnull align 8 dereferenceable(32) %104)
          to label %1195 unwind label %1214

1195:                                             ; preds = %1194
  %1196 = invoke { ptr, i8 } @_ZNSt3mapIP12ggml_backend12ggml_tallocrSt4lessIS1_ESaISt4pairIKS1_S2_EEE6insertIS5_IS1_S2_EEENSt9enable_ifIXsr16is_constructibleIS7_T_EE5valueES5_ISt17_Rb_tree_iteratorIS7_EbEE4typeEOSD_(ptr noundef nonnull align 8 dereferenceable(48) %93, ptr noundef nonnull align 8 dereferenceable(40) %105)
          to label %1197 unwind label %1214

1197:                                             ; preds = %1195
  %1198 = getelementptr inbounds { ptr, i8 }, ptr %106, i32 0, i32 0
  %1199 = extractvalue { ptr, i8 } %1196, 0
  store ptr %1199, ptr %1198, align 8
  %1200 = getelementptr inbounds { ptr, i8 }, ptr %106, i32 0, i32 1
  %1201 = extractvalue { ptr, i8 } %1196, 1
  store i8 %1201, ptr %1200, align 8
  call void @llvm.lifetime.end.p0(i64 40, ptr %105) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %104) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #8
  br label %1228

1202:                                             ; preds = %1177, %1174
  %1203 = landingpad { ptr, i32 }
          cleanup
  %1204 = extractvalue { ptr, i32 } %1203, 0
  store ptr %1204, ptr %11, align 8
  %1205 = extractvalue { ptr, i32 } %1203, 1
  store i32 %1205, ptr %12, align 4
  br label %1231

1206:                                             ; preds = %1189, %1187, %1183
  %1207 = landingpad { ptr, i32 }
          cleanup
  %1208 = extractvalue { ptr, i32 } %1207, 0
  store ptr %1208, ptr %11, align 8
  %1209 = extractvalue { ptr, i32 } %1207, 1
  store i32 %1209, ptr %12, align 4
  br label %1219

1210:                                             ; preds = %1192
  %1211 = landingpad { ptr, i32 }
          cleanup
  %1212 = extractvalue { ptr, i32 } %1211, 0
  store ptr %1212, ptr %11, align 8
  %1213 = extractvalue { ptr, i32 } %1211, 1
  store i32 %1213, ptr %12, align 4
  br label %1218

1214:                                             ; preds = %1195, %1194
  %1215 = landingpad { ptr, i32 }
          cleanup
  %1216 = extractvalue { ptr, i32 } %1215, 0
  store ptr %1216, ptr %11, align 8
  %1217 = extractvalue { ptr, i32 } %1215, 1
  store i32 %1217, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 40, ptr %105) #8
  br label %1218

1218:                                             ; preds = %1214, %1210
  call void @llvm.lifetime.end.p0(i64 32, ptr %104) #8
  br label %1219

1219:                                             ; preds = %1218, %1206
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #8
  br label %1231

1220:                                             ; preds = %1171
  %1221 = load ptr, ptr %7, align 8, !tbaa !5
  %1222 = getelementptr inbounds %struct.gpt2_model, ptr %1221, i32 0, i32 11
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #8
  store ptr null, ptr %107, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIP19ggml_backend_bufferSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %1222, ptr noundef nonnull align 8 dereferenceable(8) %107)
          to label %1223 unwind label %1224

1223:                                             ; preds = %1220
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #8
  br label %1228

1224:                                             ; preds = %1220
  %1225 = landingpad { ptr, i32 }
          cleanup
  %1226 = extractvalue { ptr, i32 } %1225, 0
  store ptr %1226, ptr %11, align 8
  %1227 = extractvalue { ptr, i32 } %1225, 1
  store i32 %1227, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #8
  br label %1231

1228:                                             ; preds = %1223, %1197
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #8
  br label %1229

1229:                                             ; preds = %1228
  %1230 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPP12ggml_backendSt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %95) #8
  br label %1125

1231:                                             ; preds = %1224, %1219, %1202, %1170
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #8
  br label %1772

1232:                                             ; preds = %1127
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #8
  %1233 = load ptr, ptr %7, align 8, !tbaa !5
  %1234 = getelementptr inbounds %struct.gpt2_model, ptr %1233, i32 0, i32 0
  store ptr %1234, ptr %108, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #8
  %1235 = load ptr, ptr %108, align 8, !tbaa !5
  %1236 = getelementptr inbounds %struct.gpt2_hparams, ptr %1235, i32 0, i32 2
  %1237 = load i32, ptr %1236, align 4, !tbaa !18
  store i32 %1237, ptr %109, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #8
  %1238 = load ptr, ptr %108, align 8, !tbaa !5
  %1239 = getelementptr inbounds %struct.gpt2_hparams, ptr %1238, i32 0, i32 4
  %1240 = load i32, ptr %1239, align 4, !tbaa !20
  store i32 %1240, ptr %110, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #8
  %1241 = load ptr, ptr %108, align 8, !tbaa !5
  %1242 = getelementptr inbounds %struct.gpt2_hparams, ptr %1241, i32 0, i32 1
  %1243 = load i32, ptr %1242, align 4, !tbaa !17
  store i32 %1243, ptr %111, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #8
  %1244 = load i32, ptr %110, align 4, !tbaa !11
  %1245 = load i32, ptr %111, align 4, !tbaa !11
  %1246 = mul nsw i32 %1244, %1245
  store i32 %1246, ptr %112, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #8
  %1247 = load i32, ptr %109, align 4, !tbaa !11
  %1248 = load i32, ptr %112, align 4, !tbaa !11
  %1249 = mul nsw i32 %1247, %1248
  store i32 %1249, ptr %113, align 4, !tbaa !11
  %1250 = load ptr, ptr %24, align 8, !tbaa !5
  %1251 = load ptr, ptr %1250, align 8, !tbaa !5
  %1252 = load i32, ptr %113, align 4, !tbaa !11
  %1253 = sext i32 %1252 to i64
  %1254 = invoke ptr @ggml_new_tensor_1d(ptr noundef %1251, i32 noundef 0, i64 noundef %1253)
          to label %1255 unwind label %1349

1255:                                             ; preds = %1232
  %1256 = load ptr, ptr %7, align 8, !tbaa !5
  %1257 = getelementptr inbounds %struct.gpt2_model, ptr %1256, i32 0, i32 7
  store ptr %1254, ptr %1257, align 8, !tbaa !84
  %1258 = load ptr, ptr %24, align 8, !tbaa !5
  %1259 = load ptr, ptr %1258, align 8, !tbaa !5
  %1260 = load i32, ptr %113, align 4, !tbaa !11
  %1261 = sext i32 %1260 to i64
  %1262 = invoke ptr @ggml_new_tensor_1d(ptr noundef %1259, i32 noundef 0, i64 noundef %1261)
          to label %1263 unwind label %1349

1263:                                             ; preds = %1255
  %1264 = load ptr, ptr %7, align 8, !tbaa !5
  %1265 = getelementptr inbounds %struct.gpt2_model, ptr %1264, i32 0, i32 8
  store ptr %1262, ptr %1265, align 8, !tbaa !85
  %1266 = load ptr, ptr %7, align 8, !tbaa !5
  %1267 = getelementptr inbounds %struct.gpt2_model, ptr %1266, i32 0, i32 7
  %1268 = load ptr, ptr %1267, align 8, !tbaa !84
  %1269 = invoke ptr @ggml_set_name(ptr noundef %1268, ptr noundef @.str.32)
          to label %1270 unwind label %1349

1270:                                             ; preds = %1263
  %1271 = load ptr, ptr %7, align 8, !tbaa !5
  %1272 = getelementptr inbounds %struct.gpt2_model, ptr %1271, i32 0, i32 8
  %1273 = load ptr, ptr %1272, align 8, !tbaa !85
  %1274 = invoke ptr @ggml_set_name(ptr noundef %1273, ptr noundef @.str.33)
          to label %1275 unwind label %1349

1275:                                             ; preds = %1270
  call void @llvm.lifetime.start.p0(i64 8, ptr %114) #8
  %1276 = load ptr, ptr %7, align 8, !tbaa !5
  %1277 = getelementptr inbounds %struct.gpt2_model, ptr %1276, i32 0, i32 7
  %1278 = load ptr, ptr %1277, align 8, !tbaa !84
  %1279 = invoke i64 @ggml_nbytes(ptr noundef %1278)
          to label %1280 unwind label %1353

1280:                                             ; preds = %1275
  %1281 = load ptr, ptr %7, align 8, !tbaa !5
  %1282 = getelementptr inbounds %struct.gpt2_model, ptr %1281, i32 0, i32 8
  %1283 = load ptr, ptr %1282, align 8, !tbaa !85
  %1284 = invoke i64 @ggml_nbytes(ptr noundef %1283)
          to label %1285 unwind label %1353

1285:                                             ; preds = %1280
  %1286 = add i64 %1279, %1284
  store i64 %1286, ptr %114, align 8, !tbaa !50
  %1287 = load i64, ptr %114, align 8, !tbaa !50
  %1288 = uitofp i64 %1287 to double
  %1289 = fdiv double %1288, 1.024000e+03
  %1290 = fdiv double %1289, 1.024000e+03
  %1291 = load i32, ptr %112, align 4, !tbaa !11
  %1292 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.34, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, double noundef %1290, i32 noundef %1291)
          to label %1293 unwind label %1353

1293:                                             ; preds = %1285
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #8
  %1294 = load ptr, ptr %9, align 8, !tbaa !5
  %1295 = getelementptr inbounds %struct.gpt_params, ptr %1294, i32 0, i32 6
  %1296 = load i32, ptr %1295, align 8, !tbaa !78
  %1297 = load ptr, ptr %108, align 8, !tbaa !5
  %1298 = getelementptr inbounds %struct.gpt2_hparams, ptr %1297, i32 0, i32 4
  %1299 = load i32, ptr %1298, align 4, !tbaa !20
  %1300 = sdiv i32 %1299, 2
  %1301 = icmp sge i32 %1296, %1300
  br i1 %1301, label %1302, label %1304

1302:                                             ; preds = %1293
  %1303 = load ptr, ptr %81, align 8, !tbaa !5
  br label %1306

1304:                                             ; preds = %1293
  %1305 = load ptr, ptr %82, align 8, !tbaa !5
  br label %1306

1306:                                             ; preds = %1304, %1302
  %1307 = phi ptr [ %1303, %1302 ], [ %1305, %1304 ]
  store ptr %1307, ptr %115, align 8, !tbaa !5
  %1308 = load ptr, ptr %115, align 8, !tbaa !5
  %1309 = invoke ptr @ggml_backend_name(ptr noundef %1308)
          to label %1310 unwind label %1357

1310:                                             ; preds = %1306
  %1311 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.35, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, ptr noundef %1309)
          to label %1312 unwind label %1357

1312:                                             ; preds = %1310
  %1313 = load ptr, ptr %115, align 8, !tbaa !5
  %1314 = load i64, ptr %114, align 8, !tbaa !50
  %1315 = add i64 %1314, 1024
  %1316 = invoke ptr @ggml_backend_alloc_buffer(ptr noundef %1313, i64 noundef %1315)
          to label %1317 unwind label %1357

1317:                                             ; preds = %1312
  %1318 = load ptr, ptr %7, align 8, !tbaa !5
  %1319 = getelementptr inbounds %struct.gpt2_model, ptr %1318, i32 0, i32 12
  store ptr %1316, ptr %1319, align 8, !tbaa !86
  call void @llvm.lifetime.start.p0(i64 32, ptr %116) #8
  %1320 = load ptr, ptr %7, align 8, !tbaa !5
  %1321 = getelementptr inbounds %struct.gpt2_model, ptr %1320, i32 0, i32 12
  %1322 = load ptr, ptr %1321, align 8, !tbaa !86
  invoke void @ggml_tallocr_new(ptr dead_on_unwind writable sret(%struct.ggml_tallocr) align 8 %116, ptr noundef %1322)
          to label %1323 unwind label %1361

1323:                                             ; preds = %1317
  %1324 = load ptr, ptr %7, align 8, !tbaa !5
  %1325 = getelementptr inbounds %struct.gpt2_model, ptr %1324, i32 0, i32 7
  %1326 = load ptr, ptr %1325, align 8, !tbaa !84
  %1327 = invoke i32 @ggml_tallocr_alloc(ptr noundef %116, ptr noundef %1326)
          to label %1328 unwind label %1361

1328:                                             ; preds = %1323
  %1329 = load ptr, ptr %7, align 8, !tbaa !5
  %1330 = getelementptr inbounds %struct.gpt2_model, ptr %1329, i32 0, i32 8
  %1331 = load ptr, ptr %1330, align 8, !tbaa !85
  %1332 = invoke i32 @ggml_tallocr_alloc(ptr noundef %116, ptr noundef %1331)
          to label %1333 unwind label %1361

1333:                                             ; preds = %1328
  call void @llvm.lifetime.end.p0(i64 32, ptr %116) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %117) #8
  store i64 0, ptr %117, align 8, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 1, ptr %118) #8
  store i8 0, ptr %118, align 1, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 24, ptr %119) #8
  call void @_ZNSt6vectorIcSaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %119) #8
  br label %1334

1334:                                             ; preds = %1644, %1333
  br label %1335

1335:                                             ; preds = %1334
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #8
  %1336 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef %120, i64 noundef 4)
          to label %1337 unwind label %1368

1337:                                             ; preds = %1335
  %1338 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef %121, i64 noundef 4)
          to label %1339 unwind label %1368

1339:                                             ; preds = %1337
  %1340 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef %122, i64 noundef 4)
          to label %1341 unwind label %1368

1341:                                             ; preds = %1339
  %1342 = load ptr, ptr %10, align 8, !tbaa !9
  %1343 = getelementptr i8, ptr %1342, i64 -24
  %1344 = load i64, ptr %1343, align 8
  %1345 = getelementptr inbounds i8, ptr %10, i64 %1344
  %1346 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %1345)
          to label %1347 unwind label %1368

1347:                                             ; preds = %1341
  br i1 %1346, label %1348, label %1372

1348:                                             ; preds = %1347
  store i32 15, ptr %13, align 4
  br label %1642

1349:                                             ; preds = %1270, %1263, %1255, %1232
  %1350 = landingpad { ptr, i32 }
          cleanup
  %1351 = extractvalue { ptr, i32 } %1350, 0
  store ptr %1351, ptr %11, align 8
  %1352 = extractvalue { ptr, i32 } %1350, 1
  store i32 %1352, ptr %12, align 4
  br label %1367

1353:                                             ; preds = %1285, %1280, %1275
  %1354 = landingpad { ptr, i32 }
          cleanup
  %1355 = extractvalue { ptr, i32 } %1354, 0
  store ptr %1355, ptr %11, align 8
  %1356 = extractvalue { ptr, i32 } %1354, 1
  store i32 %1356, ptr %12, align 4
  br label %1366

1357:                                             ; preds = %1312, %1310, %1306
  %1358 = landingpad { ptr, i32 }
          cleanup
  %1359 = extractvalue { ptr, i32 } %1358, 0
  store ptr %1359, ptr %11, align 8
  %1360 = extractvalue { ptr, i32 } %1358, 1
  store i32 %1360, ptr %12, align 4
  br label %1365

1361:                                             ; preds = %1328, %1323, %1317
  %1362 = landingpad { ptr, i32 }
          cleanup
  %1363 = extractvalue { ptr, i32 } %1362, 0
  store ptr %1363, ptr %11, align 8
  %1364 = extractvalue { ptr, i32 } %1362, 1
  store i32 %1364, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %116) #8
  br label %1365

1365:                                             ; preds = %1361, %1357
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #8
  br label %1366

1366:                                             ; preds = %1365, %1353
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #8
  br label %1367

1367:                                             ; preds = %1366, %1349
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #8
  br label %1772

1368:                                             ; preds = %1341, %1339, %1337, %1335
  %1369 = landingpad { ptr, i32 }
          cleanup
  %1370 = extractvalue { ptr, i32 } %1369, 0
  store ptr %1370, ptr %11, align 8
  %1371 = extractvalue { ptr, i32 } %1369, 1
  store i32 %1371, ptr %12, align 4
  br label %1652

1372:                                             ; preds = %1347
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #8
  store i32 1, ptr %123, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %124, ptr align 4 @__const._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params.ne, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #8
  store i32 0, ptr %125, align 4, !tbaa !11
  br label %1373

1373:                                             ; preds = %1390, %1372
  %1374 = load i32, ptr %125, align 4, !tbaa !11
  %1375 = load i32, ptr %120, align 4, !tbaa !11
  %1376 = icmp slt i32 %1374, %1375
  br i1 %1376, label %1378, label %1377

1377:                                             ; preds = %1373
  store i32 16, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #8
  br label %1397

1378:                                             ; preds = %1373
  %1379 = load i32, ptr %125, align 4, !tbaa !11
  %1380 = sext i32 %1379 to i64
  %1381 = getelementptr inbounds [2 x i32], ptr %124, i64 0, i64 %1380
  %1382 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef %1381, i64 noundef 4)
          to label %1383 unwind label %1393

1383:                                             ; preds = %1378
  %1384 = load i32, ptr %125, align 4, !tbaa !11
  %1385 = sext i32 %1384 to i64
  %1386 = getelementptr inbounds [2 x i32], ptr %124, i64 0, i64 %1385
  %1387 = load i32, ptr %1386, align 4, !tbaa !11
  %1388 = load i32, ptr %123, align 4, !tbaa !11
  %1389 = mul nsw i32 %1388, %1387
  store i32 %1389, ptr %123, align 4, !tbaa !11
  br label %1390

1390:                                             ; preds = %1383
  %1391 = load i32, ptr %125, align 4, !tbaa !11
  %1392 = add nsw i32 %1391, 1
  store i32 %1392, ptr %125, align 4, !tbaa !11
  br label %1373, !llvm.loop !87

1393:                                             ; preds = %1378
  %1394 = landingpad { ptr, i32 }
          cleanup
  %1395 = extractvalue { ptr, i32 } %1394, 0
  store ptr %1395, ptr %11, align 8
  %1396 = extractvalue { ptr, i32 } %1394, 1
  store i32 %1396, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #8
  br label %1651

1397:                                             ; preds = %1377
  call void @llvm.lifetime.start.p0(i64 32, ptr %126) #8
  %1398 = load i32, ptr %121, align 4, !tbaa !11
  %1399 = sext i32 %1398 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %127) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %127) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %126, i64 noundef %1399, i8 noundef signext 0, ptr noundef nonnull align 1 dereferenceable(1) %127)
          to label %1400 unwind label %1421

1400:                                             ; preds = %1397
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %127) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %127) #8
  %1401 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %126, i64 noundef 0)
          to label %1402 unwind label %1425

1402:                                             ; preds = %1400
  %1403 = load i32, ptr %121, align 4, !tbaa !11
  %1404 = sext i32 %1403 to i64
  %1405 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef %1401, i64 noundef %1404)
          to label %1406 unwind label %1425

1406:                                             ; preds = %1402
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #8
  %1407 = load ptr, ptr %7, align 8, !tbaa !5
  %1408 = getelementptr inbounds %struct.gpt2_model, ptr %1407, i32 0, i32 14
  %1409 = invoke ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEE4findERSB_(ptr noundef nonnull align 8 dereferenceable(48) %1408, ptr noundef nonnull align 8 dereferenceable(32) %126)
          to label %1410 unwind label %1429

1410:                                             ; preds = %1406
  %1411 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %128, i32 0, i32 0
  store ptr %1409, ptr %1411, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %129) #8
  %1412 = load ptr, ptr %7, align 8, !tbaa !5
  %1413 = getelementptr inbounds %struct.gpt2_model, ptr %1412, i32 0, i32 14
  %1414 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %1413) #8
  %1415 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %129, i32 0, i32 0
  store ptr %1414, ptr %1415, align 8
  %1416 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorEESD_(ptr noundef nonnull align 8 dereferenceable(8) %128, ptr noundef nonnull align 8 dereferenceable(8) %129) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #8
  br i1 %1416, label %1417, label %1433

1417:                                             ; preds = %1410
  %1418 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1419 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %126) #8
  %1420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1418, ptr noundef @.str.36, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, ptr noundef %1419) #8
  store i1 false, ptr %5, align 1
  store i32 1, ptr %13, align 4
  br label %1641

1421:                                             ; preds = %1397
  %1422 = landingpad { ptr, i32 }
          cleanup
  %1423 = extractvalue { ptr, i32 } %1422, 0
  store ptr %1423, ptr %11, align 8
  %1424 = extractvalue { ptr, i32 } %1422, 1
  store i32 %1424, ptr %12, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %127) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %127) #8
  br label %1650

1425:                                             ; preds = %1402, %1400
  %1426 = landingpad { ptr, i32 }
          cleanup
  %1427 = extractvalue { ptr, i32 } %1426, 0
  store ptr %1427, ptr %11, align 8
  %1428 = extractvalue { ptr, i32 } %1426, 1
  store i32 %1428, ptr %12, align 4
  br label %1649

1429:                                             ; preds = %1406
  %1430 = landingpad { ptr, i32 }
          cleanup
  %1431 = extractvalue { ptr, i32 } %1430, 0
  store ptr %1431, ptr %11, align 8
  %1432 = extractvalue { ptr, i32 } %1430, 1
  store i32 %1432, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #8
  br label %1649

1433:                                             ; preds = %1410
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #8
  %1434 = load ptr, ptr %7, align 8, !tbaa !5
  %1435 = getelementptr inbounds %struct.gpt2_model, ptr %1434, i32 0, i32 14
  %1436 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixERSB_(ptr noundef nonnull align 8 dereferenceable(48) %1435, ptr noundef nonnull align 8 dereferenceable(32) %126)
          to label %1437 unwind label %1453

1437:                                             ; preds = %1433
  %1438 = load ptr, ptr %1436, align 8, !tbaa !5
  store ptr %1438, ptr %130, align 8, !tbaa !5
  %1439 = load ptr, ptr %130, align 8, !tbaa !5
  %1440 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %126) #8
  %1441 = invoke ptr @ggml_set_name(ptr noundef %1439, ptr noundef %1440)
          to label %1442 unwind label %1453

1442:                                             ; preds = %1437
  %1443 = load ptr, ptr %130, align 8, !tbaa !5
  %1444 = invoke i64 @ggml_nelements(ptr noundef %1443)
          to label %1445 unwind label %1453

1445:                                             ; preds = %1442
  %1446 = load i32, ptr %123, align 4, !tbaa !11
  %1447 = sext i32 %1446 to i64
  %1448 = icmp ne i64 %1444, %1447
  br i1 %1448, label %1449, label %1457

1449:                                             ; preds = %1445
  %1450 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1451 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %126) #8
  %1452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1450, ptr noundef @.str.37, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, ptr noundef %1451) #8
  store i1 false, ptr %5, align 1
  store i32 1, ptr %13, align 4
  br label %1640

1453:                                             ; preds = %1442, %1437, %1433
  %1454 = landingpad { ptr, i32 }
          cleanup
  %1455 = extractvalue { ptr, i32 } %1454, 0
  store ptr %1455, ptr %11, align 8
  %1456 = extractvalue { ptr, i32 } %1454, 1
  store i32 %1456, ptr %12, align 4
  br label %1648

1457:                                             ; preds = %1445
  %1458 = load ptr, ptr %130, align 8, !tbaa !5
  %1459 = getelementptr inbounds %struct.ggml_tensor, ptr %1458, i32 0, i32 2
  %1460 = getelementptr inbounds [4 x i64], ptr %1459, i64 0, i64 0
  %1461 = load i64, ptr %1460, align 8, !tbaa !50
  %1462 = getelementptr inbounds [2 x i32], ptr %124, i64 0, i64 0
  %1463 = load i32, ptr %1462, align 4, !tbaa !11
  %1464 = sext i32 %1463 to i64
  %1465 = icmp ne i64 %1461, %1464
  br i1 %1465, label %1475, label %1466

1466:                                             ; preds = %1457
  %1467 = load ptr, ptr %130, align 8, !tbaa !5
  %1468 = getelementptr inbounds %struct.ggml_tensor, ptr %1467, i32 0, i32 2
  %1469 = getelementptr inbounds [4 x i64], ptr %1468, i64 0, i64 1
  %1470 = load i64, ptr %1469, align 8, !tbaa !50
  %1471 = getelementptr inbounds [2 x i32], ptr %124, i64 0, i64 1
  %1472 = load i32, ptr %1471, align 4, !tbaa !11
  %1473 = sext i32 %1472 to i64
  %1474 = icmp ne i64 %1470, %1473
  br i1 %1474, label %1475, label %1493

1475:                                             ; preds = %1466, %1457
  %1476 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1477 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %126) #8
  %1478 = load ptr, ptr %130, align 8, !tbaa !5
  %1479 = getelementptr inbounds %struct.ggml_tensor, ptr %1478, i32 0, i32 2
  %1480 = getelementptr inbounds [4 x i64], ptr %1479, i64 0, i64 0
  %1481 = load i64, ptr %1480, align 8, !tbaa !50
  %1482 = trunc i64 %1481 to i32
  %1483 = load ptr, ptr %130, align 8, !tbaa !5
  %1484 = getelementptr inbounds %struct.ggml_tensor, ptr %1483, i32 0, i32 2
  %1485 = getelementptr inbounds [4 x i64], ptr %1484, i64 0, i64 1
  %1486 = load i64, ptr %1485, align 8, !tbaa !50
  %1487 = trunc i64 %1486 to i32
  %1488 = getelementptr inbounds [2 x i32], ptr %124, i64 0, i64 0
  %1489 = load i32, ptr %1488, align 4, !tbaa !11
  %1490 = getelementptr inbounds [2 x i32], ptr %124, i64 0, i64 1
  %1491 = load i32, ptr %1490, align 4, !tbaa !11
  %1492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1476, ptr noundef @.str.38, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, ptr noundef %1477, i32 noundef %1482, i32 noundef %1487, i32 noundef %1489, i32 noundef %1491) #8
  store i1 false, ptr %5, align 1
  store i32 1, ptr %13, align 4
  br label %1640

1493:                                             ; preds = %1466
  call void @llvm.lifetime.start.p0(i64 8, ptr %131) #8
  %1494 = load i32, ptr %122, align 4, !tbaa !11
  %1495 = invoke i64 @ggml_type_size(i32 noundef %1494)
          to label %1496 unwind label %1522

1496:                                             ; preds = %1493
  store i64 %1495, ptr %131, align 8, !tbaa !50
  %1497 = load i32, ptr %123, align 4, !tbaa !11
  %1498 = sext i32 %1497 to i64
  %1499 = load i64, ptr %131, align 8, !tbaa !50
  %1500 = mul i64 %1498, %1499
  %1501 = load ptr, ptr %130, align 8, !tbaa !5
  %1502 = getelementptr inbounds %struct.ggml_tensor, ptr %1501, i32 0, i32 0
  %1503 = load i32, ptr %1502, align 8, !tbaa !88
  %1504 = invoke i64 @ggml_blck_size(i32 noundef %1503)
          to label %1505 unwind label %1522

1505:                                             ; preds = %1496
  %1506 = udiv i64 %1500, %1504
  %1507 = load ptr, ptr %130, align 8, !tbaa !5
  %1508 = invoke i64 @ggml_nbytes(ptr noundef %1507)
          to label %1509 unwind label %1522

1509:                                             ; preds = %1505
  %1510 = icmp ne i64 %1506, %1508
  br i1 %1510, label %1511, label %1526

1511:                                             ; preds = %1509
  %1512 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1513 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %126) #8
  %1514 = load ptr, ptr %130, align 8, !tbaa !5
  %1515 = invoke i64 @ggml_nbytes(ptr noundef %1514)
          to label %1516 unwind label %1522

1516:                                             ; preds = %1511
  %1517 = load i32, ptr %123, align 4, !tbaa !11
  %1518 = sext i32 %1517 to i64
  %1519 = load i64, ptr %131, align 8, !tbaa !50
  %1520 = mul i64 %1518, %1519
  %1521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1512, ptr noundef @.str.39, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, ptr noundef %1513, i64 noundef %1515, i64 noundef %1520) #8
  store i1 false, ptr %5, align 1
  store i32 1, ptr %13, align 4
  br label %1639

1522:                                             ; preds = %1511, %1505, %1496, %1493
  %1523 = landingpad { ptr, i32 }
          cleanup
  %1524 = extractvalue { ptr, i32 } %1523, 0
  store ptr %1524, ptr %11, align 8
  %1525 = extractvalue { ptr, i32 } %1523, 1
  store i32 %1525, ptr %12, align 4
  br label %1647

1526:                                             ; preds = %1509
  call void @llvm.lifetime.start.p0(i64 8, ptr %132) #8
  %1527 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP12ggml_backendSt4lessIS5_ESaISt4pairIKS5_S7_EEEixERSB_(ptr noundef nonnull align 8 dereferenceable(48) %83, ptr noundef nonnull align 8 dereferenceable(32) %126)
          to label %1528 unwind label %1551

1528:                                             ; preds = %1526
  %1529 = load ptr, ptr %1527, align 8, !tbaa !5
  store ptr %1529, ptr %132, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %134) #8
  %1530 = invoke ptr @_ZNSt3mapIP12ggml_backend12ggml_tallocrSt4lessIS1_ESaISt4pairIKS1_S2_EEE4findERS6_(ptr noundef nonnull align 8 dereferenceable(48) %93, ptr noundef nonnull align 8 dereferenceable(8) %132)
          to label %1531 unwind label %1555

1531:                                             ; preds = %1528
  %1532 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.48", ptr %134, i32 0, i32 0
  store ptr %1530, ptr %1532, align 8
  %1533 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKP12ggml_backend12ggml_tallocrEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %134) #8
  %1534 = getelementptr inbounds %"struct.std::pair.51", ptr %1533, i32 0, i32 1
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #8
  store ptr %1534, ptr %133, align 8, !tbaa !5
  %1535 = load ptr, ptr %133, align 8, !tbaa !5
  %1536 = load ptr, ptr %130, align 8, !tbaa !5
  %1537 = invoke i32 @ggml_tallocr_alloc(ptr noundef %1535, ptr noundef %1536)
          to label %1538 unwind label %1559

1538:                                             ; preds = %1531
  %1539 = load ptr, ptr %132, align 8, !tbaa !5
  %1540 = invoke zeroext i1 @ggml_backend_is_cpu(ptr noundef %1539)
          to label %1541 unwind label %1559

1541:                                             ; preds = %1538
  br i1 %1540, label %1542, label %1563

1542:                                             ; preds = %1541
  %1543 = load ptr, ptr %130, align 8, !tbaa !5
  %1544 = getelementptr inbounds %struct.ggml_tensor, ptr %1543, i32 0, i32 10
  %1545 = load ptr, ptr %1544, align 8, !tbaa !91
  %1546 = load ptr, ptr %130, align 8, !tbaa !5
  %1547 = invoke i64 @ggml_nbytes(ptr noundef %1546)
          to label %1548 unwind label %1559

1548:                                             ; preds = %1542
  %1549 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef %1545, i64 noundef %1547)
          to label %1550 unwind label %1559

1550:                                             ; preds = %1548
  br label %1580

1551:                                             ; preds = %1526
  %1552 = landingpad { ptr, i32 }
          cleanup
  %1553 = extractvalue { ptr, i32 } %1552, 0
  store ptr %1553, ptr %11, align 8
  %1554 = extractvalue { ptr, i32 } %1552, 1
  store i32 %1554, ptr %12, align 4
  br label %1646

1555:                                             ; preds = %1528
  %1556 = landingpad { ptr, i32 }
          cleanup
  %1557 = extractvalue { ptr, i32 } %1556, 0
  store ptr %1557, ptr %11, align 8
  %1558 = extractvalue { ptr, i32 } %1556, 1
  store i32 %1558, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #8
  br label %1645

1559:                                             ; preds = %1633, %1629, %1580, %1578, %1573, %1571, %1567, %1566, %1563, %1548, %1542, %1538, %1531
  %1560 = landingpad { ptr, i32 }
          cleanup
  %1561 = extractvalue { ptr, i32 } %1560, 0
  store ptr %1561, ptr %11, align 8
  %1562 = extractvalue { ptr, i32 } %1560, 1
  store i32 %1562, ptr %12, align 4
  br label %1645

1563:                                             ; preds = %1541
  %1564 = load ptr, ptr %130, align 8, !tbaa !5
  %1565 = invoke i64 @ggml_nbytes(ptr noundef %1564)
          to label %1566 unwind label %1559

1566:                                             ; preds = %1563
  invoke void @_ZNSt6vectorIcSaIcEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %119, i64 noundef %1565)
          to label %1567 unwind label %1559

1567:                                             ; preds = %1566
  %1568 = call noundef ptr @_ZNSt6vectorIcSaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %119) #8
  %1569 = load ptr, ptr %130, align 8, !tbaa !5
  %1570 = invoke i64 @ggml_nbytes(ptr noundef %1569)
          to label %1571 unwind label %1559

1571:                                             ; preds = %1567
  %1572 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef %1568, i64 noundef %1570)
          to label %1573 unwind label %1559

1573:                                             ; preds = %1571
  %1574 = load ptr, ptr %130, align 8, !tbaa !5
  %1575 = call noundef ptr @_ZNSt6vectorIcSaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %119) #8
  %1576 = load ptr, ptr %130, align 8, !tbaa !5
  %1577 = invoke i64 @ggml_nbytes(ptr noundef %1576)
          to label %1578 unwind label %1559

1578:                                             ; preds = %1573
  invoke void @ggml_backend_tensor_set(ptr noundef %1574, ptr noundef %1575, i64 noundef 0, i64 noundef %1577)
          to label %1579 unwind label %1559

1579:                                             ; preds = %1578
  br label %1580

1580:                                             ; preds = %1579, %1550
  %1581 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %126, ptr noundef @.str.15)
          to label %1582 unwind label %1559

1582:                                             ; preds = %1580
  br i1 %1581, label %1583, label %1629

1583:                                             ; preds = %1582
  %1584 = load i8, ptr %118, align 1, !tbaa !57, !range !92, !noundef !93
  %1585 = trunc i8 %1584 to i1
  %1586 = zext i1 %1585 to i32
  %1587 = icmp eq i32 %1586, 0
  br i1 %1587, label %1588, label %1629

1588:                                             ; preds = %1583
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %136) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %137) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %138) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %138) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %137, ptr noundef @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %138)
          to label %1589 unwind label %1615

1589:                                             ; preds = %1588
  %1590 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP12ggml_backendSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %83, ptr noundef nonnull align 8 dereferenceable(32) %137)
          to label %1591 unwind label %1619

1591:                                             ; preds = %1589
  %1592 = invoke ptr @_ZNSt3mapIP12ggml_backend12ggml_tallocrSt4lessIS1_ESaISt4pairIKS1_S2_EEE4findERS6_(ptr noundef nonnull align 8 dereferenceable(48) %93, ptr noundef nonnull align 8 dereferenceable(8) %1590)
          to label %1593 unwind label %1619

1593:                                             ; preds = %1591
  %1594 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.48", ptr %136, i32 0, i32 0
  store ptr %1592, ptr %1594, align 8
  %1595 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKP12ggml_backend12ggml_tallocrEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %136) #8
  %1596 = getelementptr inbounds %"struct.std::pair.51", ptr %1595, i32 0, i32 1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %138) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %138) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %137) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #8
  store ptr %1596, ptr %135, align 8, !tbaa !5
  %1597 = load ptr, ptr %135, align 8, !tbaa !5
  %1598 = load ptr, ptr %7, align 8, !tbaa !5
  %1599 = getelementptr inbounds %struct.gpt2_model, ptr %1598, i32 0, i32 5
  %1600 = load ptr, ptr %1599, align 8, !tbaa !63
  %1601 = invoke i32 @ggml_tallocr_alloc(ptr noundef %1597, ptr noundef %1600)
          to label %1602 unwind label %1624

1602:                                             ; preds = %1593
  %1603 = load ptr, ptr %130, align 8, !tbaa !5
  %1604 = load ptr, ptr %7, align 8, !tbaa !5
  %1605 = getelementptr inbounds %struct.gpt2_model, ptr %1604, i32 0, i32 5
  %1606 = load ptr, ptr %1605, align 8, !tbaa !63
  invoke void @ggml_backend_tensor_copy(ptr noundef %1603, ptr noundef %1606)
          to label %1607 unwind label %1624

1607:                                             ; preds = %1602
  %1608 = load ptr, ptr %7, align 8, !tbaa !5
  %1609 = getelementptr inbounds %struct.gpt2_model, ptr %1608, i32 0, i32 5
  %1610 = load ptr, ptr %1609, align 8, !tbaa !63
  %1611 = invoke i64 @ggml_nbytes(ptr noundef %1610)
          to label %1612 unwind label %1624

1612:                                             ; preds = %1607
  %1613 = load i64, ptr %117, align 8, !tbaa !50
  %1614 = add i64 %1613, %1611
  store i64 %1614, ptr %117, align 8, !tbaa !50
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #8
  br label %1629

1615:                                             ; preds = %1588
  %1616 = landingpad { ptr, i32 }
          cleanup
  %1617 = extractvalue { ptr, i32 } %1616, 0
  store ptr %1617, ptr %11, align 8
  %1618 = extractvalue { ptr, i32 } %1616, 1
  store i32 %1618, ptr %12, align 4
  br label %1623

1619:                                             ; preds = %1591, %1589
  %1620 = landingpad { ptr, i32 }
          cleanup
  %1621 = extractvalue { ptr, i32 } %1620, 0
  store ptr %1621, ptr %11, align 8
  %1622 = extractvalue { ptr, i32 } %1620, 1
  store i32 %1622, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #8
  br label %1623

1623:                                             ; preds = %1619, %1615
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %138) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %138) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %137) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #8
  br label %1628

1624:                                             ; preds = %1607, %1602, %1593
  %1625 = landingpad { ptr, i32 }
          cleanup
  %1626 = extractvalue { ptr, i32 } %1625, 0
  store ptr %1626, ptr %11, align 8
  %1627 = extractvalue { ptr, i32 } %1625, 1
  store i32 %1627, ptr %12, align 4
  br label %1628

1628:                                             ; preds = %1624, %1623
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #8
  br label %1645

1629:                                             ; preds = %1612, %1583, %1582
  %1630 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %126, ptr noundef @.str.17)
          to label %1631 unwind label %1559

1631:                                             ; preds = %1629
  br i1 %1630, label %1632, label %1633

1632:                                             ; preds = %1631
  store i8 1, ptr %118, align 1, !tbaa !57
  br label %1633

1633:                                             ; preds = %1632, %1631
  %1634 = load ptr, ptr %130, align 8, !tbaa !5
  %1635 = invoke i64 @ggml_nbytes(ptr noundef %1634)
          to label %1636 unwind label %1559

1636:                                             ; preds = %1633
  %1637 = load i64, ptr %117, align 8, !tbaa !50
  %1638 = add i64 %1637, %1635
  store i64 %1638, ptr %117, align 8, !tbaa !50
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #8
  store i32 0, ptr %13, align 4
  br label %1639

1639:                                             ; preds = %1636, %1516
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #8
  br label %1640

1640:                                             ; preds = %1639, %1475, %1449
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #8
  br label %1641

1641:                                             ; preds = %1640, %1417
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %126) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #8
  br label %1642

1642:                                             ; preds = %1641, %1348
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #8
  %1643 = load i32, ptr %13, align 4
  switch i32 %1643, label %1660 [
    i32 0, label %1644
    i32 15, label %1653
  ]

1644:                                             ; preds = %1642
  br label %1334, !llvm.loop !94

1645:                                             ; preds = %1628, %1559, %1555
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #8
  br label %1646

1646:                                             ; preds = %1645, %1551
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #8
  br label %1647

1647:                                             ; preds = %1646, %1522
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #8
  br label %1648

1648:                                             ; preds = %1647, %1453
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #8
  br label %1649

1649:                                             ; preds = %1648, %1429, %1425
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #8
  br label %1650

1650:                                             ; preds = %1649, %1421
  call void @llvm.lifetime.end.p0(i64 32, ptr %126) #8
  br label %1651

1651:                                             ; preds = %1650, %1393
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #8
  br label %1652

1652:                                             ; preds = %1651, %1368
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #8
  br label %1752

1653:                                             ; preds = %1642
  %1654 = load i64, ptr %117, align 8, !tbaa !50
  %1655 = uitofp i64 %1654 to double
  %1656 = fdiv double %1655, 1.024000e+03
  %1657 = fdiv double %1656, 1.024000e+03
  %1658 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.40, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, double noundef %1657)
          to label %1659 unwind label %1748

1659:                                             ; preds = %1653
  store i32 0, ptr %13, align 4
  br label %1660

1660:                                             ; preds = %1659, %1642
  call void @_ZNSt6vectorIcSaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %119) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %119) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %118) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #8
  %1661 = load i32, ptr %13, align 4
  switch i32 %1661, label %1771 [
    i32 0, label %1662
  ]

1662:                                             ; preds = %1660
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv(ptr noundef nonnull align 8 dereferenceable(256) %10)
          to label %1663 unwind label %1753

1663:                                             ; preds = %1662
  %1664 = load ptr, ptr %24, align 8, !tbaa !5
  %1665 = load ptr, ptr %1664, align 8, !tbaa !5
  %1666 = load ptr, ptr %7, align 8, !tbaa !5
  %1667 = getelementptr inbounds %struct.gpt2_model, ptr %1666, i32 0, i32 0
  %1668 = getelementptr inbounds %struct.gpt2_hparams, ptr %1667, i32 0, i32 1
  %1669 = load i32, ptr %1668, align 4, !tbaa !95
  %1670 = sext i32 %1669 to i64
  %1671 = invoke ptr @ggml_new_tensor_1d(ptr noundef %1665, i32 noundef 26, i64 noundef %1670)
          to label %1672 unwind label %1753

1672:                                             ; preds = %1663
  %1673 = load ptr, ptr %7, align 8, !tbaa !5
  %1674 = getelementptr inbounds %struct.gpt2_model, ptr %1673, i32 0, i32 15
  store ptr %1671, ptr %1674, align 8, !tbaa !96
  %1675 = load ptr, ptr %24, align 8, !tbaa !5
  %1676 = load ptr, ptr %1675, align 8, !tbaa !5
  %1677 = load ptr, ptr %7, align 8, !tbaa !5
  %1678 = getelementptr inbounds %struct.gpt2_model, ptr %1677, i32 0, i32 0
  %1679 = getelementptr inbounds %struct.gpt2_hparams, ptr %1678, i32 0, i32 1
  %1680 = load i32, ptr %1679, align 4, !tbaa !95
  %1681 = sext i32 %1680 to i64
  %1682 = invoke ptr @ggml_new_tensor_1d(ptr noundef %1676, i32 noundef 26, i64 noundef %1681)
          to label %1683 unwind label %1753

1683:                                             ; preds = %1672
  %1684 = load ptr, ptr %7, align 8, !tbaa !5
  %1685 = getelementptr inbounds %struct.gpt2_model, ptr %1684, i32 0, i32 16
  store ptr %1682, ptr %1685, align 8, !tbaa !97
  %1686 = load ptr, ptr %7, align 8, !tbaa !5
  %1687 = getelementptr inbounds %struct.gpt2_model, ptr %1686, i32 0, i32 15
  %1688 = load ptr, ptr %1687, align 8, !tbaa !96
  %1689 = invoke ptr @ggml_set_name(ptr noundef %1688, ptr noundef @.str.41)
          to label %1690 unwind label %1753

1690:                                             ; preds = %1683
  %1691 = load ptr, ptr %7, align 8, !tbaa !5
  %1692 = getelementptr inbounds %struct.gpt2_model, ptr %1691, i32 0, i32 16
  %1693 = load ptr, ptr %1692, align 8, !tbaa !97
  %1694 = invoke ptr @ggml_set_name(ptr noundef %1693, ptr noundef @.str.42)
          to label %1695 unwind label %1753

1695:                                             ; preds = %1690
  call void @llvm.lifetime.start.p0(i64 8, ptr %139) #8
  %1696 = load ptr, ptr %7, align 8, !tbaa !5
  %1697 = getelementptr inbounds %struct.gpt2_model, ptr %1696, i32 0, i32 15
  %1698 = load ptr, ptr %1697, align 8, !tbaa !96
  %1699 = invoke i64 @ggml_nbytes(ptr noundef %1698)
          to label %1700 unwind label %1757

1700:                                             ; preds = %1695
  %1701 = load ptr, ptr %7, align 8, !tbaa !5
  %1702 = getelementptr inbounds %struct.gpt2_model, ptr %1701, i32 0, i32 16
  %1703 = load ptr, ptr %1702, align 8, !tbaa !97
  %1704 = invoke i64 @ggml_nbytes(ptr noundef %1703)
          to label %1705 unwind label %1757

1705:                                             ; preds = %1700
  %1706 = add i64 %1699, %1704
  store i64 %1706, ptr %139, align 8, !tbaa !50
  call void @llvm.lifetime.start.p0(i64 8, ptr %140) #8
  %1707 = load ptr, ptr %9, align 8, !tbaa !5
  %1708 = getelementptr inbounds %struct.gpt_params, ptr %1707, i32 0, i32 6
  %1709 = load i32, ptr %1708, align 8, !tbaa !78
  %1710 = load ptr, ptr %7, align 8, !tbaa !5
  %1711 = getelementptr inbounds %struct.gpt2_model, ptr %1710, i32 0, i32 0
  %1712 = getelementptr inbounds %struct.gpt2_hparams, ptr %1711, i32 0, i32 4
  %1713 = load i32, ptr %1712, align 8, !tbaa !49
  %1714 = icmp sge i32 %1709, %1713
  br i1 %1714, label %1715, label %1717

1715:                                             ; preds = %1705
  %1716 = load ptr, ptr %81, align 8, !tbaa !5
  br label %1719

1717:                                             ; preds = %1705
  %1718 = load ptr, ptr %82, align 8, !tbaa !5
  br label %1719

1719:                                             ; preds = %1717, %1715
  %1720 = phi ptr [ %1716, %1715 ], [ %1718, %1717 ]
  store ptr %1720, ptr %140, align 8, !tbaa !5
  %1721 = load ptr, ptr %140, align 8, !tbaa !5
  %1722 = load i64, ptr %139, align 8, !tbaa !50
  %1723 = add i64 %1722, 1536
  %1724 = invoke ptr @ggml_backend_alloc_buffer(ptr noundef %1721, i64 noundef %1723)
          to label %1725 unwind label %1761

1725:                                             ; preds = %1719
  %1726 = load ptr, ptr %7, align 8, !tbaa !5
  %1727 = getelementptr inbounds %struct.gpt2_model, ptr %1726, i32 0, i32 13
  store ptr %1724, ptr %1727, align 8, !tbaa !98
  %1728 = load ptr, ptr %140, align 8, !tbaa !5
  %1729 = invoke ptr @ggml_backend_name(ptr noundef %1728)
          to label %1730 unwind label %1761

1730:                                             ; preds = %1725
  %1731 = load i64, ptr %139, align 8, !tbaa !50
  %1732 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.43, ptr noundef @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, ptr noundef %1729, i64 noundef %1731)
          to label %1733 unwind label %1761

1733:                                             ; preds = %1730
  call void @llvm.lifetime.start.p0(i64 32, ptr %141) #8
  %1734 = load ptr, ptr %7, align 8, !tbaa !5
  %1735 = getelementptr inbounds %struct.gpt2_model, ptr %1734, i32 0, i32 13
  %1736 = load ptr, ptr %1735, align 8, !tbaa !98
  invoke void @ggml_tallocr_new(ptr dead_on_unwind writable sret(%struct.ggml_tallocr) align 8 %141, ptr noundef %1736)
          to label %1737 unwind label %1765

1737:                                             ; preds = %1733
  %1738 = load ptr, ptr %7, align 8, !tbaa !5
  %1739 = getelementptr inbounds %struct.gpt2_model, ptr %1738, i32 0, i32 15
  %1740 = load ptr, ptr %1739, align 8, !tbaa !96
  %1741 = invoke i32 @ggml_tallocr_alloc(ptr noundef %141, ptr noundef %1740)
          to label %1742 unwind label %1765

1742:                                             ; preds = %1737
  %1743 = load ptr, ptr %7, align 8, !tbaa !5
  %1744 = getelementptr inbounds %struct.gpt2_model, ptr %1743, i32 0, i32 16
  %1745 = load ptr, ptr %1744, align 8, !tbaa !97
  %1746 = invoke i32 @ggml_tallocr_alloc(ptr noundef %141, ptr noundef %1745)
          to label %1747 unwind label %1765

1747:                                             ; preds = %1742
  call void @llvm.lifetime.end.p0(i64 32, ptr %141) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #8
  store i1 true, ptr %5, align 1
  store i32 1, ptr %13, align 4
  br label %1771

1748:                                             ; preds = %1653
  %1749 = landingpad { ptr, i32 }
          cleanup
  %1750 = extractvalue { ptr, i32 } %1749, 0
  store ptr %1750, ptr %11, align 8
  %1751 = extractvalue { ptr, i32 } %1749, 1
  store i32 %1751, ptr %12, align 4
  br label %1752

1752:                                             ; preds = %1748, %1652
  call void @_ZNSt6vectorIcSaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %119) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %119) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %118) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #8
  br label %1772

1753:                                             ; preds = %1690, %1683, %1672, %1663, %1662
  %1754 = landingpad { ptr, i32 }
          cleanup
  %1755 = extractvalue { ptr, i32 } %1754, 0
  store ptr %1755, ptr %11, align 8
  %1756 = extractvalue { ptr, i32 } %1754, 1
  store i32 %1756, ptr %12, align 4
  br label %1772

1757:                                             ; preds = %1700, %1695
  %1758 = landingpad { ptr, i32 }
          cleanup
  %1759 = extractvalue { ptr, i32 } %1758, 0
  store ptr %1759, ptr %11, align 8
  %1760 = extractvalue { ptr, i32 } %1758, 1
  store i32 %1760, ptr %12, align 4
  br label %1770

1761:                                             ; preds = %1730, %1725, %1719
  %1762 = landingpad { ptr, i32 }
          cleanup
  %1763 = extractvalue { ptr, i32 } %1762, 0
  store ptr %1763, ptr %11, align 8
  %1764 = extractvalue { ptr, i32 } %1762, 1
  store i32 %1764, ptr %12, align 4
  br label %1769

1765:                                             ; preds = %1742, %1737, %1733
  %1766 = landingpad { ptr, i32 }
          cleanup
  %1767 = extractvalue { ptr, i32 } %1766, 0
  store ptr %1767, ptr %11, align 8
  %1768 = extractvalue { ptr, i32 } %1766, 1
  store i32 %1768, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %141) #8
  br label %1769

1769:                                             ; preds = %1765, %1761
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #8
  br label %1770

1770:                                             ; preds = %1769, %1757
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #8
  br label %1772

1771:                                             ; preds = %1747, %1660
  call void @_ZNSt3mapIP12ggml_backend12ggml_tallocrSt4lessIS1_ESaISt4pairIKS1_S2_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %93) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %93) #8
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP12ggml_backendSt4lessIS5_ESaISt4pairIKS5_S7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %83) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %83) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #8
  br label %1774

1772:                                             ; preds = %1770, %1753, %1752, %1367, %1231
  call void @_ZNSt3mapIP12ggml_backend12ggml_tallocrSt4lessIS1_ESaISt4pairIKS1_S2_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %93) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %93) #8
  br label %1773

1773:                                             ; preds = %1772, %1115
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP12ggml_backendSt4lessIS5_ESaISt4pairIKS5_S7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %83) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %83) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #8
  br label %1775

1774:                                             ; preds = %1771, %382
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  br label %1776

1775:                                             ; preds = %1773, %993, %992, %377
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  br label %1777

1776:                                             ; preds = %1774, %334
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  br label %1778

1777:                                             ; preds = %1775, %345
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  br label %1780

1778:                                             ; preds = %1776, %323, %176, %152
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %10) #8
  call void @llvm.lifetime.end.p0(i64 520, ptr %10) #8
  %1779 = load i1, ptr %5, align 1
  ret i1 %1779

1780:                                             ; preds = %1777, %344, %272, %171, %157
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %10) #8
  call void @llvm.lifetime.end.p0(i64 520, ptr %10) #8
  br label %1781

1781:                                             ; preds = %1780
  %1782 = load ptr, ptr %11, align 8
  %1783 = load i32, ptr %12, align 4
  %1784 = insertvalue { ptr, i32 } poison, ptr %1782, 0
  %1785 = insertvalue { ptr, i32 } %1784, i32 %1783, 1
  resume { ptr, i32 } %1785
}

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

; 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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48)) #1 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 nounwind uwtable
declare dso_local noundef zeroext i1 @_ZStneRKSt17_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 nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) #1 align 2

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, i32 noundef) #6

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorED2Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #7 align 2

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

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

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

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

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

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

declare i64 @ggml_nbytes(ptr noundef) #3

declare ptr @ggml_backend_name(ptr noundef) #3

declare ptr @ggml_backend_alloc_buffer(ptr noundef, i64 noundef) #3

declare void @ggml_backend_buffer_set_usage(ptr noundef, i32 noundef) #3

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

declare void @ggml_tallocr_new(ptr dead_on_unwind writable sret(%struct.ggml_tallocr) align 8, ptr noundef) #3

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt3mapIP12ggml_backend12ggml_tallocrSt4lessIS1_ESaISt4pairIKS1_S2_EEE6insertIS5_IS1_S2_EEENSt9enable_ifIXsr16is_constructibleIS7_T_EE5valueES5_ISt17_Rb_tree_iteratorIS7_EbEE4typeEOSD_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(40)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairIRP12ggml_backend12ggml_tallocrESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS5_INS6_IT0_E4typeEE6__typeEEOS7_OSC_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.49") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) #2

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

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

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

declare i32 @ggml_tallocr_alloc(ptr noundef, 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 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 i64 @ggml_nelements(ptr noundef) #3

declare i64 @ggml_type_size(i32 noundef) #3

declare i64 @ggml_blck_size(i32 noundef) #3

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

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

declare zeroext i1 @ggml_backend_is_cpu(ptr noundef) #3

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

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

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

; 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 dso_local void @_ZNSt3mapIP12ggml_backend12ggml_tallocrSt4lessIS1_ESaISt4pairIKS1_S2_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP12ggml_backendSt4lessIS5_ESaISt4pairIKS5_S7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #1 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 = !{!"vtable pointer", !8, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"int", !7, 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", !7, 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, !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, !27, i64 120, !31, i64 144, !6, i64 168, !6, i64 176, !35, i64 184, !6, i64 232, !6, i64 240}
!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 = !{!"_ZTSSt6vectorIP12ggml_backendSaIS1_EE", !28, i64 0}
!28 = !{!"_ZTSSt12_Vector_baseIP12ggml_backendSaIS1_EE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseIP12ggml_backendSaIS1_EE12_Vector_implE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseIP12ggml_backendSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!31 = !{!"_ZTSSt6vectorIP19ggml_backend_bufferSaIS1_EE", !32, i64 0}
!32 = !{!"_ZTSSt12_Vector_baseIP19ggml_backend_bufferSaIS1_EE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIP19ggml_backend_bufferSaIS1_EE12_Vector_implE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIP19ggml_backend_bufferSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!35 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEE", !36, i64 0}
!36 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_P11ggml_tensorESt10_Select1stISA_ESt4lessIS5_ESaISA_EE", !37, i64 0}
!37 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_P11ggml_tensorESt10_Select1stISA_ESt4lessIS5_ESaISA_EE13_Rb_tree_implISE_Lb1EEE", !38, i64 0, !40, i64 8}
!38 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !39, i64 0}
!39 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!40 = !{!"_ZTSSt15_Rb_tree_header", !41, i64 0, !43, i64 32}
!41 = !{!"_ZTSSt18_Rb_tree_node_base", !42, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!42 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!43 = !{!"long", !7, i64 0}
!44 = distinct !{!44, !45}
!45 = !{!"llvm.loop.mustprogress"}
!46 = !{!22, !12, i64 20}
!47 = !{!48, !48, i64 0}
!48 = !{!"_ZTS9ggml_type", !7, i64 0}
!49 = !{!22, !12, i64 16}
!50 = !{!43, !43, i64 0}
!51 = !{!52, !43, i64 0}
!52 = !{!"_ZTS16ggml_init_params", !43, i64 0, !6, i64 8, !53, i64 16}
!53 = !{!"bool", !7, i64 0}
!54 = !{!52, !6, i64 8}
!55 = !{!52, !53, i64 16}
!56 = !{i64 0, i64 8, !50, i64 8, i64 8, !5, i64 16, i64 1, !57}
!57 = !{!53, !53, i64 0}
!58 = !{!22, !6, i64 112}
!59 = !{!22, !6, i64 32}
!60 = !{!22, !6, i64 40}
!61 = !{!22, !6, i64 48}
!62 = !{!22, !6, i64 56}
!63 = !{!22, !6, i64 64}
!64 = !{!65, !6, i64 0}
!65 = !{!"_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}
!66 = !{!65, !6, i64 8}
!67 = !{!65, !6, i64 16}
!68 = !{!65, !6, i64 24}
!69 = !{!65, !6, i64 32}
!70 = !{!65, !6, i64 40}
!71 = !{!65, !6, i64 48}
!72 = !{!65, !6, i64 56}
!73 = !{!65, !6, i64 64}
!74 = !{!65, !6, i64 72}
!75 = !{!65, !6, i64 80}
!76 = !{!65, !6, i64 88}
!77 = distinct !{!77, !45}
!78 = !{!79, !12, i64 24}
!79 = !{!"_ZTS10gpt_params", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !12, i64 20, !12, i64 24, !53, i64 28, !12, i64 32, !15, i64 36, !15, i64 40, !12, i64 44, !15, i64 48, !80, i64 56, !80, i64 88, !80, i64 120, !53, i64 152, !12, i64 156}
!80 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !81, i64 0, !43, i64 8, !7, i64 16}
!81 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!82 = !{!83, !6, i64 32}
!83 = !{!"_ZTSSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorE", !80, i64 0, !6, i64 32}
!84 = !{!22, !6, i64 96}
!85 = !{!22, !6, i64 104}
!86 = !{!22, !6, i64 168}
!87 = distinct !{!87, !45}
!88 = !{!89, !48, i64 0}
!89 = !{!"_ZTS11ggml_tensor", !48, i64 0, !6, i64 8, !7, i64 16, !7, i64 48, !90, i64 80, !7, i64 84, !12, i64 148, !7, i64 152, !6, i64 232, !43, i64 240, !6, i64 248, !7, i64 256, !6, i64 320, !7, i64 328}
!90 = !{!"_ZTS7ggml_op", !7, i64 0}
!91 = !{!89, !6, i64 248}
!92 = !{i8 0, i8 2}
!93 = !{}
!94 = distinct !{!94, !45}
!95 = !{!22, !12, i64 4}
!96 = !{!22, !6, i64 232}
!97 = !{!22, !6, i64 240}
!98 = !{!22, !6, i64 176}


; 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.21 }
%union.anon.21 = 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.22" = type { %"struct.std::_Vector_base.23" }
%"struct.std::_Vector_base.23" = 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 }
%"class.std::map.35" = type { %"class.std::_Rb_tree.36" }
%"class.std::_Rb_tree.36" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, ggml_backend *>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, ggml_backend *>>, 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_backend *>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, ggml_backend *>>, 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.std::_Rb_tree_iterator" = type { ptr }
%"struct.std::pair" = type { %"class.std::__cxx11::basic_string", ptr }
%"class.std::map.40" = type { %"class.std::_Rb_tree.41" }
%"class.std::_Rb_tree.41" = type { %"struct.std::_Rb_tree<ggml_backend *, std::pair<ggml_backend *const, ggml_tallocr>, std::_Select1st<std::pair<ggml_backend *const, ggml_tallocr>>, std::less<ggml_backend *>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<ggml_backend *, std::pair<ggml_backend *const, ggml_tallocr>, std::_Select1st<std::pair<ggml_backend *const, ggml_tallocr>>, std::less<ggml_backend *>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%struct.ggml_tallocr = type { ptr, ptr, i64, i64 }
%"struct.std::pair.49" = type { ptr, %struct.ggml_tallocr }
%"struct.std::_Rb_tree_iterator.48" = type { ptr }

@.str = external hidden unnamed_addr constant [29 x i8], align 1
@__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params = 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 [13 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [8 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 [15 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [15 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 [12 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [21 x i8], align 1
@__const._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params.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
@.str.41 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [33 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
declare dso_local void @_Z13init_backendsR10gpt2_modelRK10gpt_params(ptr noundef nonnull align 8 dereferenceable(248), ptr noundef nonnull align 8 dereferenceable(160)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(248) %1, ptr noundef nonnull align 8 dereferenceable(120) %2, ptr noundef nonnull align 8 dereferenceable(160) %3) local_unnamed_addr #2 personality ptr @__gxx_personality_v0 {
  %5 = alloca %"class.std::basic_ifstream", align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::vector.22", align 8
  %10 = alloca %"class.std::allocator.0", align 1
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca %struct.ggml_init_params, align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::allocator.0", align 1
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::allocator.0", align 1
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::allocator.0", align 1
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::allocator.0", align 1
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator.0", align 1
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %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::map.35", align 8
  %61 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %62 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %63 = alloca %"struct.std::pair", align 8
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::map.40", align 8
  %67 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %68 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %69 = alloca ptr, align 8
  %70 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %71 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %72 = alloca %"struct.std::pair", align 8
  %73 = alloca ptr, align 8
  %74 = alloca %struct.ggml_tallocr, align 8
  %75 = alloca %"struct.std::pair.49", align 8
  %76 = alloca ptr, align 8
  %77 = alloca %struct.ggml_tallocr, align 8
  %78 = alloca %"class.std::vector.22", align 8
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca [2 x i32], align 8
  %83 = alloca %"class.std::__cxx11::basic_string", align 8
  %84 = alloca %"class.std::allocator.0", align 1
  %85 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %86 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %87 = alloca ptr, align 8
  %88 = alloca %"struct.std::_Rb_tree_iterator.48", align 8
  %89 = alloca %"struct.std::_Rb_tree_iterator.48", align 8
  %90 = alloca %"class.std::__cxx11::basic_string", align 8
  %91 = alloca %"class.std::allocator.0", align 1
  %92 = alloca %struct.ggml_tallocr, align 8
  %93 = tail call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %0) #7
  %94 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, ptr noundef %93)
  call void @llvm.lifetime.start.p0(i64 520, ptr nonnull %5) #7
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256) %5, ptr noundef nonnull align 8 dereferenceable(32) %0, i32 noundef 4)
  %95 = load ptr, ptr %5, align 8, !tbaa !5
  %96 = getelementptr i8, ptr %95, i64 -24
  %97 = load i64, ptr %96, align 8
  %98 = getelementptr inbounds i8, ptr %5, i64 %97
  %99 = invoke noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEEntEv(ptr noundef nonnull align 8 dereferenceable(264) %98)
          to label %100 unwind label %105

100:                                              ; preds = %4
  br i1 %99, label %101, label %107

101:                                              ; preds = %100
  %102 = load ptr, ptr @stderr, align 8, !tbaa !8
  %103 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %0) #7
  %104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %102, ptr noundef nonnull @.str.1, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, ptr noundef %103) #8
  br label %963

105:                                              ; preds = %4
  %106 = landingpad { ptr, i32 }
          cleanup
  br label %964

107:                                              ; preds = %100
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #7
  %108 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull %6, i64 noundef 4)
          to label %109 unwind label %115

109:                                              ; preds = %107
  %110 = load i32, ptr %6, align 4, !tbaa !11
  %.not = icmp eq i32 %110, 1734831468
  br i1 %.not, label %.critedge, label %111

111:                                              ; preds = %109
  %112 = load ptr, ptr @stderr, align 8, !tbaa !8
  %113 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %0) #7
  %114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %112, ptr noundef nonnull @.str.2, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, ptr noundef %113) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #7
  br label %963

115:                                              ; preds = %107
  %116 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #7
  br label %964

.critedge:                                        ; preds = %109
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #7
  %117 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull %1, i64 noundef 4)
          to label %118 unwind label %160

118:                                              ; preds = %.critedge
  %119 = getelementptr inbounds i8, ptr %1, i64 4
  %120 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull %119, i64 noundef 4)
          to label %121 unwind label %160

121:                                              ; preds = %118
  %122 = getelementptr inbounds i8, ptr %1, i64 8
  %123 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull %122, i64 noundef 4)
          to label %124 unwind label %160

124:                                              ; preds = %121
  %125 = getelementptr inbounds i8, ptr %1, i64 12
  %126 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull %125, i64 noundef 4)
          to label %127 unwind label %160

127:                                              ; preds = %124
  %128 = getelementptr inbounds i8, ptr %1, i64 16
  %129 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull %128, i64 noundef 4)
          to label %130 unwind label %160

130:                                              ; preds = %127
  %131 = getelementptr inbounds i8, ptr %1, i64 20
  %132 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull %131, i64 noundef 4)
          to label %133 unwind label %160

133:                                              ; preds = %130
  %134 = load i32, ptr %131, align 4, !tbaa !13
  %135 = sdiv i32 %134, 1000
  %136 = load i32, ptr %1, align 8, !tbaa !16
  %137 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.3, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, i32 noundef %136)
  %138 = load i32, ptr %119, align 4, !tbaa !17
  %139 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.4, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, i32 noundef %138)
  %140 = load i32, ptr %122, align 8, !tbaa !18
  %141 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.5, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, i32 noundef %140)
  %142 = load i32, ptr %125, align 4, !tbaa !19
  %143 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.6, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, i32 noundef %142)
  %144 = load i32, ptr %128, align 8, !tbaa !20
  %145 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.7, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, i32 noundef %144)
  %146 = load i32, ptr %131, align 4, !tbaa !13
  %147 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.8, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, i32 noundef %146)
  %148 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.9, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, i32 noundef %135)
  %149 = load i32, ptr %131, align 4, !tbaa !13
  %150 = srem i32 %149, 1000
  store i32 %150, ptr %131, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #7
  store i32 0, ptr %7, align 4, !tbaa !11
  %151 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull %7, i64 noundef 4)
          to label %152 unwind label %162

152:                                              ; preds = %133
  %153 = load i32, ptr %7, align 4, !tbaa !11
  %154 = load i32, ptr %1, align 8, !tbaa !21
  %.not404 = icmp eq i32 %153, %154
  br i1 %.not404, label %164, label %.thread

.thread:                                          ; preds = %152
  %155 = load ptr, ptr @stderr, align 8, !tbaa !8
  %156 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %0) #7
  %157 = load i32, ptr %7, align 4, !tbaa !11
  %158 = load i32, ptr %1, align 8, !tbaa !21
  %159 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %155, ptr noundef nonnull @.str.10, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, ptr noundef %156, i32 noundef %157, i32 noundef %158) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #7
  br label %963

160:                                              ; preds = %130, %127, %124, %121, %118, %.critedge
  %161 = landingpad { ptr, i32 }
          cleanup
  br label %964

162:                                              ; preds = %133
  %163 = landingpad { ptr, i32 }
          cleanup
  br label %210

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

165:                                              ; preds = %164
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #7
  store i32 0, ptr %11, align 4, !tbaa !11
  %166 = load i32, ptr %7, align 4, !tbaa !11
  %167 = icmp sgt i32 %166, 0
  br i1 %167, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %165
  %168 = getelementptr inbounds i8, ptr %2, i64 48
  br label %171

169:                                              ; preds = %164
  %170 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #7
  br label %209

171:                                              ; preds = %.lr.ph, %193
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #7
  %172 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull %12, i64 noundef 4)
          to label %173 unwind label %198

173:                                              ; preds = %171
  %174 = load i32, ptr %12, align 4, !tbaa !11
  %175 = zext i32 %174 to i64
  invoke void @_ZNSt6vectorIcSaIcEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %175)
          to label %176 unwind label %198

176:                                              ; preds = %173
  %177 = call noundef ptr @_ZNSt6vectorIcSaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  %178 = load i32, ptr %12, align 4, !tbaa !11
  %179 = zext i32 %178 to i64
  %180 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef %177, i64 noundef %179)
          to label %181 unwind label %198

181:                                              ; preds = %176
  %182 = call noundef ptr @_ZNSt6vectorIcSaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  %183 = load i32, ptr %12, align 4, !tbaa !11
  %184 = zext i32 %183 to i64
  %185 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6assignEPKcm(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef %182, i64 noundef %184)
          to label %186 unwind label %198

186:                                              ; preds = %181
  %187 = load i32, ptr %11, align 4, !tbaa !11
  %188 = 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) %8)
          to label %189 unwind label %198

189:                                              ; preds = %186
  store i32 %187, ptr %188, align 4, !tbaa !11
  %190 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt3mapIiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIiESaISt4pairIKiS5_EEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %168, ptr noundef nonnull align 4 dereferenceable(4) %11)
          to label %191 unwind label %198

191:                                              ; preds = %189
  %192 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %190, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %193 unwind label %198

193:                                              ; preds = %191
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #7
  %194 = load i32, ptr %11, align 4, !tbaa !11
  %195 = add nsw i32 %194, 1
  store i32 %195, ptr %11, align 4, !tbaa !11
  %196 = load i32, ptr %7, align 4, !tbaa !11
  %197 = icmp slt i32 %195, %196
  br i1 %197, label %171, label %._crit_edge, !llvm.loop !44

198:                                              ; preds = %191, %189, %186, %181, %176, %173, %171
  %199 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #7
  call void @_ZNSt6vectorIcSaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  br label %209

._crit_edge:                                      ; preds = %193, %165
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #7
  call void @_ZNSt6vectorIcSaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #7
  %200 = load i32, ptr %131, align 4, !tbaa !46
  %201 = invoke i32 @ggml_ftype_to_ggml_type(i32 noundef %200)
          to label %202 unwind label %211

202:                                              ; preds = %._crit_edge
  %203 = icmp eq i32 %201, 39
  br i1 %203, label %204, label %213

204:                                              ; preds = %202
  %205 = load ptr, ptr @stderr, align 8, !tbaa !8
  %206 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %0) #7
  %207 = load i32, ptr %131, align 4, !tbaa !46
  %208 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %205, ptr noundef nonnull @.str.11, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, ptr noundef %206, i32 noundef %207) #8
  br label %963

209:                                              ; preds = %198, %169
  %.pn = phi { ptr, i32 } [ %199, %198 ], [ %170, %169 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #7
  br label %210

210:                                              ; preds = %209, %162
  %.pn.pn = phi { ptr, i32 } [ %.pn, %209 ], [ %163, %162 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #7
  br label %964

211:                                              ; preds = %._crit_edge
  %212 = landingpad { ptr, i32 }
          cleanup
  br label %964

213:                                              ; preds = %202
  %214 = getelementptr inbounds i8, ptr %1, i64 112
  %215 = load i32, ptr %128, align 8, !tbaa !47
  %216 = invoke i64 @ggml_tensor_overhead()
          to label %217 unwind label %227

217:                                              ; preds = %213
  %218 = mul nsw i32 %215, 12
  %219 = add nsw i32 %218, 11
  %220 = sext i32 %219 to i64
  %221 = mul i64 %216, %220
  store i64 %221, ptr %13, align 8, !tbaa !48
  %.sroa.5.0..sroa_idx = getelementptr inbounds i8, ptr %13, i64 8
  store ptr null, ptr %.sroa.5.0..sroa_idx, align 8, !tbaa !8
  %.sroa.6.0..sroa_idx = getelementptr inbounds i8, ptr %13, i64 16
  store i8 1, ptr %.sroa.6.0..sroa_idx, align 8, !tbaa !49
  %222 = invoke ptr @ggml_init(ptr noundef nonnull byval(%struct.ggml_init_params) align 8 %13)
          to label %223 unwind label %227

223:                                              ; preds = %217
  store ptr %222, ptr %214, align 8, !tbaa !51
  %.not407.not = icmp eq ptr %222, null
  br i1 %.not407.not, label %224, label %.critedge504

224:                                              ; preds = %223
  %225 = load ptr, ptr @stderr, align 8, !tbaa !8
  %226 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %225, ptr noundef nonnull @.str.12, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params) #8
  br label %963

227:                                              ; preds = %217, %213
  %228 = landingpad { ptr, i32 }
          cleanup
  br label %964

.critedge504:                                     ; preds = %223
  %229 = load i32, ptr %122, align 8, !tbaa !18
  %230 = load i32, ptr %128, align 8, !tbaa !20
  %231 = load i32, ptr %119, align 4, !tbaa !17
  %232 = load i32, ptr %1, align 8, !tbaa !16
  %233 = getelementptr inbounds i8, ptr %1, i64 72
  %234 = sext i32 %230 to i64
  invoke void @_ZNSt6vectorI10gpt2_layerSaIS0_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %233, i64 noundef %234)
          to label %235 unwind label %285

235:                                              ; preds = %.critedge504
  %236 = load ptr, ptr %214, align 8, !tbaa !8
  %237 = sext i32 %229 to i64
  %238 = invoke ptr @ggml_new_tensor_1d(ptr noundef %236, i32 noundef 0, i64 noundef %237)
          to label %239 unwind label %285

239:                                              ; preds = %235
  %240 = getelementptr inbounds i8, ptr %1, i64 32
  store ptr %238, ptr %240, align 8, !tbaa !52
  %241 = load ptr, ptr %214, align 8, !tbaa !8
  %242 = invoke ptr @ggml_new_tensor_1d(ptr noundef %241, i32 noundef 0, i64 noundef %237)
          to label %243 unwind label %285

243:                                              ; preds = %239
  %244 = getelementptr inbounds i8, ptr %1, i64 40
  store ptr %242, ptr %244, align 8, !tbaa !53
  %245 = load ptr, ptr %214, align 8, !tbaa !8
  %246 = sext i32 %232 to i64
  %247 = invoke ptr @ggml_new_tensor_2d(ptr noundef %245, i32 noundef %201, i64 noundef %237, i64 noundef %246)
          to label %248 unwind label %285

248:                                              ; preds = %243
  %249 = getelementptr inbounds i8, ptr %1, i64 48
  store ptr %247, ptr %249, align 8, !tbaa !54
  %250 = load ptr, ptr %214, align 8, !tbaa !8
  %251 = sext i32 %231 to i64
  %252 = invoke ptr @ggml_new_tensor_2d(ptr noundef %250, i32 noundef 0, i64 noundef %237, i64 noundef %251)
          to label %253 unwind label %285

253:                                              ; preds = %248
  %254 = getelementptr inbounds i8, ptr %1, i64 56
  store ptr %252, ptr %254, align 8, !tbaa !55
  %255 = load ptr, ptr %214, align 8, !tbaa !8
  %256 = invoke ptr @ggml_new_tensor_2d(ptr noundef %255, i32 noundef %201, i64 noundef %237, i64 noundef %246)
          to label %257 unwind label %285

257:                                              ; preds = %253
  %258 = getelementptr inbounds i8, ptr %1, i64 64
  store ptr %256, ptr %258, align 8, !tbaa !56
  %259 = load ptr, ptr %240, align 8, !tbaa !52
  %260 = getelementptr inbounds i8, ptr %1, i64 184
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %15) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %261 unwind label %287

261:                                              ; preds = %257
  %262 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %260, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %263 unwind label %289

263:                                              ; preds = %261
  store ptr %259, ptr %262, align 8, !tbaa !8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #7
  %264 = load ptr, ptr %244, align 8, !tbaa !53
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %265 unwind label %292

265:                                              ; preds = %263
  %266 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %260, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %267 unwind label %294

267:                                              ; preds = %265
  store ptr %264, ptr %266, align 8, !tbaa !8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  %268 = load ptr, ptr %249, align 8, !tbaa !54
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull @.str.15, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %269 unwind label %297

269:                                              ; preds = %267
  %270 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %260, ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %271 unwind label %299

271:                                              ; preds = %269
  store ptr %268, ptr %270, align 8, !tbaa !8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #7
  %272 = load ptr, ptr %254, align 8, !tbaa !55
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %21) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %273 unwind label %302

273:                                              ; preds = %271
  %274 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %260, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %275 unwind label %304

275:                                              ; preds = %273
  store ptr %272, ptr %274, align 8, !tbaa !8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #7
  %276 = load ptr, ptr %258, align 8, !tbaa !56
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %23) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %277 unwind label %307

277:                                              ; preds = %275
  %278 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %260, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %279 unwind label %309

279:                                              ; preds = %277
  store ptr %276, ptr %278, align 8, !tbaa !8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #7
  %280 = icmp sgt i32 %230, 0
  br i1 %280, label %.lr.ph584, label %._crit_edge585

.lr.ph584:                                        ; preds = %279
  %281 = mul nsw i32 %229, 3
  %282 = sext i32 %281 to i64
  %283 = shl nsw i32 %229, 2
  %284 = sext i32 %283 to i64
  %wide.trip.count = zext nneg i32 %230 to i64
  br label %312

._crit_edge585:                                   ; preds = %421, %279
  invoke void @_Z13init_backendsR10gpt2_modelRK10gpt_params(ptr noundef nonnull align 8 dereferenceable(248) %1, ptr noundef nonnull align 8 dereferenceable(160) %3)
          to label %520 unwind label %538

285:                                              ; preds = %253, %248, %243, %239, %235, %.critedge504
  %286 = landingpad { ptr, i32 }
          cleanup
  br label %964

287:                                              ; preds = %257
  %288 = landingpad { ptr, i32 }
          cleanup
  br label %291

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

291:                                              ; preds = %289, %287
  %.pn408 = phi { ptr, i32 } [ %290, %289 ], [ %288, %287 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #7
  br label %964

292:                                              ; preds = %263
  %293 = landingpad { ptr, i32 }
          cleanup
  br label %296

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

296:                                              ; preds = %294, %292
  %.pn410 = phi { ptr, i32 } [ %295, %294 ], [ %293, %292 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  br label %964

297:                                              ; preds = %267
  %298 = landingpad { ptr, i32 }
          cleanup
  br label %301

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

301:                                              ; preds = %299, %297
  %.pn412 = phi { ptr, i32 } [ %300, %299 ], [ %298, %297 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #7
  br label %964

302:                                              ; preds = %271
  %303 = landingpad { ptr, i32 }
          cleanup
  br label %306

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

306:                                              ; preds = %304, %302
  %.pn414 = phi { ptr, i32 } [ %305, %304 ], [ %303, %302 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #7
  br label %964

307:                                              ; preds = %275
  %308 = landingpad { ptr, i32 }
          cleanup
  br label %311

309:                                              ; preds = %277
  %310 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  br label %311

311:                                              ; preds = %309, %307
  %.pn416 = phi { ptr, i32 } [ %310, %309 ], [ %308, %307 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #7
  br label %964

312:                                              ; preds = %.lr.ph584, %421
  %indvars.iv = phi i64 [ 0, %.lr.ph584 ], [ %indvars.iv.next, %421 ]
  %313 = call noundef nonnull align 8 dereferenceable(96) ptr @_ZNSt6vectorI10gpt2_layerSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %233, i64 noundef %indvars.iv) #7
  %314 = load ptr, ptr %214, align 8, !tbaa !8
  %315 = invoke ptr @ggml_new_tensor_1d(ptr noundef %314, i32 noundef 0, i64 noundef %237)
          to label %316 unwind label %422

316:                                              ; preds = %312
  store ptr %315, ptr %313, align 8, !tbaa !57
  %317 = load ptr, ptr %214, align 8, !tbaa !8
  %318 = invoke ptr @ggml_new_tensor_1d(ptr noundef %317, i32 noundef 0, i64 noundef %237)
          to label %319 unwind label %422

319:                                              ; preds = %316
  %320 = getelementptr inbounds i8, ptr %313, i64 8
  store ptr %318, ptr %320, align 8, !tbaa !59
  %321 = load ptr, ptr %214, align 8, !tbaa !8
  %322 = invoke ptr @ggml_new_tensor_1d(ptr noundef %321, i32 noundef 0, i64 noundef %237)
          to label %323 unwind label %422

323:                                              ; preds = %319
  %324 = getelementptr inbounds i8, ptr %313, i64 16
  store ptr %322, ptr %324, align 8, !tbaa !60
  %325 = load ptr, ptr %214, align 8, !tbaa !8
  %326 = invoke ptr @ggml_new_tensor_1d(ptr noundef %325, i32 noundef 0, i64 noundef %237)
          to label %327 unwind label %422

327:                                              ; preds = %323
  %328 = getelementptr inbounds i8, ptr %313, i64 24
  store ptr %326, ptr %328, align 8, !tbaa !61
  %329 = load ptr, ptr %214, align 8, !tbaa !8
  %330 = invoke ptr @ggml_new_tensor_2d(ptr noundef %329, i32 noundef %201, i64 noundef %237, i64 noundef %282)
          to label %331 unwind label %422

331:                                              ; preds = %327
  %332 = getelementptr inbounds i8, ptr %313, i64 32
  store ptr %330, ptr %332, align 8, !tbaa !62
  %333 = load ptr, ptr %214, align 8, !tbaa !8
  %334 = invoke ptr @ggml_new_tensor_1d(ptr noundef %333, i32 noundef 0, i64 noundef %282)
          to label %335 unwind label %422

335:                                              ; preds = %331
  %336 = getelementptr inbounds i8, ptr %313, i64 40
  store ptr %334, ptr %336, align 8, !tbaa !63
  %337 = load ptr, ptr %214, align 8, !tbaa !8
  %338 = invoke ptr @ggml_new_tensor_2d(ptr noundef %337, i32 noundef %201, i64 noundef %237, i64 noundef %237)
          to label %339 unwind label %422

339:                                              ; preds = %335
  %340 = getelementptr inbounds i8, ptr %313, i64 48
  store ptr %338, ptr %340, align 8, !tbaa !64
  %341 = load ptr, ptr %214, align 8, !tbaa !8
  %342 = invoke ptr @ggml_new_tensor_1d(ptr noundef %341, i32 noundef 0, i64 noundef %237)
          to label %343 unwind label %422

343:                                              ; preds = %339
  %344 = getelementptr inbounds i8, ptr %313, i64 56
  store ptr %342, ptr %344, align 8, !tbaa !65
  %345 = load ptr, ptr %214, align 8, !tbaa !8
  %346 = invoke ptr @ggml_new_tensor_2d(ptr noundef %345, i32 noundef %201, i64 noundef %237, i64 noundef %284)
          to label %347 unwind label %422

347:                                              ; preds = %343
  %348 = getelementptr inbounds i8, ptr %313, i64 64
  store ptr %346, ptr %348, align 8, !tbaa !66
  %349 = load ptr, ptr %214, align 8, !tbaa !8
  %350 = invoke ptr @ggml_new_tensor_1d(ptr noundef %349, i32 noundef 0, i64 noundef %284)
          to label %351 unwind label %422

351:                                              ; preds = %347
  %352 = getelementptr inbounds i8, ptr %313, i64 72
  store ptr %350, ptr %352, align 8, !tbaa !67
  %353 = load ptr, ptr %214, align 8, !tbaa !8
  %354 = invoke ptr @ggml_new_tensor_2d(ptr noundef %353, i32 noundef %201, i64 noundef %284, i64 noundef %237)
          to label %355 unwind label %422

355:                                              ; preds = %351
  %356 = getelementptr inbounds i8, ptr %313, i64 80
  store ptr %354, ptr %356, align 8, !tbaa !68
  %357 = load ptr, ptr %214, align 8, !tbaa !8
  %358 = invoke ptr @ggml_new_tensor_1d(ptr noundef %357, i32 noundef 0, i64 noundef %237)
          to label %359 unwind label %422

359:                                              ; preds = %355
  %360 = getelementptr inbounds i8, ptr %313, i64 88
  store ptr %358, ptr %360, align 8, !tbaa !69
  %361 = load ptr, ptr %313, align 8, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #7
  %362 = 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 %26, i32 noundef %362) #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 %25, ptr noundef nonnull @.str.18, ptr noundef nonnull align 8 dereferenceable(32) %26)
          to label %363 unwind label %424

363:                                              ; preds = %359
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull @.str.19)
          to label %364 unwind label %426

364:                                              ; preds = %363
  %365 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %260, ptr noundef nonnull align 8 dereferenceable(32) %24)
          to label %366 unwind label %428

366:                                              ; preds = %364
  store ptr %361, ptr %365, align 8, !tbaa !8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #7
  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 @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #7
  %367 = load ptr, ptr %320, align 8, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #7
  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 @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %29, i32 noundef %362) #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 %28, ptr noundef nonnull @.str.18, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %368 unwind label %432

368:                                              ; preds = %366
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %27, ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull @.str.20)
          to label %369 unwind label %434

369:                                              ; preds = %368
  %370 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %260, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %371 unwind label %436

371:                                              ; preds = %369
  store ptr %367, ptr %370, align 8, !tbaa !8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  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 @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #7
  %372 = load ptr, ptr %324, align 8, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #7
  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 @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %32, i32 noundef %362) #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 %31, ptr noundef nonnull @.str.18, ptr noundef nonnull align 8 dereferenceable(32) %32)
          to label %373 unwind label %440

373:                                              ; preds = %371
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull @.str.21)
          to label %374 unwind label %442

374:                                              ; preds = %373
  %375 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %260, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %376 unwind label %444

376:                                              ; preds = %374
  store ptr %372, ptr %375, align 8, !tbaa !8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  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 @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #7
  %377 = load ptr, ptr %328, align 8, !tbaa !61
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #7
  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 @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %35, i32 noundef %362) #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 %34, ptr noundef nonnull @.str.18, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %378 unwind label %448

378:                                              ; preds = %376
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %33, ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull @.str.22)
          to label %379 unwind label %450

379:                                              ; preds = %378
  %380 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %260, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %381 unwind label %452

381:                                              ; preds = %379
  store ptr %377, ptr %380, align 8, !tbaa !8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  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 @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #7
  %382 = load ptr, ptr %332, align 8, !tbaa !62
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #7
  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 @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %38, i32 noundef %362) #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 %37, ptr noundef nonnull @.str.18, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %383 unwind label %456

383:                                              ; preds = %381
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull @.str.23)
          to label %384 unwind label %458

384:                                              ; preds = %383
  %385 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %260, ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %386 unwind label %460

386:                                              ; preds = %384
  store ptr %382, ptr %385, align 8, !tbaa !8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  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 @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #7
  %387 = load ptr, ptr %336, align 8, !tbaa !63
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #7
  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 @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %41, i32 noundef %362) #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 %40, ptr noundef nonnull @.str.18, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %388 unwind label %464

388:                                              ; preds = %386
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %39, ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull @.str.24)
          to label %389 unwind label %466

389:                                              ; preds = %388
  %390 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %260, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %391 unwind label %468

391:                                              ; preds = %389
  store ptr %387, ptr %390, align 8, !tbaa !8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  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 @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #7
  %392 = load ptr, ptr %340, align 8, !tbaa !64
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %42) #7
  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 @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %44, i32 noundef %362) #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 %43, ptr noundef nonnull @.str.18, ptr noundef nonnull align 8 dereferenceable(32) %44)
          to label %393 unwind label %472

393:                                              ; preds = %391
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %42, ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull @.str.25)
          to label %394 unwind label %474

394:                                              ; preds = %393
  %395 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %260, ptr noundef nonnull align 8 dereferenceable(32) %42)
          to label %396 unwind label %476

396:                                              ; preds = %394
  store ptr %392, ptr %395, align 8, !tbaa !8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #7
  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 @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #7
  %397 = load ptr, ptr %344, align 8, !tbaa !65
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %45) #7
  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 @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %47, i32 noundef %362) #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 %46, ptr noundef nonnull @.str.18, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %398 unwind label %480

398:                                              ; preds = %396
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull @.str.26)
          to label %399 unwind label %482

399:                                              ; preds = %398
  %400 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %260, ptr noundef nonnull align 8 dereferenceable(32) %45)
          to label %401 unwind label %484

401:                                              ; preds = %399
  store ptr %397, ptr %400, align 8, !tbaa !8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  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 @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #7
  %402 = load ptr, ptr %348, align 8, !tbaa !66
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %48) #7
  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 @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %50, i32 noundef %362) #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 %49, ptr noundef nonnull @.str.18, ptr noundef nonnull align 8 dereferenceable(32) %50)
          to label %403 unwind label %488

403:                                              ; preds = %401
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %48, ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull @.str.27)
          to label %404 unwind label %490

404:                                              ; preds = %403
  %405 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %260, ptr noundef nonnull align 8 dereferenceable(32) %48)
          to label %406 unwind label %492

406:                                              ; preds = %404
  store ptr %402, ptr %405, align 8, !tbaa !8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #7
  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 @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #7
  %407 = load ptr, ptr %352, align 8, !tbaa !67
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %51) #7
  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 @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %53, i32 noundef %362) #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 %52, ptr noundef nonnull @.str.18, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %408 unwind label %496

408:                                              ; preds = %406
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %51, ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull @.str.28)
          to label %409 unwind label %498

409:                                              ; preds = %408
  %410 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %260, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %411 unwind label %500

411:                                              ; preds = %409
  store ptr %407, ptr %410, align 8, !tbaa !8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #7
  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 @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #7
  %412 = load ptr, ptr %356, align 8, !tbaa !68
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %54) #7
  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 @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %56, i32 noundef %362) #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 %55, ptr noundef nonnull @.str.18, ptr noundef nonnull align 8 dereferenceable(32) %56)
          to label %413 unwind label %504

413:                                              ; preds = %411
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %54, ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull @.str.29)
          to label %414 unwind label %506

414:                                              ; preds = %413
  %415 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %260, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %416 unwind label %508

416:                                              ; preds = %414
  store ptr %412, ptr %415, align 8, !tbaa !8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #7
  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 @llvm.lifetime.end.p0(i64 32, ptr nonnull %56) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #7
  %417 = load ptr, ptr %360, align 8, !tbaa !69
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %57) #7
  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 @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %59, i32 noundef %362) #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 %58, ptr noundef nonnull @.str.18, ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %418 unwind label %512

418:                                              ; preds = %416
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull @.str.30)
          to label %419 unwind label %514

419:                                              ; preds = %418
  %420 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %260, ptr noundef nonnull align 8 dereferenceable(32) %57)
          to label %421 unwind label %516

421:                                              ; preds = %419
  store ptr %417, ptr %420, align 8, !tbaa !8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #7
  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 @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #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_edge585, label %312, !llvm.loop !70

422:                                              ; preds = %355, %351, %347, %343, %339, %335, %331, %327, %323, %319, %316, %312
  %423 = landingpad { ptr, i32 }
          cleanup
  br label %964

424:                                              ; preds = %359
  %425 = landingpad { ptr, i32 }
          cleanup
  br label %431

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

428:                                              ; preds = %364
  %429 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #7
  br label %430

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

431:                                              ; preds = %430, %424
  %.pn462.pn = phi { ptr, i32 } [ %.pn462, %430 ], [ %425, %424 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #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
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #7
  br label %964

432:                                              ; preds = %366
  %433 = landingpad { ptr, i32 }
          cleanup
  br label %439

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

436:                                              ; preds = %369
  %437 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  br label %438

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

439:                                              ; preds = %438, %432
  %.pn465.pn = phi { ptr, i32 } [ %.pn465, %438 ], [ %433, %432 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #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
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #7
  br label %964

440:                                              ; preds = %371
  %441 = landingpad { ptr, i32 }
          cleanup
  br label %447

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

444:                                              ; preds = %374
  %445 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  br label %446

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

447:                                              ; preds = %446, %440
  %.pn468.pn = phi { ptr, i32 } [ %.pn468, %446 ], [ %441, %440 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #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
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #7
  br label %964

448:                                              ; preds = %376
  %449 = landingpad { ptr, i32 }
          cleanup
  br label %455

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

452:                                              ; preds = %379
  %453 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  br label %454

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

455:                                              ; preds = %454, %448
  %.pn471.pn = phi { ptr, i32 } [ %.pn471, %454 ], [ %449, %448 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #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
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #7
  br label %964

456:                                              ; preds = %381
  %457 = landingpad { ptr, i32 }
          cleanup
  br label %463

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

460:                                              ; preds = %384
  %461 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  br label %462

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

463:                                              ; preds = %462, %456
  %.pn474.pn = phi { ptr, i32 } [ %.pn474, %462 ], [ %457, %456 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #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
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #7
  br label %964

464:                                              ; preds = %386
  %465 = landingpad { ptr, i32 }
          cleanup
  br label %471

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

468:                                              ; preds = %389
  %469 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  br label %470

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

471:                                              ; preds = %470, %464
  %.pn477.pn = phi { ptr, i32 } [ %.pn477, %470 ], [ %465, %464 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #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
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #7
  br label %964

472:                                              ; preds = %391
  %473 = landingpad { ptr, i32 }
          cleanup
  br label %479

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

476:                                              ; preds = %394
  %477 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #7
  br label %478

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

479:                                              ; preds = %478, %472
  %.pn480.pn = phi { ptr, i32 } [ %.pn480, %478 ], [ %473, %472 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #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
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #7
  br label %964

480:                                              ; preds = %396
  %481 = landingpad { ptr, i32 }
          cleanup
  br label %487

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

484:                                              ; preds = %399
  %485 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  br label %486

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

487:                                              ; preds = %486, %480
  %.pn483.pn = phi { ptr, i32 } [ %.pn483, %486 ], [ %481, %480 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #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
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #7
  br label %964

488:                                              ; preds = %401
  %489 = landingpad { ptr, i32 }
          cleanup
  br label %495

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

492:                                              ; preds = %404
  %493 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #7
  br label %494

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

495:                                              ; preds = %494, %488
  %.pn486.pn = phi { ptr, i32 } [ %.pn486, %494 ], [ %489, %488 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #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
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #7
  br label %964

496:                                              ; preds = %406
  %497 = landingpad { ptr, i32 }
          cleanup
  br label %503

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

500:                                              ; preds = %409
  %501 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #7
  br label %502

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

503:                                              ; preds = %502, %496
  %.pn489.pn = phi { ptr, i32 } [ %.pn489, %502 ], [ %497, %496 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #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
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #7
  br label %964

504:                                              ; preds = %411
  %505 = landingpad { ptr, i32 }
          cleanup
  br label %511

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

508:                                              ; preds = %414
  %509 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #7
  br label %510

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

511:                                              ; preds = %510, %504
  %.pn492.pn = phi { ptr, i32 } [ %.pn492, %510 ], [ %505, %504 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #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
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #7
  br label %964

512:                                              ; preds = %416
  %513 = landingpad { ptr, i32 }
          cleanup
  br label %519

514:                                              ; preds = %418
  %515 = landingpad { ptr, i32 }
          cleanup
  br label %518

516:                                              ; preds = %419
  %517 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #7
  br label %518

518:                                              ; preds = %516, %514
  %.pn495 = phi { ptr, i32 } [ %517, %516 ], [ %515, %514 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #7
  br label %519

519:                                              ; preds = %518, %512
  %.pn495.pn = phi { ptr, i32 } [ %.pn495, %518 ], [ %513, %512 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #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
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #7
  br label %964

520:                                              ; preds = %._crit_edge585
  %521 = getelementptr inbounds i8, ptr %1, i64 120
  %522 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ggml_backendSaIS1_EE5frontEv(ptr noundef nonnull align 8 dereferenceable(24) %521) #7
  %523 = load ptr, ptr %522, align 8, !tbaa !8
  %524 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP12ggml_backendSaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %521) #7
  %525 = load ptr, ptr %524, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %60) #7
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP12ggml_backendSt4lessIS5_ESaISt4pairIKS5_S7_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %60) #7
  %526 = load i32, ptr %128, align 8, !tbaa !47
  %527 = getelementptr inbounds i8, ptr %3, i64 24
  %528 = load i32, ptr %527, align 8, !tbaa !71
  %529 = sub nsw i32 %526, %528
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %61) #7
  %530 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %260) #7
  store ptr %530, ptr %61, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %62) #7
  %531 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %260) #7
  store ptr %531, ptr %62, align 8
  %532 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorEESD_(ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef nonnull align 8 dereferenceable(8) %62) #7
  br i1 %532, label %.lr.ph587, label %._crit_edge588

._crit_edge588:                                   ; preds = %596, %520
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #7
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %66) #7
  call void @_ZNSt3mapIP12ggml_backend12ggml_tallocrSt4lessIS1_ESaISt4pairIKS1_S2_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %66) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %67) #7
  %533 = call ptr @_ZNSt6vectorIP12ggml_backendSaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %521) #7
  store ptr %533, ptr %67, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %68) #7
  %534 = call ptr @_ZNSt6vectorIP12ggml_backendSaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %521) #7
  store ptr %534, ptr %68, align 8
  %535 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPP12ggml_backendSt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef nonnull align 8 dereferenceable(8) %68) #7
  br i1 %535, label %.lr.ph594, label %._crit_edge595

.lr.ph594:                                        ; preds = %._crit_edge588
  %536 = getelementptr inbounds i8, ptr %72, i64 32
  %537 = getelementptr inbounds i8, ptr %1, i64 144
  br label %609

538:                                              ; preds = %._crit_edge585
  %539 = landingpad { ptr, i32 }
          cleanup
  br label %964

.lr.ph587:                                        ; preds = %520, %596
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %63) #7
  %540 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %61) #7
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(40) %63, ptr noundef nonnull align 8 dereferenceable(40) %540)
          to label %541 unwind label %552

541:                                              ; preds = %.lr.ph587
  %542 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull @.str.15)
  br i1 %542, label %545, label %543

543:                                              ; preds = %541
  %544 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull @.str.16)
  br i1 %544, label %545, label %559

545:                                              ; preds = %543, %541
  %546 = load i32, ptr %527, align 8, !tbaa !71
  %547 = load i32, ptr %128, align 8, !tbaa !47
  %548 = icmp sgt i32 %546, %547
  br i1 %548, label %549, label %556

549:                                              ; preds = %545
  %550 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP12ggml_backendSt4lessIS5_ESaISt4pairIKS5_S7_EEEixERSB_(ptr noundef nonnull align 8 dereferenceable(48) %60, ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %551 unwind label %554

551:                                              ; preds = %549
  store ptr %523, ptr %550, align 8, !tbaa !8
  br label %559

552:                                              ; preds = %.lr.ph587
  %553 = landingpad { ptr, i32 }
          cleanup
  br label %600

554:                                              ; preds = %571, %568, %556, %549
  %555 = landingpad { ptr, i32 }
          cleanup
  br label %599

556:                                              ; preds = %545
  %557 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP12ggml_backendSt4lessIS5_ESaISt4pairIKS5_S7_EEEixERSB_(ptr noundef nonnull align 8 dereferenceable(48) %60, ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %558 unwind label %554

558:                                              ; preds = %556
  store ptr %525, ptr %557, align 8, !tbaa !8
  br label %559

559:                                              ; preds = %551, %558, %543
  %560 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull @.str.13)
  br i1 %560, label %565, label %561

561:                                              ; preds = %559
  %562 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull @.str.14)
  br i1 %562, label %565, label %563

563:                                              ; preds = %561
  %564 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull @.str.17)
  br i1 %564, label %565, label %574

565:                                              ; preds = %563, %561, %559
  %566 = load i32, ptr %527, align 8, !tbaa !71
  %567 = icmp sgt i32 %566, 0
  br i1 %567, label %568, label %571

568:                                              ; preds = %565
  %569 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP12ggml_backendSt4lessIS5_ESaISt4pairIKS5_S7_EEEixERSB_(ptr noundef nonnull align 8 dereferenceable(48) %60, ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %570 unwind label %554

570:                                              ; preds = %568
  store ptr %523, ptr %569, align 8, !tbaa !8
  br label %574

571:                                              ; preds = %565
  %572 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP12ggml_backendSt4lessIS5_ESaISt4pairIKS5_S7_EEEixERSB_(ptr noundef nonnull align 8 dereferenceable(48) %60, ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %573 unwind label %554

573:                                              ; preds = %571
  store ptr %525, ptr %572, align 8, !tbaa !8
  br label %574

574:                                              ; preds = %570, %573, %563
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %64) #7
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %64, ptr noundef nonnull align 8 dereferenceable(32) %63, i64 noundef 0, i64 noundef 7)
          to label %575 unwind label %584

575:                                              ; preds = %574
  %576 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull @.str.18)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #7
  br i1 %576, label %577, label %596

577:                                              ; preds = %575
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %65) #7
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %65, ptr noundef nonnull align 8 dereferenceable(32) %63, i64 noundef 7, i64 noundef 2)
          to label %578 unwind label %586

578:                                              ; preds = %577
  %579 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef null, i32 noundef 10)
          to label %580 unwind label %588

580:                                              ; preds = %578
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #7
  %.not456 = icmp slt i32 %579, %529
  br i1 %.not456, label %593, label %581

581:                                              ; preds = %580
  %582 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP12ggml_backendSt4lessIS5_ESaISt4pairIKS5_S7_EEEixERSB_(ptr noundef nonnull align 8 dereferenceable(48) %60, ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %583 unwind label %591

583:                                              ; preds = %581
  store ptr %523, ptr %582, align 8, !tbaa !8
  br label %596

584:                                              ; preds = %574
  %585 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #7
  br label %599

586:                                              ; preds = %577
  %587 = landingpad { ptr, i32 }
          cleanup
  br label %590

588:                                              ; preds = %578
  %589 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  br label %590

590:                                              ; preds = %588, %586
  %.pn454 = phi { ptr, i32 } [ %589, %588 ], [ %587, %586 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #7
  br label %599

591:                                              ; preds = %593, %581
  %592 = landingpad { ptr, i32 }
          cleanup
  br label %599

593:                                              ; preds = %580
  %594 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP12ggml_backendSt4lessIS5_ESaISt4pairIKS5_S7_EEEixERSB_(ptr noundef nonnull align 8 dereferenceable(48) %60, ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %595 unwind label %591

595:                                              ; preds = %593
  store ptr %525, ptr %594, align 8, !tbaa !8
  br label %596

596:                                              ; preds = %583, %595, %575
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %63) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %63) #7
  %597 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %61) #7
  %598 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorEESD_(ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef nonnull align 8 dereferenceable(8) %62) #7
  br i1 %598, label %.lr.ph587, label %._crit_edge588

599:                                              ; preds = %590, %591, %584, %554
  %.pn457.pn = phi { ptr, i32 } [ %585, %584 ], [ %555, %554 ], [ %592, %591 ], [ %.pn454, %590 ]
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %63) #7
  br label %600

600:                                              ; preds = %599, %552
  %.pn457.pn.pn = phi { ptr, i32 } [ %.pn457.pn, %599 ], [ %553, %552 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %63) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #7
  br label %962

._crit_edge595:                                   ; preds = %668, %._crit_edge588
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %68) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #7
  %601 = load i32, ptr %122, align 8, !tbaa !18
  %602 = load i32, ptr %128, align 8, !tbaa !20
  %603 = load i32, ptr %119, align 4, !tbaa !17
  %604 = mul nsw i32 %603, %602
  %605 = mul nsw i32 %604, %601
  %606 = load ptr, ptr %214, align 8, !tbaa !8
  %607 = sext i32 %605 to i64
  %608 = invoke ptr @ggml_new_tensor_1d(ptr noundef %606, i32 noundef 0, i64 noundef %607)
          to label %672 unwind label %727

609:                                              ; preds = %.lr.ph594, %668
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %69) #7
  %610 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPP12ggml_backendSt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %67) #7
  %611 = load ptr, ptr %610, align 8, !tbaa !8
  store ptr %611, ptr %69, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %70) #7
  %612 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %260) #7
  store ptr %612, ptr %70, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %71) #7
  %613 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %260) #7
  store ptr %613, ptr %71, align 8
  %614 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorEESD_(ptr noundef nonnull align 8 dereferenceable(8) %70, ptr noundef nonnull align 8 dereferenceable(8) %71) #7
  br i1 %614, label %.lr.ph591, label %._crit_edge592.thread

._crit_edge592.thread:                            ; preds = %609
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %71) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %70) #7
  br label %664

._crit_edge592:                                   ; preds = %632
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %71) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %70) #7
  %.not446 = icmp eq i64 %.1388, 0
  br i1 %.not446, label %664, label %636

.lr.ph591:                                        ; preds = %609, %632
  %.0387589 = phi i64 [ %.1388, %632 ], [ 0, %609 ]
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %72) #7
  %615 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %70) #7
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorEC2ERKS9_(ptr noundef nonnull align 8 dereferenceable(40) %72, ptr noundef nonnull align 8 dereferenceable(40) %615)
          to label %616 unwind label %628

616:                                              ; preds = %.lr.ph591
  %617 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP12ggml_backendSt4lessIS5_ESaISt4pairIKS5_S7_EEEixERSB_(ptr noundef nonnull align 8 dereferenceable(48) %60, ptr noundef nonnull align 8 dereferenceable(32) %72)
          to label %618 unwind label %630

618:                                              ; preds = %616
  %619 = load ptr, ptr %617, align 8, !tbaa !8
  %620 = load ptr, ptr %69, align 8, !tbaa !8
  %621 = icmp eq ptr %619, %620
  br i1 %621, label %622, label %632

622:                                              ; preds = %618
  %623 = load ptr, ptr %536, align 8, !tbaa !75
  %624 = invoke i64 @ggml_nbytes(ptr noundef %623)
          to label %625 unwind label %630

625:                                              ; preds = %622
  %626 = add i64 %.0387589, 512
  %627 = add i64 %626, %624
  br label %632

628:                                              ; preds = %.lr.ph591
  %629 = landingpad { ptr, i32 }
          cleanup
  br label %635

630:                                              ; preds = %622, %616
  %631 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %72) #7
  br label %635

632:                                              ; preds = %625, %618
  %.1388 = phi i64 [ %627, %625 ], [ %.0387589, %618 ]
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %72) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %72) #7
  %633 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %70) #7
  %634 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorEESD_(ptr noundef nonnull align 8 dereferenceable(8) %70, ptr noundef nonnull align 8 dereferenceable(8) %71) #7
  br i1 %634, label %.lr.ph591, label %._crit_edge592

635:                                              ; preds = %630, %628
  %.pn450 = phi { ptr, i32 } [ %631, %630 ], [ %629, %628 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %72) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %71) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %70) #7
  br label %671

636:                                              ; preds = %._crit_edge592
  %637 = load ptr, ptr %69, align 8, !tbaa !8
  %638 = invoke ptr @ggml_backend_name(ptr noundef %637)
          to label %639 unwind label %654

639:                                              ; preds = %636
  %640 = uitofp i64 %.1388 to double
  %641 = fmul double %640, 0x3F50000000000000
  %642 = fmul double %641, 0x3F50000000000000
  %643 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.31, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, ptr noundef %638, double noundef %642)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %73) #7
  %644 = load ptr, ptr %69, align 8, !tbaa !8
  %645 = invoke ptr @ggml_backend_alloc_buffer(ptr noundef %644, i64 noundef %.1388)
          to label %646 unwind label %656

646:                                              ; preds = %639
  store ptr %645, ptr %73, align 8, !tbaa !8
  invoke void @ggml_backend_buffer_set_usage(ptr noundef %645, i32 noundef 1)
          to label %647 unwind label %656

647:                                              ; preds = %646
  invoke void @_ZNSt6vectorIP19ggml_backend_bufferSaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %537, ptr noundef nonnull align 8 dereferenceable(8) %73)
          to label %648 unwind label %656

648:                                              ; preds = %647
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %74) #7
  %649 = load ptr, ptr %73, align 8, !tbaa !8
  invoke void @ggml_tallocr_new(ptr dead_on_unwind nonnull writable sret(%struct.ggml_tallocr) align 8 %74, ptr noundef %649)
          to label %650 unwind label %658

650:                                              ; preds = %648
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %75) #7
  invoke void @_ZSt9make_pairIRP12ggml_backend12ggml_tallocrESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS5_INS6_IT0_E4typeEE6__typeEEOS7_OSC_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.49") align 8 %75, ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef nonnull align 8 dereferenceable(32) %74)
          to label %651 unwind label %660

651:                                              ; preds = %650
  %652 = invoke { ptr, i8 } @_ZNSt3mapIP12ggml_backend12ggml_tallocrSt4lessIS1_ESaISt4pairIKS1_S2_EEE6insertIS5_IS1_S2_EEENSt9enable_ifIXsr16is_constructibleIS7_T_EE5valueES5_ISt17_Rb_tree_iteratorIS7_EbEE4typeEOSD_(ptr noundef nonnull align 8 dereferenceable(48) %66, ptr noundef nonnull align 8 dereferenceable(40) %75)
          to label %653 unwind label %660

653:                                              ; preds = %651
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %75) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %74) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %73) #7
  br label %668

654:                                              ; preds = %636
  %655 = landingpad { ptr, i32 }
          cleanup
  br label %671

656:                                              ; preds = %647, %646, %639
  %657 = landingpad { ptr, i32 }
          cleanup
  br label %663

658:                                              ; preds = %648
  %659 = landingpad { ptr, i32 }
          cleanup
  br label %662

660:                                              ; preds = %651, %650
  %661 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %75) #7
  br label %662

662:                                              ; preds = %660, %658
  %.pn447 = phi { ptr, i32 } [ %661, %660 ], [ %659, %658 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %74) #7
  br label %663

663:                                              ; preds = %662, %656
  %.pn447.pn = phi { ptr, i32 } [ %.pn447, %662 ], [ %657, %656 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %73) #7
  br label %671

664:                                              ; preds = %._crit_edge592.thread, %._crit_edge592
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %76) #7
  store ptr null, ptr %76, align 8, !tbaa !8
  invoke void @_ZNSt6vectorIP19ggml_backend_bufferSaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %537, ptr noundef nonnull align 8 dereferenceable(8) %76)
          to label %665 unwind label %666

665:                                              ; preds = %664
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %76) #7
  br label %668

666:                                              ; preds = %664
  %667 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %76) #7
  br label %671

668:                                              ; preds = %665, %653
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #7
  %669 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPP12ggml_backendSt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %67) #7
  %670 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPP12ggml_backendSt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef nonnull align 8 dereferenceable(8) %68) #7
  br i1 %670, label %609, label %._crit_edge595

671:                                              ; preds = %666, %663, %654, %635
  %.pn450.pn = phi { ptr, i32 } [ %.pn450, %635 ], [ %.pn447.pn, %663 ], [ %655, %654 ], [ %667, %666 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %68) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #7
  br label %961

672:                                              ; preds = %._crit_edge595
  %673 = getelementptr inbounds i8, ptr %1, i64 96
  store ptr %608, ptr %673, align 8, !tbaa !77
  %674 = load ptr, ptr %214, align 8, !tbaa !8
  %675 = invoke ptr @ggml_new_tensor_1d(ptr noundef %674, i32 noundef 0, i64 noundef %607)
          to label %676 unwind label %727

676:                                              ; preds = %672
  %677 = getelementptr inbounds i8, ptr %1, i64 104
  store ptr %675, ptr %677, align 8, !tbaa !78
  %678 = load ptr, ptr %673, align 8, !tbaa !77
  %679 = invoke ptr @ggml_set_name(ptr noundef %678, ptr noundef nonnull @.str.32)
          to label %680 unwind label %727

680:                                              ; preds = %676
  %681 = load ptr, ptr %677, align 8, !tbaa !78
  %682 = invoke ptr @ggml_set_name(ptr noundef %681, ptr noundef nonnull @.str.33)
          to label %683 unwind label %727

683:                                              ; preds = %680
  %684 = load ptr, ptr %673, align 8, !tbaa !77
  %685 = invoke i64 @ggml_nbytes(ptr noundef %684)
          to label %686 unwind label %729

686:                                              ; preds = %683
  %687 = load ptr, ptr %677, align 8, !tbaa !78
  %688 = invoke i64 @ggml_nbytes(ptr noundef %687)
          to label %689 unwind label %729

689:                                              ; preds = %686
  %690 = add i64 %688, %685
  %691 = uitofp i64 %690 to double
  %692 = fmul double %691, 0x3F50000000000000
  %693 = fmul double %692, 0x3F50000000000000
  %694 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.34, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, double noundef %693, i32 noundef %604)
  %695 = load i32, ptr %527, align 8, !tbaa !71
  %696 = load i32, ptr %128, align 8, !tbaa !20
  %697 = sdiv i32 %696, 2
  %.not418 = icmp slt i32 %695, %697
  %698 = select i1 %.not418, ptr %525, ptr %523
  %699 = invoke ptr @ggml_backend_name(ptr noundef %698)
          to label %700 unwind label %731

700:                                              ; preds = %689
  %701 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.35, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, ptr noundef %699)
  %702 = add i64 %690, 1024
  %703 = invoke ptr @ggml_backend_alloc_buffer(ptr noundef %698, i64 noundef %702)
          to label %704 unwind label %731

704:                                              ; preds = %700
  %705 = getelementptr inbounds i8, ptr %1, i64 168
  store ptr %703, ptr %705, align 8, !tbaa !79
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %77) #7
  invoke void @ggml_tallocr_new(ptr dead_on_unwind nonnull writable sret(%struct.ggml_tallocr) align 8 %77, ptr noundef %703)
          to label %706 unwind label %733

706:                                              ; preds = %704
  %707 = load ptr, ptr %673, align 8, !tbaa !77
  %708 = invoke i32 @ggml_tallocr_alloc(ptr noundef nonnull %77, ptr noundef %707)
          to label %709 unwind label %733

709:                                              ; preds = %706
  %710 = load ptr, ptr %677, align 8, !tbaa !78
  %711 = invoke i32 @ggml_tallocr_alloc(ptr noundef nonnull %77, ptr noundef %710)
          to label %712 unwind label %733

712:                                              ; preds = %709
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %78) #7
  call void @_ZNSt6vectorIcSaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %78) #7
  %713 = load i64, ptr @__const._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params.ne, align 4
  %714 = getelementptr inbounds i8, ptr %82, i64 4
  br label %715

715:                                              ; preds = %895, %712
  %.0397 = phi i64 [ 0, %712 ], [ %896, %895 ]
  %.0391 = phi i8 [ 0, %712 ], [ %spec.select, %895 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %79) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %80) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %81) #7
  %716 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull %79, i64 noundef 4)
          to label %717 unwind label %735

717:                                              ; preds = %715
  %718 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull %80, i64 noundef 4)
          to label %719 unwind label %735

719:                                              ; preds = %717
  %720 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull %81, i64 noundef 4)
          to label %721 unwind label %735

721:                                              ; preds = %719
  %722 = load ptr, ptr %5, align 8, !tbaa !5
  %723 = getelementptr i8, ptr %722, i64 -24
  %724 = load i64, ptr %723, align 8
  %725 = getelementptr inbounds i8, ptr %5, i64 %724
  %726 = call noundef zeroext i1 @_ZNKSt9basic_iosIcSt11char_traitsIcEE3eofEv(ptr noundef nonnull align 8 dereferenceable(264) %725)
  br i1 %726, label %903, label %737

727:                                              ; preds = %680, %676, %672, %._crit_edge595
  %728 = landingpad { ptr, i32 }
          cleanup
  br label %961

729:                                              ; preds = %686, %683
  %730 = landingpad { ptr, i32 }
          cleanup
  br label %961

731:                                              ; preds = %700, %689
  %732 = landingpad { ptr, i32 }
          cleanup
  br label %961

733:                                              ; preds = %709, %706, %704
  %734 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #7
  br label %961

735:                                              ; preds = %719, %717, %715
  %736 = landingpad { ptr, i32 }
          cleanup
  br label %901

737:                                              ; preds = %721
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %82) #7
  store i64 %713, ptr %82, align 8
  %738 = load i32, ptr %79, align 4, !tbaa !11
  %739 = icmp sgt i32 %738, 0
  br i1 %739, label %.lr.ph599, label %._crit_edge600

._crit_edge600:                                   ; preds = %744, %737
  %.0390.lcssa = phi i32 [ 1, %737 ], [ %746, %744 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %83) #7
  %740 = load i32, ptr %80, align 4, !tbaa !11
  %741 = sext i32 %740 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %84) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %83, i64 noundef %741, i8 noundef signext 0, ptr noundef nonnull align 1 dereferenceable(1) %84)
          to label %752 unwind label %766

.lr.ph599:                                        ; preds = %737, %744
  %indvars.iv654 = phi i64 [ %indvars.iv.next655, %744 ], [ 0, %737 ]
  %.0390596 = phi i32 [ %746, %744 ], [ 1, %737 ]
  %742 = getelementptr inbounds [2 x i32], ptr %82, i64 0, i64 %indvars.iv654
  %743 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull %742, i64 noundef 4)
          to label %744 unwind label %750

744:                                              ; preds = %.lr.ph599
  %745 = load i32, ptr %742, align 4, !tbaa !11
  %746 = mul nsw i32 %745, %.0390596
  %indvars.iv.next655 = add nuw nsw i64 %indvars.iv654, 1
  %747 = load i32, ptr %79, align 4, !tbaa !11
  %748 = sext i32 %747 to i64
  %749 = icmp slt i64 %indvars.iv.next655, %748
  br i1 %749, label %.lr.ph599, label %._crit_edge600, !llvm.loop !80

750:                                              ; preds = %.lr.ph599
  %751 = landingpad { ptr, i32 }
          cleanup
  br label %900

752:                                              ; preds = %._crit_edge600
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %84) #7
  %753 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %83, i64 noundef 0)
  %754 = load i32, ptr %80, align 4, !tbaa !11
  %755 = sext i32 %754 to i64
  %756 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef nonnull %753, i64 noundef %755)
          to label %757 unwind label %768

757:                                              ; preds = %752
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %85) #7
  %758 = invoke ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEE4findERSB_(ptr noundef nonnull align 8 dereferenceable(48) %260, ptr noundef nonnull align 8 dereferenceable(32) %83)
          to label %759 unwind label %770

759:                                              ; preds = %757
  store ptr %758, ptr %85, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %86) #7
  %760 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %260) #7
  store ptr %760, ptr %86, align 8
  %761 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorEESD_(ptr noundef nonnull align 8 dereferenceable(8) %85, ptr noundef nonnull align 8 dereferenceable(8) %86) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %86) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %85) #7
  br i1 %761, label %762, label %772

762:                                              ; preds = %759
  %763 = load ptr, ptr @stderr, align 8, !tbaa !8
  %764 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %83) #7
  %765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %763, ptr noundef nonnull @.str.36, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, ptr noundef %764) #8
  br label %902

766:                                              ; preds = %._crit_edge600
  %767 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %84) #7
  br label %899

768:                                              ; preds = %752
  %769 = landingpad { ptr, i32 }
          cleanup
  br label %898

770:                                              ; preds = %757
  %771 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %85) #7
  br label %898

772:                                              ; preds = %759
  %773 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEEixERSB_(ptr noundef nonnull align 8 dereferenceable(48) %260, ptr noundef nonnull align 8 dereferenceable(32) %83)
          to label %774 unwind label %786

774:                                              ; preds = %772
  %775 = load ptr, ptr %773, align 8, !tbaa !8
  %776 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %83) #7
  %777 = invoke ptr @ggml_set_name(ptr noundef %775, ptr noundef %776)
          to label %778 unwind label %786

778:                                              ; preds = %774
  %779 = invoke i64 @ggml_nelements(ptr noundef %775)
          to label %780 unwind label %786

780:                                              ; preds = %778
  %781 = sext i32 %.0390.lcssa to i64
  %.not423 = icmp eq i64 %779, %781
  br i1 %.not423, label %788, label %782

782:                                              ; preds = %780
  %783 = load ptr, ptr @stderr, align 8, !tbaa !8
  %784 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %83) #7
  %785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %783, ptr noundef nonnull @.str.37, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, ptr noundef %784) #8
  br label %902

786:                                              ; preds = %778, %774, %772
  %787 = landingpad { ptr, i32 }
          cleanup
  br label %898

788:                                              ; preds = %780
  %789 = getelementptr inbounds i8, ptr %775, i64 16
  %790 = load i64, ptr %789, align 8, !tbaa !48
  %791 = load i32, ptr %82, align 8, !tbaa !11
  %792 = sext i32 %791 to i64
  %.not424 = icmp eq i64 %790, %792
  br i1 %.not424, label %793, label %798

793:                                              ; preds = %788
  %794 = getelementptr inbounds i8, ptr %775, i64 24
  %795 = load i64, ptr %794, align 8, !tbaa !48
  %796 = load i32, ptr %714, align 4, !tbaa !11
  %797 = sext i32 %796 to i64
  %.not425 = icmp eq i64 %795, %797
  br i1 %.not425, label %810, label %798

798:                                              ; preds = %793, %788
  %799 = getelementptr inbounds i8, ptr %775, i64 16
  %800 = load ptr, ptr @stderr, align 8, !tbaa !8
  %801 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %83) #7
  %802 = load i64, ptr %799, align 8, !tbaa !48
  %803 = trunc i64 %802 to i32
  %804 = getelementptr inbounds i8, ptr %775, i64 24
  %805 = load i64, ptr %804, align 8, !tbaa !48
  %806 = trunc i64 %805 to i32
  %807 = load i32, ptr %82, align 8, !tbaa !11
  %808 = load i32, ptr %714, align 4, !tbaa !11
  %809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %800, ptr noundef nonnull @.str.38, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, ptr noundef %801, i32 noundef %803, i32 noundef %806, i32 noundef %807, i32 noundef %808) #8
  br label %902

810:                                              ; preds = %793
  %811 = load i32, ptr %81, align 4, !tbaa !11
  %812 = invoke i64 @ggml_type_size(i32 noundef %811)
          to label %813 unwind label %.loopexit

813:                                              ; preds = %810
  %814 = mul i64 %812, %779
  %815 = load i32, ptr %775, align 8, !tbaa !81
  %816 = invoke i64 @ggml_blck_size(i32 noundef %815)
          to label %817 unwind label %.loopexit

817:                                              ; preds = %813
  %818 = invoke i64 @ggml_nbytes(ptr noundef nonnull %775)
          to label %819 unwind label %.loopexit

819:                                              ; preds = %817
  %820 = udiv i64 %814, %816
  %.not426 = icmp eq i64 %820, %818
  br i1 %.not426, label %827, label %821

821:                                              ; preds = %819
  %822 = load ptr, ptr @stderr, align 8, !tbaa !8
  %823 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %83) #7
  %824 = invoke i64 @ggml_nbytes(ptr noundef nonnull %775)
          to label %825 unwind label %.loopexit.split-lp

825:                                              ; preds = %821
  %826 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %822, ptr noundef nonnull @.str.39, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, ptr noundef %823, i64 noundef %824, i64 noundef %814) #8
  br label %902

.loopexit:                                        ; preds = %810, %813, %817
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %898

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

827:                                              ; preds = %819
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %87) #7
  %828 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP12ggml_backendSt4lessIS5_ESaISt4pairIKS5_S7_EEEixERSB_(ptr noundef nonnull align 8 dereferenceable(48) %60, ptr noundef nonnull align 8 dereferenceable(32) %83)
          to label %829 unwind label %846

829:                                              ; preds = %827
  %830 = load ptr, ptr %828, align 8, !tbaa !8
  store ptr %830, ptr %87, align 8, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %88) #7
  %831 = invoke ptr @_ZNSt3mapIP12ggml_backend12ggml_tallocrSt4lessIS1_ESaISt4pairIKS1_S2_EEE4findERS6_(ptr noundef nonnull align 8 dereferenceable(48) %66, ptr noundef nonnull align 8 dereferenceable(8) %87)
          to label %832 unwind label %848

832:                                              ; preds = %829
  store ptr %831, ptr %88, align 8
  %833 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKP12ggml_backend12ggml_tallocrEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %88) #7
  %834 = getelementptr inbounds i8, ptr %833, i64 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %88) #7
  %835 = invoke i32 @ggml_tallocr_alloc(ptr noundef nonnull %834, ptr noundef nonnull %775)
          to label %836 unwind label %850

836:                                              ; preds = %832
  %837 = load ptr, ptr %87, align 8, !tbaa !8
  %838 = invoke zeroext i1 @ggml_backend_is_cpu(ptr noundef %837)
          to label %839 unwind label %850

839:                                              ; preds = %836
  br i1 %838, label %840, label %852

840:                                              ; preds = %839
  %841 = getelementptr inbounds i8, ptr %775, i64 248
  %842 = load ptr, ptr %841, align 8, !tbaa !85
  %843 = invoke i64 @ggml_nbytes(ptr noundef nonnull %775)
          to label %844 unwind label %850

844:                                              ; preds = %840
  %845 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef %842, i64 noundef %843)
          to label %864 unwind label %850

846:                                              ; preds = %827
  %847 = landingpad { ptr, i32 }
          cleanup
  br label %897

848:                                              ; preds = %829
  %849 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %88) #7
  br label %897

850:                                              ; preds = %892, %863, %860, %858, %855, %854, %852, %844, %840, %836, %832
  %851 = landingpad { ptr, i32 }
          cleanup
  br label %897

852:                                              ; preds = %839
  %853 = invoke i64 @ggml_nbytes(ptr noundef nonnull %775)
          to label %854 unwind label %850

854:                                              ; preds = %852
  invoke void @_ZNSt6vectorIcSaIcEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %78, i64 noundef %853)
          to label %855 unwind label %850

855:                                              ; preds = %854
  %856 = call noundef ptr @_ZNSt6vectorIcSaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %78) #7
  %857 = invoke i64 @ggml_nbytes(ptr noundef nonnull %775)
          to label %858 unwind label %850

858:                                              ; preds = %855
  %859 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSi4readEPcl(ptr noundef nonnull align 8 dereferenceable(16) %5, ptr noundef %856, i64 noundef %857)
          to label %860 unwind label %850

860:                                              ; preds = %858
  %861 = call noundef ptr @_ZNSt6vectorIcSaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %78) #7
  %862 = invoke i64 @ggml_nbytes(ptr noundef nonnull %775)
          to label %863 unwind label %850

863:                                              ; preds = %860
  invoke void @ggml_backend_tensor_set(ptr noundef nonnull %775, ptr noundef %861, i64 noundef 0, i64 noundef %862)
          to label %864 unwind label %850

864:                                              ; preds = %863, %844
  %865 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef nonnull @.str.15)
  %866 = and i8 %.0391, 1
  %867 = icmp eq i8 %866, 0
  %or.cond = select i1 %865, i1 %867, i1 false
  br i1 %or.cond, label %868, label %892

868:                                              ; preds = %864
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %89) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %90) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %91) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %90, ptr noundef nonnull @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %91)
          to label %869 unwind label %885

869:                                              ; preds = %868
  %870 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP12ggml_backendSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %60, ptr noundef nonnull align 8 dereferenceable(32) %90)
          to label %871 unwind label %887

871:                                              ; preds = %869
  %872 = invoke ptr @_ZNSt3mapIP12ggml_backend12ggml_tallocrSt4lessIS1_ESaISt4pairIKS1_S2_EEE4findERS6_(ptr noundef nonnull align 8 dereferenceable(48) %66, ptr noundef nonnull align 8 dereferenceable(8) %870)
          to label %873 unwind label %887

873:                                              ; preds = %871
  store ptr %872, ptr %89, align 8
  %874 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKP12ggml_backend12ggml_tallocrEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %89) #7
  %875 = getelementptr inbounds i8, ptr %874, i64 8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %91) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %90) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %89) #7
  %876 = load ptr, ptr %258, align 8, !tbaa !56
  %877 = invoke i32 @ggml_tallocr_alloc(ptr noundef nonnull %875, ptr noundef %876)
          to label %878 unwind label %890

878:                                              ; preds = %873
  %879 = load ptr, ptr %258, align 8, !tbaa !56
  invoke void @ggml_backend_tensor_copy(ptr noundef nonnull %775, ptr noundef %879)
          to label %880 unwind label %890

880:                                              ; preds = %878
  %881 = load ptr, ptr %258, align 8, !tbaa !56
  %882 = invoke i64 @ggml_nbytes(ptr noundef %881)
          to label %883 unwind label %890

883:                                              ; preds = %880
  %884 = add i64 %882, %.0397
  br label %892

885:                                              ; preds = %868
  %886 = landingpad { ptr, i32 }
          cleanup
  br label %889

887:                                              ; preds = %871, %869
  %888 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #7
  br label %889

889:                                              ; preds = %887, %885
  %.pn427 = phi { ptr, i32 } [ %888, %887 ], [ %886, %885 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %91) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %90) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %89) #7
  br label %897

890:                                              ; preds = %880, %878, %873
  %891 = landingpad { ptr, i32 }
          cleanup
  br label %897

892:                                              ; preds = %883, %864
  %.1398 = phi i64 [ %884, %883 ], [ %.0397, %864 ]
  %893 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef nonnull @.str.17)
  %894 = invoke i64 @ggml_nbytes(ptr noundef nonnull %775)
          to label %895 unwind label %850

895:                                              ; preds = %892
  %spec.select = select i1 %893, i8 1, i8 %.0391
  %896 = add i64 %894, %.1398
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %87) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %82) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %81) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %80) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %79) #7
  br label %715

897:                                              ; preds = %848, %850, %890, %889, %846
  %.pn431.pn = phi { ptr, i32 } [ %847, %846 ], [ %851, %850 ], [ %849, %848 ], [ %891, %890 ], [ %.pn427, %889 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %87) #7
  br label %898

898:                                              ; preds = %.loopexit, %.loopexit.split-lp, %786, %897, %770, %768
  %.pn434.pn.pn = phi { ptr, i32 } [ %771, %770 ], [ %769, %768 ], [ %787, %786 ], [ %.pn431.pn, %897 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #7
  br label %899

899:                                              ; preds = %898, %766
  %.pn434.pn.pn.pn = phi { ptr, i32 } [ %.pn434.pn.pn, %898 ], [ %767, %766 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #7
  br label %900

900:                                              ; preds = %899, %750
  %.pn439 = phi { ptr, i32 } [ %751, %750 ], [ %.pn434.pn.pn.pn, %899 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %82) #7
  br label %901

901:                                              ; preds = %900, %735
  %.pn439.pn = phi { ptr, i32 } [ %.pn439, %900 ], [ %736, %735 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %81) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %80) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %79) #7
  call void @_ZNSt6vectorIcSaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %78) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %78) #7
  br label %961

902:                                              ; preds = %762, %782, %798, %825
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %82) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %81) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %80) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %79) #7
  call void @_ZNSt6vectorIcSaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %78) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %78) #7
  br label %960

903:                                              ; preds = %721
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %81) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %80) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %79) #7
  %904 = uitofp i64 %.0397 to double
  %905 = fmul double %904, 0x3F50000000000000
  %906 = fmul double %905, 0x3F50000000000000
  %907 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.40, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, double noundef %906)
  call void @_ZNSt6vectorIcSaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %78) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %78) #7
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE5closeEv(ptr noundef nonnull align 8 dereferenceable(256) %5)
          to label %908 unwind label %952

908:                                              ; preds = %903
  %909 = load ptr, ptr %214, align 8, !tbaa !8
  %910 = load i32, ptr %119, align 4, !tbaa !86
  %911 = sext i32 %910 to i64
  %912 = invoke ptr @ggml_new_tensor_1d(ptr noundef %909, i32 noundef 26, i64 noundef %911)
          to label %913 unwind label %952

913:                                              ; preds = %908
  %914 = getelementptr inbounds i8, ptr %1, i64 232
  store ptr %912, ptr %914, align 8, !tbaa !87
  %915 = load ptr, ptr %214, align 8, !tbaa !8
  %916 = load i32, ptr %119, align 4, !tbaa !86
  %917 = sext i32 %916 to i64
  %918 = invoke ptr @ggml_new_tensor_1d(ptr noundef %915, i32 noundef 26, i64 noundef %917)
          to label %919 unwind label %952

919:                                              ; preds = %913
  %920 = getelementptr inbounds i8, ptr %1, i64 240
  store ptr %918, ptr %920, align 8, !tbaa !88
  %921 = load ptr, ptr %914, align 8, !tbaa !87
  %922 = invoke ptr @ggml_set_name(ptr noundef %921, ptr noundef nonnull @.str.41)
          to label %923 unwind label %952

923:                                              ; preds = %919
  %924 = load ptr, ptr %920, align 8, !tbaa !88
  %925 = invoke ptr @ggml_set_name(ptr noundef %924, ptr noundef nonnull @.str.42)
          to label %926 unwind label %952

926:                                              ; preds = %923
  %927 = load ptr, ptr %914, align 8, !tbaa !87
  %928 = invoke i64 @ggml_nbytes(ptr noundef %927)
          to label %929 unwind label %954

929:                                              ; preds = %926
  %930 = load ptr, ptr %920, align 8, !tbaa !88
  %931 = invoke i64 @ggml_nbytes(ptr noundef %930)
          to label %932 unwind label %954

932:                                              ; preds = %929
  %933 = add i64 %931, %928
  %934 = load i32, ptr %527, align 8, !tbaa !71
  %935 = load i32, ptr %128, align 8, !tbaa !47
  %.not442 = icmp slt i32 %934, %935
  %936 = select i1 %.not442, ptr %525, ptr %523
  %937 = add i64 %933, 1536
  %938 = invoke ptr @ggml_backend_alloc_buffer(ptr noundef %936, i64 noundef %937)
          to label %939 unwind label %956

939:                                              ; preds = %932
  %940 = getelementptr inbounds i8, ptr %1, i64 176
  store ptr %938, ptr %940, align 8, !tbaa !89
  %941 = invoke ptr @ggml_backend_name(ptr noundef %936)
          to label %942 unwind label %956

942:                                              ; preds = %939
  %943 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.43, ptr noundef nonnull @__func__._Z15gpt2_model_loadRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER10gpt2_modelR9gpt_vocabRK10gpt_params, ptr noundef %941, i64 noundef %933)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %92) #7
  %944 = load ptr, ptr %940, align 8, !tbaa !89
  invoke void @ggml_tallocr_new(ptr dead_on_unwind nonnull writable sret(%struct.ggml_tallocr) align 8 %92, ptr noundef %944)
          to label %945 unwind label %958

945:                                              ; preds = %942
  %946 = load ptr, ptr %914, align 8, !tbaa !87
  %947 = invoke i32 @ggml_tallocr_alloc(ptr noundef nonnull %92, ptr noundef %946)
          to label %948 unwind label %958

948:                                              ; preds = %945
  %949 = load ptr, ptr %920, align 8, !tbaa !88
  %950 = invoke i32 @ggml_tallocr_alloc(ptr noundef nonnull %92, ptr noundef %949)
          to label %951 unwind label %958

951:                                              ; preds = %948
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %92) #7
  br label %960

952:                                              ; preds = %923, %919, %913, %908, %903
  %953 = landingpad { ptr, i32 }
          cleanup
  br label %961

954:                                              ; preds = %929, %926
  %955 = landingpad { ptr, i32 }
          cleanup
  br label %961

956:                                              ; preds = %939, %932
  %957 = landingpad { ptr, i32 }
          cleanup
  br label %961

958:                                              ; preds = %948, %945, %942
  %959 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %92) #7
  br label %961

960:                                              ; preds = %902, %951
  call void @_ZNSt3mapIP12ggml_backend12ggml_tallocrSt4lessIS1_ESaISt4pairIKS1_S2_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %66) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %66) #7
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP12ggml_backendSt4lessIS5_ESaISt4pairIKS5_S7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %60) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %60) #7
  br label %963

961:                                              ; preds = %954, %958, %956, %727, %731, %733, %729, %952, %901, %671
  %.pn450.pn.pn = phi { ptr, i32 } [ %.pn450.pn, %671 ], [ %953, %952 ], [ %.pn439.pn, %901 ], [ %728, %727 ], [ %730, %729 ], [ %734, %733 ], [ %732, %731 ], [ %955, %954 ], [ %959, %958 ], [ %957, %956 ]
  call void @_ZNSt3mapIP12ggml_backend12ggml_tallocrSt4lessIS1_ESaISt4pairIKS1_S2_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %66) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %66) #7
  br label %962

962:                                              ; preds = %961, %600
  %.pn457.pn.pn.pn = phi { ptr, i32 } [ %.pn457.pn.pn, %600 ], [ %.pn450.pn.pn, %961 ]
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP12ggml_backendSt4lessIS5_ESaISt4pairIKS5_S7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %60) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %60) #7
  br label %964

963:                                              ; preds = %.thread, %224, %111, %204, %960, %101
  %.11 = phi i1 [ false, %101 ], [ false, %111 ], [ false, %204 ], [ %726, %960 ], [ false, %224 ], [ false, %.thread ]
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %5) #7
  call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %5) #7
  ret i1 %.11

964:                                              ; preds = %211, %285, %291, %296, %301, %306, %311, %519, %511, %503, %495, %487, %479, %471, %463, %455, %447, %439, %431, %422, %962, %538, %227, %210, %160, %115, %105
  %.pn495.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %210 ], [ %161, %160 ], [ %116, %115 ], [ %106, %105 ], [ %212, %211 ], [ %.pn457.pn.pn.pn, %962 ], [ %539, %538 ], [ %228, %227 ], [ %.pn416, %311 ], [ %.pn414, %306 ], [ %.pn412, %301 ], [ %.pn410, %296 ], [ %.pn408, %291 ], [ %286, %285 ], [ %.pn495.pn, %519 ], [ %.pn492.pn, %511 ], [ %.pn489.pn, %503 ], [ %.pn486.pn, %495 ], [ %.pn483.pn, %487 ], [ %.pn480.pn, %479 ], [ %.pn477.pn, %471 ], [ %.pn474.pn, %463 ], [ %.pn471.pn, %455 ], [ %.pn468.pn, %447 ], [ %.pn465.pn, %439 ], [ %.pn462.pn, %431 ], [ %423, %422 ]
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %5) #7
  call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %5) #7
  resume { ptr, i32 } %.pn495.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 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

; 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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #1 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 nounwind uwtable
declare dso_local noundef zeroext i1 @_ZStneRKSt17_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 nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP12ggml_backendSt4lessIS5_ESaISt4pairIKS5_S7_EEEixERSB_(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 void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), i64 noundef, i64 noundef) local_unnamed_addr #2 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorED2Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #6 align 2

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

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

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

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

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

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

declare i64 @ggml_nbytes(ptr noundef) local_unnamed_addr #4

declare ptr @ggml_backend_name(ptr noundef) local_unnamed_addr #4

declare ptr @ggml_backend_alloc_buffer(ptr noundef, i64 noundef) local_unnamed_addr #4

declare void @ggml_backend_buffer_set_usage(ptr noundef, i32 noundef) local_unnamed_addr #4

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

declare void @ggml_tallocr_new(ptr dead_on_unwind writable sret(%struct.ggml_tallocr) align 8, ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt3mapIP12ggml_backend12ggml_tallocrSt4lessIS1_ESaISt4pairIKS1_S2_EEE6insertIS5_IS1_S2_EEENSt9enable_ifIXsr16is_constructibleIS7_T_EE5valueES5_ISt17_Rb_tree_iteratorIS7_EbEE4typeEOSD_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairIRP12ggml_backend12ggml_tallocrESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS5_INS6_IT0_E4typeEE6__typeEEOS7_OSC_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.49") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2

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

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

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

declare i32 @ggml_tallocr_alloc(ptr noundef, 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 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 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

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

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

declare zeroext i1 @ggml_backend_is_cpu(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: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP12ggml_backendSt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

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

; 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 dso_local void @_ZNSt3mapIP12ggml_backend12ggml_tallocrSt4lessIS1_ESaISt4pairIKS1_S2_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP12ggml_backendSt4lessIS5_ESaISt4pairIKS5_S7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #1 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, !27, i64 120, !31, i64 144, !9, i64 168, !9, i64 176, !35, i64 184, !9, i64 232, !9, i64 240}
!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 = !{!"_ZTSSt6vectorIP12ggml_backendSaIS1_EE", !28, i64 0}
!28 = !{!"_ZTSSt12_Vector_baseIP12ggml_backendSaIS1_EE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseIP12ggml_backendSaIS1_EE12_Vector_implE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseIP12ggml_backendSaIS1_EE17_Vector_impl_dataE", !9, i64 0, !9, i64 8, !9, i64 16}
!31 = !{!"_ZTSSt6vectorIP19ggml_backend_bufferSaIS1_EE", !32, i64 0}
!32 = !{!"_ZTSSt12_Vector_baseIP19ggml_backend_bufferSaIS1_EE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIP19ggml_backend_bufferSaIS1_EE12_Vector_implE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIP19ggml_backend_bufferSaIS1_EE17_Vector_impl_dataE", !9, i64 0, !9, i64 8, !9, i64 16}
!35 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorSt4lessIS5_ESaISt4pairIKS5_S7_EEE", !36, i64 0}
!36 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_P11ggml_tensorESt10_Select1stISA_ESt4lessIS5_ESaISA_EE", !37, i64 0}
!37 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_P11ggml_tensorESt10_Select1stISA_ESt4lessIS5_ESaISA_EE13_Rb_tree_implISE_Lb1EEE", !38, i64 0, !40, i64 8}
!38 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !39, i64 0}
!39 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!40 = !{!"_ZTSSt15_Rb_tree_header", !41, i64 0, !43, i64 32}
!41 = !{!"_ZTSSt18_Rb_tree_node_base", !42, i64 0, !9, i64 8, !9, i64 16, !9, i64 24}
!42 = !{!"_ZTSSt14_Rb_tree_color", !10, i64 0}
!43 = !{!"long", !10, i64 0}
!44 = distinct !{!44, !45}
!45 = !{!"llvm.loop.mustprogress"}
!46 = !{!22, !12, i64 20}
!47 = !{!22, !12, i64 16}
!48 = !{!43, !43, i64 0}
!49 = !{!50, !50, i64 0}
!50 = !{!"bool", !10, i64 0}
!51 = !{!22, !9, i64 112}
!52 = !{!22, !9, i64 32}
!53 = !{!22, !9, i64 40}
!54 = !{!22, !9, i64 48}
!55 = !{!22, !9, i64 56}
!56 = !{!22, !9, i64 64}
!57 = !{!58, !9, i64 0}
!58 = !{!"_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}
!59 = !{!58, !9, i64 8}
!60 = !{!58, !9, i64 16}
!61 = !{!58, !9, i64 24}
!62 = !{!58, !9, i64 32}
!63 = !{!58, !9, i64 40}
!64 = !{!58, !9, i64 48}
!65 = !{!58, !9, i64 56}
!66 = !{!58, !9, i64 64}
!67 = !{!58, !9, i64 72}
!68 = !{!58, !9, i64 80}
!69 = !{!58, !9, i64 88}
!70 = distinct !{!70, !45}
!71 = !{!72, !12, i64 24}
!72 = !{!"_ZTS10gpt_params", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !12, i64 20, !12, i64 24, !50, i64 28, !12, i64 32, !15, i64 36, !15, i64 40, !12, i64 44, !15, i64 48, !73, i64 56, !73, i64 88, !73, i64 120, !50, i64 152, !12, i64 156}
!73 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !74, i64 0, !43, i64 8, !10, i64 16}
!74 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !9, i64 0}
!75 = !{!76, !9, i64 32}
!76 = !{!"_ZTSSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorE", !73, i64 0, !9, i64 32}
!77 = !{!22, !9, i64 96}
!78 = !{!22, !9, i64 104}
!79 = !{!22, !9, i64 168}
!80 = distinct !{!80, !45}
!81 = !{!82, !83, i64 0}
!82 = !{!"_ZTS11ggml_tensor", !83, i64 0, !9, i64 8, !10, i64 16, !10, i64 48, !84, i64 80, !10, i64 84, !12, i64 148, !10, i64 152, !9, i64 232, !43, i64 240, !9, i64 248, !10, i64 256, !9, i64 320, !10, i64 328}
!83 = !{!"_ZTS9ggml_type", !10, i64 0}
!84 = !{!"_ZTS7ggml_op", !10, i64 0}
!85 = !{!82, !9, i64 248}
!86 = !{!22, !12, i64 4}
!87 = !{!22, !9, i64 232}
!88 = !{!22, !9, i64 240}
!89 = !{!22, !9, i64 176}


; 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