; LLVM IR from huawei-noah/bolt :: inference/examples/machine_translation (nmt_en-cs)

; 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_ostream" = type { ptr, %"class.std::basic_ios" }
%"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::locale" = type { ptr }
%struct.ParseRes = type { %"struct.std::pair", %"struct.std::pair", %"struct.std::pair", %"struct.std::pair", %"struct.std::pair.37", %"struct.std::pair.40", %"struct.std::pair.43", %"struct.std::pair.43", %"struct.std::pair.43", %"struct.std::pair", %"struct.std::pair", %"struct.std::pair" }
%"struct.std::pair.37" = type <{ i32, i8, [3 x i8] }>
%"struct.std::pair.40" = type <{ float, i8, [3 x i8] }>
%"struct.std::pair.43" = type <{ i32, i8, [3 x i8] }>
%"struct.std::pair" = type <{ ptr, i8, [7 x i8] }>
%"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::allocator.11" = type { i8 }
%"class.std::shared_ptr.46" = type { %"class.std::__shared_ptr.47" }
%"class.std::__shared_ptr.47" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { 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>, TensorDesc>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, TensorDesc>>, 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>, TensorDesc>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, TensorDesc>>, 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.TensorDesc = type { i32, i32, i32, [20 x i32] }
%"class.std::map.97" = type { %"class.std::_Rb_tree.98" }
%"class.std::_Rb_tree.98" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<unsigned char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<unsigned char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<unsigned char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<unsigned char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::shared_ptr.8" = type { %"class.std::__shared_ptr.9" }
%"class.std::__shared_ptr.9" = type { ptr, %"class.std::__shared_count" }
%class.anon = type { i8 }
%class.anon.102 = type { i8 }
%class.anon.104 = type { i8 }
%"class.std::map.106" = type { %"class.std::_Rb_tree.107" }
%"class.std::_Rb_tree.107" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, float *>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, float *>>, 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>, float *>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, float *>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%class.Tensor = type { %"class.std::shared_ptr", %"class.std::shared_ptr.5" }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.5" = type { %"class.std::__shared_ptr.6" }
%"class.std::__shared_ptr.6" = type { ptr, %"class.std::__shared_count" }

@.str.1 = external hidden unnamed_addr constant [20 x i8], align 1
@stdout = external global ptr, align 8
@.str.7 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [9 x i8], align 1
@__const.main.input_ids = external hidden unnamed_addr constant [17 x i32], align 16
@__const.main.positions = external hidden unnamed_addr constant [17 x i32], align 16
@__const.main.shortlist = external hidden unnamed_addr constant [997 x i32], align 16
@__const.main.trueRes = external hidden unnamed_addr constant [15 x i32], align 16
@__const.main.inputNames = external hidden unnamed_addr constant [3 x ptr], align 16
@__const.main.outputNames = external hidden unnamed_addr constant [1 x ptr], align 8
@.str.21 = external hidden unnamed_addr constant [26 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.22 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [25 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

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: nounwind
declare i64 @syscall(i64 noundef, ...) #3

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

declare i32 @fflush(ptr noundef) #4

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) #5

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #7 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 #6 align 2

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

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

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

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

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr noundef %1) #8 personality ptr @__gxx_personality_v0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca %struct.ParseRes, align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::allocator.11", align 1
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca %"class.std::shared_ptr.46", align 8
  %18 = alloca %"class.std::shared_ptr.46", align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca [17 x i32], align 16
  %22 = alloca [17 x i32], align 16
  %23 = alloca [997 x i32], align 16
  %24 = alloca i32, align 4
  %25 = alloca [15 x i32], align 16
  %26 = alloca [3 x ptr], align 16
  %27 = alloca [1 x ptr], align 8
  %28 = alloca %"class.std::map", align 8
  %29 = alloca %struct.TensorDesc, align 4
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::allocator.11", align 1
  %32 = alloca %struct.TensorDesc, align 4
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::allocator.11", align 1
  %35 = alloca %struct.TensorDesc, align 4
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::allocator.11", align 1
  %38 = alloca %"class.std::map", align 8
  %39 = alloca %"class.std::map.97", align 8
  %40 = alloca %"class.std::shared_ptr.8", align 8
  %41 = alloca %class.anon, align 1
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::allocator.11", align 1
  %44 = alloca %"class.std::shared_ptr.8", align 8
  %45 = alloca %class.anon.102, align 1
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::allocator.11", align 1
  %48 = alloca %"class.std::shared_ptr.8", align 8
  %49 = alloca %class.anon.104, align 1
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::allocator.11", align 1
  %52 = alloca %"class.std::map.97", align 8
  %53 = alloca %"class.std::map.106", align 8
  %54 = alloca double, align 8
  %55 = alloca i32, align 4
  %56 = alloca double, align 8
  %57 = alloca double, align 8
  %58 = alloca %class.Tensor, align 8
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::allocator.11", align 1
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i8, align 1
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 152, ptr %6) #11
  call void @_ZN8ParseResC2Ev(ptr noundef nonnull align 8 dereferenceable(152) %6)
  %67 = load i32, ptr %4, align 4, !tbaa !5
  %68 = load ptr, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %8) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %69 unwind label %76

69:                                               ; preds = %2
  invoke void @_Z16parseCommandLineiPPcP8ParseResNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i32 noundef %67, ptr noundef %68, ptr noundef %6, ptr noundef %7)
          to label %70 unwind label %80

70:                                               ; preds = %69
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #11
  call void @_Z19set_cpu_num_threadsi(i32 noundef 2)
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #11
  store ptr @.str.7, ptr %11, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #11
  store ptr @.str.7, ptr %12, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #11
  store ptr @.str.7, ptr %13, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #11
  store ptr @.str.7, ptr %14, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #11
  store i32 1, ptr %15, align 4, !tbaa !5
  %71 = getelementptr inbounds %struct.ParseRes, ptr %6, i32 0, i32 0
  %72 = getelementptr inbounds %"struct.std::pair", ptr %71, i32 0, i32 1
  %73 = load i8, ptr %72, align 8, !tbaa !11, !range !20, !noundef !21
  %74 = trunc i8 %73 to i1
  br i1 %74, label %85, label %75

75:                                               ; preds = %70
  store i32 1, ptr %3, align 4
  store i32 1, ptr %16, align 4
  br label %445

76:                                               ; preds = %2
  %77 = landingpad { ptr, i32 }
          cleanup
  %78 = extractvalue { ptr, i32 } %77, 0
  store ptr %78, ptr %9, align 8
  %79 = extractvalue { ptr, i32 } %77, 1
  store i32 %79, ptr %10, align 4
  br label %84

80:                                               ; preds = %69
  %81 = landingpad { ptr, i32 }
          cleanup
  %82 = extractvalue { ptr, i32 } %81, 0
  store ptr %82, ptr %9, align 8
  %83 = extractvalue { ptr, i32 } %81, 1
  store i32 %83, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #11
  br label %84

84:                                               ; preds = %80, %76
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #11
  br label %457

85:                                               ; preds = %70
  %86 = getelementptr inbounds %struct.ParseRes, ptr %6, i32 0, i32 0
  %87 = getelementptr inbounds %"struct.std::pair", ptr %86, i32 0, i32 1
  %88 = load i8, ptr %87, align 8, !tbaa !11, !range !20, !noundef !21
  %89 = trunc i8 %88 to i1
  br i1 %89, label %90, label %94

90:                                               ; preds = %85
  %91 = getelementptr inbounds %struct.ParseRes, ptr %6, i32 0, i32 0
  %92 = getelementptr inbounds %"struct.std::pair", ptr %91, i32 0, i32 0
  %93 = load ptr, ptr %92, align 8, !tbaa !22
  store ptr %93, ptr %11, align 8, !tbaa !9
  br label %94

94:                                               ; preds = %90, %85
  %95 = getelementptr inbounds %struct.ParseRes, ptr %6, i32 0, i32 2
  %96 = getelementptr inbounds %"struct.std::pair", ptr %95, i32 0, i32 1
  %97 = load i8, ptr %96, align 8, !tbaa !23, !range !20, !noundef !21
  %98 = trunc i8 %97 to i1
  br i1 %98, label %99, label %103

99:                                               ; preds = %94
  %100 = getelementptr inbounds %struct.ParseRes, ptr %6, i32 0, i32 2
  %101 = getelementptr inbounds %"struct.std::pair", ptr %100, i32 0, i32 0
  %102 = load ptr, ptr %101, align 8, !tbaa !24
  store ptr %102, ptr %13, align 8, !tbaa !9
  br label %103

103:                                              ; preds = %99, %94
  %104 = getelementptr inbounds %struct.ParseRes, ptr %6, i32 0, i32 3
  %105 = getelementptr inbounds %"struct.std::pair", ptr %104, i32 0, i32 1
  %106 = load i8, ptr %105, align 8, !tbaa !25, !range !20, !noundef !21
  %107 = trunc i8 %106 to i1
  br i1 %107, label %108, label %112

108:                                              ; preds = %103
  %109 = getelementptr inbounds %struct.ParseRes, ptr %6, i32 0, i32 3
  %110 = getelementptr inbounds %"struct.std::pair", ptr %109, i32 0, i32 0
  %111 = load ptr, ptr %110, align 8, !tbaa !26
  store ptr %111, ptr %14, align 8, !tbaa !9
  br label %112

112:                                              ; preds = %108, %103
  %113 = getelementptr inbounds %struct.ParseRes, ptr %6, i32 0, i32 8
  %114 = getelementptr inbounds %"struct.std::pair.43", ptr %113, i32 0, i32 1
  %115 = load i8, ptr %114, align 4, !tbaa !27, !range !20, !noundef !21
  %116 = trunc i8 %115 to i1
  br i1 %116, label %117, label %121

117:                                              ; preds = %112
  %118 = getelementptr inbounds %struct.ParseRes, ptr %6, i32 0, i32 8
  %119 = getelementptr inbounds %"struct.std::pair.43", ptr %118, i32 0, i32 0
  %120 = load i32, ptr %119, align 8, !tbaa !28
  store i32 %120, ptr %15, align 4, !tbaa !5
  br label %121

121:                                              ; preds = %117, %112
  call void @llvm.lifetime.start.p0(i64 16, ptr %17) #11
  call void @_ZNSt10shared_ptrI3CNNEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %18) #11
  %122 = load ptr, ptr %13, align 8, !tbaa !9
  %123 = load ptr, ptr %11, align 8, !tbaa !9
  %124 = load ptr, ptr %14, align 8, !tbaa !9
  invoke void @_Z14createPipelinePKcS0_S0_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.46") align 8 %18, ptr noundef %122, ptr noundef %123, ptr noundef %124)
          to label %125 unwind label %185

125:                                              ; preds = %121
  %126 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI3CNNEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16) %17, ptr noundef nonnull align 8 dereferenceable(16) %18) #11
  call void @_ZNSt12__shared_ptrI3CNNLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %18) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #11
  store i32 17, ptr %19, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #11
  store i32 997, ptr %20, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 68, ptr %21) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %21, ptr align 16 @__const.main.input_ids, i64 68, i1 false)
  call void @llvm.lifetime.start.p0(i64 68, ptr %22) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %22, ptr align 16 @__const.main.positions, i64 68, i1 false)
  call void @llvm.lifetime.start.p0(i64 3988, ptr %23) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %23, ptr align 16 @__const.main.shortlist, i64 3988, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #11
  store i32 15, ptr %24, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 60, ptr %25) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %25, ptr align 16 @__const.main.trueRes, i64 60, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %26) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %26, ptr align 16 @__const.main.inputNames, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %27, ptr align 8 @__const.main.outputNames, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 48, ptr %28) #11
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %28) #11
  call void @llvm.lifetime.start.p0(i64 92, ptr %29) #11
  %127 = load i32, ptr %19, align 4, !tbaa !5
  invoke void @_Z8tensor2d8DataTypejj(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %29, i32 noundef 2, i32 noundef 1, i32 noundef %127)
          to label %128 unwind label %189

128:                                              ; preds = %125
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #11
  %129 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 0
  %130 = load ptr, ptr %129, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef %130, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %131 unwind label %193

131:                                              ; preds = %128
  %132 = invoke noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %28, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %133 unwind label %197

133:                                              ; preds = %131
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %132, ptr align 4 %29, i64 92, i1 false), !tbaa.struct !29
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #11
  call void @llvm.lifetime.end.p0(i64 92, ptr %29) #11
  call void @llvm.lifetime.start.p0(i64 92, ptr %32) #11
  %134 = load i32, ptr %19, align 4, !tbaa !5
  invoke void @_Z8tensor2d8DataTypejj(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %32, i32 noundef 2, i32 noundef 1, i32 noundef %134)
          to label %135 unwind label %203

135:                                              ; preds = %133
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #11
  %136 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 1
  %137 = load ptr, ptr %136, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef %137, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %138 unwind label %207

138:                                              ; preds = %135
  %139 = invoke noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %28, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %140 unwind label %211

140:                                              ; preds = %138
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %139, ptr align 4 %32, i64 92, i1 false), !tbaa.struct !29
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #11
  call void @llvm.lifetime.end.p0(i64 92, ptr %32) #11
  call void @llvm.lifetime.start.p0(i64 92, ptr %35) #11
  %141 = load i32, ptr %20, align 4, !tbaa !5
  invoke void @_Z8tensor2d8DataTypejj(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %35, i32 noundef 2, i32 noundef 1, i32 noundef %141)
          to label %142 unwind label %217

142:                                              ; preds = %140
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #11
  %143 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 2
  %144 = load ptr, ptr %143, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %37) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef %144, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %145 unwind label %221

145:                                              ; preds = %142
  %146 = invoke noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %28, ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %147 unwind label %225

147:                                              ; preds = %145
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %146, ptr align 4 %35, i64 92, i1 false), !tbaa.struct !29
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #11
  call void @llvm.lifetime.end.p0(i64 92, ptr %35) #11
  %148 = call noundef ptr @_ZNKSt19__shared_ptr_accessI3CNNLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #11
  invoke void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEEC2ERKSD_(ptr noundef nonnull align 8 dereferenceable(48) %38, ptr noundef nonnull align 8 dereferenceable(48) %28)
          to label %149 unwind label %231

149:                                              ; preds = %147
  invoke void @_ZN3CNN7rereadyESt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS6_ESaISt4pairIKS6_S7_EEE(ptr noundef nonnull align 8 dereferenceable(5265) %148, ptr noundef %38)
          to label %150 unwind label %235

150:                                              ; preds = %149
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %38) #11
  call void @llvm.lifetime.start.p0(i64 48, ptr %39) #11
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %39) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %40) #11
  %151 = getelementptr inbounds [17 x i32], ptr %22, i64 0, i64 0
  invoke void @"_ZNSt10shared_ptrIhEC2IhZ4mainE3$_0vEEPT_T0_"(ptr noundef nonnull align 8 dereferenceable(16) %40, ptr noundef %151)
          to label %152 unwind label %239

152:                                              ; preds = %150
  call void @llvm.lifetime.start.p0(i64 32, ptr %42) #11
  %153 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 0
  %154 = load ptr, ptr %153, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef %154, ptr noundef nonnull align 1 dereferenceable(1) %43)
          to label %155 unwind label %243

155:                                              ; preds = %152
  %156 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %39, ptr noundef nonnull align 8 dereferenceable(32) %42)
          to label %157 unwind label %247

157:                                              ; preds = %155
  %158 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIhEaSEOS0_(ptr noundef nonnull align 8 dereferenceable(16) %156, ptr noundef nonnull align 8 dereferenceable(16) %40) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #11
  call void @_ZNSt12__shared_ptrIhLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %40) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %40) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %44) #11
  %159 = getelementptr inbounds [17 x i32], ptr %21, i64 0, i64 0
  invoke void @"_ZNSt10shared_ptrIhEC2IhZ4mainE3$_1vEEPT_T0_"(ptr noundef nonnull align 8 dereferenceable(16) %44, ptr noundef %159)
          to label %160 unwind label %253

160:                                              ; preds = %157
  call void @llvm.lifetime.start.p0(i64 32, ptr %46) #11
  %161 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 1
  %162 = load ptr, ptr %161, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef %162, ptr noundef nonnull align 1 dereferenceable(1) %47)
          to label %163 unwind label %257

163:                                              ; preds = %160
  %164 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %39, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %165 unwind label %261

165:                                              ; preds = %163
  %166 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIhEaSEOS0_(ptr noundef nonnull align 8 dereferenceable(16) %164, ptr noundef nonnull align 8 dereferenceable(16) %44) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #11
  call void @_ZNSt12__shared_ptrIhLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %44) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %44) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %48) #11
  %167 = getelementptr inbounds [997 x i32], ptr %23, i64 0, i64 0
  invoke void @"_ZNSt10shared_ptrIhEC2IhZ4mainE3$_2vEEPT_T0_"(ptr noundef nonnull align 8 dereferenceable(16) %48, ptr noundef %167)
          to label %168 unwind label %267

168:                                              ; preds = %165
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #11
  %169 = getelementptr inbounds [3 x ptr], ptr %26, i64 0, i64 2
  %170 = load ptr, ptr %169, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef %170, ptr noundef nonnull align 1 dereferenceable(1) %51)
          to label %171 unwind label %271

171:                                              ; preds = %168
  %172 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %39, ptr noundef nonnull align 8 dereferenceable(32) %50)
          to label %173 unwind label %275

173:                                              ; preds = %171
  %174 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIhEaSEOS0_(ptr noundef nonnull align 8 dereferenceable(16) %172, ptr noundef nonnull align 8 dereferenceable(16) %48) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #11
  call void @_ZNSt12__shared_ptrIhLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %48) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %48) #11
  %175 = call noundef ptr @_ZNKSt19__shared_ptr_accessI3CNNLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #11
  invoke void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEEC2ERKSE_(ptr noundef nonnull align 8 dereferenceable(48) %52, ptr noundef nonnull align 8 dereferenceable(48) %39)
          to label %176 unwind label %281

176:                                              ; preds = %173
  call void @llvm.memset.p0.i64(ptr align 8 %53, i8 0, i64 48, i1 false)
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPfSt4lessIS5_ESaISt4pairIKS5_S6_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %53) #11
  invoke void @_ZN3CNN19set_input_by_assignESt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS6_ESaISt4pairIKS6_S8_EEES0_IS6_PfSA_SaISB_ISC_SG_EEE(ptr noundef nonnull align 8 dereferenceable(5265) %175, ptr noundef %52, ptr noundef %53)
          to label %177 unwind label %285

177:                                              ; preds = %176
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPfSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %53) #11
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %52) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #11
  %178 = invoke noundef double @_Z10ut_time_msv()
          to label %179 unwind label %289

179:                                              ; preds = %177
  store double %178, ptr %54, align 8, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #11
  store i32 0, ptr %55, align 4, !tbaa !5
  br label %180

180:                                              ; preds = %299, %179
  %181 = load i32, ptr %55, align 4, !tbaa !5
  %182 = load i32, ptr %15, align 4, !tbaa !5
  %183 = icmp slt i32 %181, %182
  br i1 %183, label %293, label %184

184:                                              ; preds = %180
  store i32 2, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #11
  br label %306

185:                                              ; preds = %121
  %186 = landingpad { ptr, i32 }
          cleanup
  %187 = extractvalue { ptr, i32 } %186, 0
  store ptr %187, ptr %9, align 8
  %188 = extractvalue { ptr, i32 } %186, 1
  store i32 %188, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %18) #11
  br label %456

189:                                              ; preds = %125
  %190 = landingpad { ptr, i32 }
          cleanup
  %191 = extractvalue { ptr, i32 } %190, 0
  store ptr %191, ptr %9, align 8
  %192 = extractvalue { ptr, i32 } %190, 1
  store i32 %192, ptr %10, align 4
  br label %202

193:                                              ; preds = %128
  %194 = landingpad { ptr, i32 }
          cleanup
  %195 = extractvalue { ptr, i32 } %194, 0
  store ptr %195, ptr %9, align 8
  %196 = extractvalue { ptr, i32 } %194, 1
  store i32 %196, ptr %10, align 4
  br label %201

197:                                              ; preds = %131
  %198 = landingpad { ptr, i32 }
          cleanup
  %199 = extractvalue { ptr, i32 } %198, 0
  store ptr %199, ptr %9, align 8
  %200 = extractvalue { ptr, i32 } %198, 1
  store i32 %200, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #11
  br label %201

201:                                              ; preds = %197, %193
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #11
  br label %202

202:                                              ; preds = %201, %189
  call void @llvm.lifetime.end.p0(i64 92, ptr %29) #11
  br label %455

203:                                              ; preds = %133
  %204 = landingpad { ptr, i32 }
          cleanup
  %205 = extractvalue { ptr, i32 } %204, 0
  store ptr %205, ptr %9, align 8
  %206 = extractvalue { ptr, i32 } %204, 1
  store i32 %206, ptr %10, align 4
  br label %216

207:                                              ; preds = %135
  %208 = landingpad { ptr, i32 }
          cleanup
  %209 = extractvalue { ptr, i32 } %208, 0
  store ptr %209, ptr %9, align 8
  %210 = extractvalue { ptr, i32 } %208, 1
  store i32 %210, ptr %10, align 4
  br label %215

211:                                              ; preds = %138
  %212 = landingpad { ptr, i32 }
          cleanup
  %213 = extractvalue { ptr, i32 } %212, 0
  store ptr %213, ptr %9, align 8
  %214 = extractvalue { ptr, i32 } %212, 1
  store i32 %214, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #11
  br label %215

215:                                              ; preds = %211, %207
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #11
  br label %216

216:                                              ; preds = %215, %203
  call void @llvm.lifetime.end.p0(i64 92, ptr %32) #11
  br label %455

217:                                              ; preds = %140
  %218 = landingpad { ptr, i32 }
          cleanup
  %219 = extractvalue { ptr, i32 } %218, 0
  store ptr %219, ptr %9, align 8
  %220 = extractvalue { ptr, i32 } %218, 1
  store i32 %220, ptr %10, align 4
  br label %230

221:                                              ; preds = %142
  %222 = landingpad { ptr, i32 }
          cleanup
  %223 = extractvalue { ptr, i32 } %222, 0
  store ptr %223, ptr %9, align 8
  %224 = extractvalue { ptr, i32 } %222, 1
  store i32 %224, ptr %10, align 4
  br label %229

225:                                              ; preds = %145
  %226 = landingpad { ptr, i32 }
          cleanup
  %227 = extractvalue { ptr, i32 } %226, 0
  store ptr %227, ptr %9, align 8
  %228 = extractvalue { ptr, i32 } %226, 1
  store i32 %228, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #11
  br label %229

229:                                              ; preds = %225, %221
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #11
  br label %230

230:                                              ; preds = %229, %217
  call void @llvm.lifetime.end.p0(i64 92, ptr %35) #11
  br label %455

231:                                              ; preds = %147
  %232 = landingpad { ptr, i32 }
          cleanup
  %233 = extractvalue { ptr, i32 } %232, 0
  store ptr %233, ptr %9, align 8
  %234 = extractvalue { ptr, i32 } %232, 1
  store i32 %234, ptr %10, align 4
  br label %455

235:                                              ; preds = %149
  %236 = landingpad { ptr, i32 }
          cleanup
  %237 = extractvalue { ptr, i32 } %236, 0
  store ptr %237, ptr %9, align 8
  %238 = extractvalue { ptr, i32 } %236, 1
  store i32 %238, ptr %10, align 4
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %38) #11
  br label %455

239:                                              ; preds = %150
  %240 = landingpad { ptr, i32 }
          cleanup
  %241 = extractvalue { ptr, i32 } %240, 0
  store ptr %241, ptr %9, align 8
  %242 = extractvalue { ptr, i32 } %240, 1
  store i32 %242, ptr %10, align 4
  br label %252

243:                                              ; preds = %152
  %244 = landingpad { ptr, i32 }
          cleanup
  %245 = extractvalue { ptr, i32 } %244, 0
  store ptr %245, ptr %9, align 8
  %246 = extractvalue { ptr, i32 } %244, 1
  store i32 %246, ptr %10, align 4
  br label %251

247:                                              ; preds = %155
  %248 = landingpad { ptr, i32 }
          cleanup
  %249 = extractvalue { ptr, i32 } %248, 0
  store ptr %249, ptr %9, align 8
  %250 = extractvalue { ptr, i32 } %248, 1
  store i32 %250, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #11
  br label %251

251:                                              ; preds = %247, %243
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #11
  call void @_ZNSt12__shared_ptrIhLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %40) #11
  br label %252

252:                                              ; preds = %251, %239
  call void @llvm.lifetime.end.p0(i64 16, ptr %40) #11
  br label %454

253:                                              ; preds = %157
  %254 = landingpad { ptr, i32 }
          cleanup
  %255 = extractvalue { ptr, i32 } %254, 0
  store ptr %255, ptr %9, align 8
  %256 = extractvalue { ptr, i32 } %254, 1
  store i32 %256, ptr %10, align 4
  br label %266

257:                                              ; preds = %160
  %258 = landingpad { ptr, i32 }
          cleanup
  %259 = extractvalue { ptr, i32 } %258, 0
  store ptr %259, ptr %9, align 8
  %260 = extractvalue { ptr, i32 } %258, 1
  store i32 %260, ptr %10, align 4
  br label %265

261:                                              ; preds = %163
  %262 = landingpad { ptr, i32 }
          cleanup
  %263 = extractvalue { ptr, i32 } %262, 0
  store ptr %263, ptr %9, align 8
  %264 = extractvalue { ptr, i32 } %262, 1
  store i32 %264, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #11
  br label %265

265:                                              ; preds = %261, %257
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #11
  call void @_ZNSt12__shared_ptrIhLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %44) #11
  br label %266

266:                                              ; preds = %265, %253
  call void @llvm.lifetime.end.p0(i64 16, ptr %44) #11
  br label %454

267:                                              ; preds = %165
  %268 = landingpad { ptr, i32 }
          cleanup
  %269 = extractvalue { ptr, i32 } %268, 0
  store ptr %269, ptr %9, align 8
  %270 = extractvalue { ptr, i32 } %268, 1
  store i32 %270, ptr %10, align 4
  br label %280

271:                                              ; preds = %168
  %272 = landingpad { ptr, i32 }
          cleanup
  %273 = extractvalue { ptr, i32 } %272, 0
  store ptr %273, ptr %9, align 8
  %274 = extractvalue { ptr, i32 } %272, 1
  store i32 %274, ptr %10, align 4
  br label %279

275:                                              ; preds = %171
  %276 = landingpad { ptr, i32 }
          cleanup
  %277 = extractvalue { ptr, i32 } %276, 0
  store ptr %277, ptr %9, align 8
  %278 = extractvalue { ptr, i32 } %276, 1
  store i32 %278, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #11
  br label %279

279:                                              ; preds = %275, %271
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #11
  call void @_ZNSt12__shared_ptrIhLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %48) #11
  br label %280

280:                                              ; preds = %279, %267
  call void @llvm.lifetime.end.p0(i64 16, ptr %48) #11
  br label %454

281:                                              ; preds = %173
  %282 = landingpad { ptr, i32 }
          cleanup
  %283 = extractvalue { ptr, i32 } %282, 0
  store ptr %283, ptr %9, align 8
  %284 = extractvalue { ptr, i32 } %282, 1
  store i32 %284, ptr %10, align 4
  br label %454

285:                                              ; preds = %176
  %286 = landingpad { ptr, i32 }
          cleanup
  %287 = extractvalue { ptr, i32 } %286, 0
  store ptr %287, ptr %9, align 8
  %288 = extractvalue { ptr, i32 } %286, 1
  store i32 %288, ptr %10, align 4
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPfSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %53) #11
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %52) #11
  br label %454

289:                                              ; preds = %177
  %290 = landingpad { ptr, i32 }
          cleanup
  %291 = extractvalue { ptr, i32 } %290, 0
  store ptr %291, ptr %9, align 8
  %292 = extractvalue { ptr, i32 } %290, 1
  store i32 %292, ptr %10, align 4
  br label %453

293:                                              ; preds = %180
  %294 = call noundef ptr @_ZNKSt19__shared_ptr_accessI3CNNLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #11
  %295 = load ptr, ptr %294, align 8, !tbaa !37
  %296 = getelementptr inbounds ptr, ptr %295, i64 3
  %297 = load ptr, ptr %296, align 8
  invoke void %297(ptr noundef nonnull align 8 dereferenceable(5265) %294)
          to label %298 unwind label %302

298:                                              ; preds = %293
  br label %299

299:                                              ; preds = %298
  %300 = load i32, ptr %55, align 4, !tbaa !5
  %301 = add nsw i32 %300, 1
  store i32 %301, ptr %55, align 4, !tbaa !5
  br label %180, !llvm.loop !39

302:                                              ; preds = %293
  %303 = landingpad { ptr, i32 }
          cleanup
  %304 = extractvalue { ptr, i32 } %303, 0
  store ptr %304, ptr %9, align 8
  %305 = extractvalue { ptr, i32 } %303, 1
  store i32 %305, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #11
  br label %453

306:                                              ; preds = %184
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #11
  %307 = invoke noundef double @_Z10ut_time_msv()
          to label %308 unwind label %347

308:                                              ; preds = %306
  store double %307, ptr %56, align 8, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #11
  %309 = load double, ptr %56, align 8, !tbaa !35
  %310 = load double, ptr %54, align 8, !tbaa !35
  %311 = fsub double %309, %310
  store double %311, ptr %57, align 8, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #11
  %312 = call noundef ptr @_ZNKSt19__shared_ptr_accessI3CNNLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #11
  %313 = getelementptr inbounds [1 x ptr], ptr %27, i64 0, i64 0
  %314 = load ptr, ptr %313, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %60) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef %314, ptr noundef nonnull align 1 dereferenceable(1) %60)
          to label %315 unwind label %351

315:                                              ; preds = %308
  invoke void @_ZN3CNN18get_tensor_by_nameENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%class.Tensor) align 8 %58, ptr noundef nonnull align 8 dereferenceable(5265) %312, ptr noundef %59)
          to label %316 unwind label %355

316:                                              ; preds = %315
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #11
  %317 = invoke noundef i32 @_ZN6Tensor6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %58)
          to label %318 unwind label %360

318:                                              ; preds = %316
  store i32 %317, ptr %61, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #11
  store i32 0, ptr %62, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #11
  store i8 1, ptr %63, align 1, !tbaa !41
  br label %319

319:                                              ; preds = %373, %318
  %320 = load i32, ptr %62, align 4, !tbaa !5
  %321 = load i32, ptr %24, align 4, !tbaa !5
  %322 = icmp ult i32 %320, %321
  br i1 %322, label %323, label %376

323:                                              ; preds = %319
  %324 = load i32, ptr %62, align 4, !tbaa !5
  %325 = invoke noundef float @_ZN6Tensor7elementEj(ptr noundef nonnull align 8 dereferenceable(32) %58, i32 noundef %324)
          to label %326 unwind label %364

326:                                              ; preds = %323
  %327 = load i32, ptr %62, align 4, !tbaa !5
  %328 = zext i32 %327 to i64
  %329 = getelementptr inbounds [15 x i32], ptr %25, i64 0, i64 %328
  %330 = load i32, ptr %329, align 4, !tbaa !5
  %331 = sitofp i32 %330 to float
  %332 = fcmp une float %325, %331
  br i1 %332, label %333, label %372

333:                                              ; preds = %326
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #11
  %334 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %335 = trunc i64 %334 to i32
  store i32 %335, ptr %64, align 4, !tbaa !5
  %336 = load i32, ptr %64, align 4, !tbaa !5
  %337 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.1, i32 noundef %336)
          to label %338 unwind label %368

338:                                              ; preds = %333
  %339 = load ptr, ptr @stdout, align 8, !tbaa !9
  %340 = invoke i32 @fflush(ptr noundef %339)
          to label %341 unwind label %368

341:                                              ; preds = %338
  %342 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.21)
          to label %343 unwind label %368

343:                                              ; preds = %341
  %344 = load ptr, ptr @stdout, align 8, !tbaa !9
  %345 = invoke i32 @fflush(ptr noundef %344)
          to label %346 unwind label %368

346:                                              ; preds = %343
  call void @exit(i32 noundef 1) #12
  unreachable

347:                                              ; preds = %306
  %348 = landingpad { ptr, i32 }
          cleanup
  %349 = extractvalue { ptr, i32 } %348, 0
  store ptr %349, ptr %9, align 8
  %350 = extractvalue { ptr, i32 } %348, 1
  store i32 %350, ptr %10, align 4
  br label %452

351:                                              ; preds = %308
  %352 = landingpad { ptr, i32 }
          cleanup
  %353 = extractvalue { ptr, i32 } %352, 0
  store ptr %353, ptr %9, align 8
  %354 = extractvalue { ptr, i32 } %352, 1
  store i32 %354, ptr %10, align 4
  br label %359

355:                                              ; preds = %315
  %356 = landingpad { ptr, i32 }
          cleanup
  %357 = extractvalue { ptr, i32 } %356, 0
  store ptr %357, ptr %9, align 8
  %358 = extractvalue { ptr, i32 } %356, 1
  store i32 %358, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #11
  br label %359

359:                                              ; preds = %355, %351
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #11
  br label %451

360:                                              ; preds = %316
  %361 = landingpad { ptr, i32 }
          cleanup
  %362 = extractvalue { ptr, i32 } %361, 0
  store ptr %362, ptr %9, align 8
  %363 = extractvalue { ptr, i32 } %361, 1
  store i32 %363, ptr %10, align 4
  br label %450

364:                                              ; preds = %441, %434, %413, %411, %381, %323
  %365 = landingpad { ptr, i32 }
          cleanup
  %366 = extractvalue { ptr, i32 } %365, 0
  store ptr %366, ptr %9, align 8
  %367 = extractvalue { ptr, i32 } %365, 1
  store i32 %367, ptr %10, align 4
  br label %449

368:                                              ; preds = %343, %341, %338, %333
  %369 = landingpad { ptr, i32 }
          cleanup
  %370 = extractvalue { ptr, i32 } %369, 0
  store ptr %370, ptr %9, align 8
  %371 = extractvalue { ptr, i32 } %369, 1
  store i32 %371, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #11
  br label %449

372:                                              ; preds = %326
  br label %373

373:                                              ; preds = %372
  %374 = load i32, ptr %62, align 4, !tbaa !5
  %375 = add i32 %374, 1
  store i32 %375, ptr %62, align 4, !tbaa !5
  br label %319, !llvm.loop !42

376:                                              ; preds = %319
  br label %377

377:                                              ; preds = %405, %376
  %378 = load i32, ptr %62, align 4, !tbaa !5
  %379 = load i32, ptr %61, align 4, !tbaa !5
  %380 = icmp ult i32 %378, %379
  br i1 %380, label %381, label %408

381:                                              ; preds = %377
  %382 = load i32, ptr %62, align 4, !tbaa !5
  %383 = invoke noundef float @_ZN6Tensor7elementEj(ptr noundef nonnull align 8 dereferenceable(32) %58, i32 noundef %382)
          to label %384 unwind label %364

384:                                              ; preds = %381
  %385 = fcmp une float %383, 0.000000e+00
  br i1 %385, label %386, label %404

386:                                              ; preds = %384
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #11
  %387 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %388 = trunc i64 %387 to i32
  store i32 %388, ptr %65, align 4, !tbaa !5
  %389 = load i32, ptr %65, align 4, !tbaa !5
  %390 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.1, i32 noundef %389)
          to label %391 unwind label %400

391:                                              ; preds = %386
  %392 = load ptr, ptr @stdout, align 8, !tbaa !9
  %393 = invoke i32 @fflush(ptr noundef %392)
          to label %394 unwind label %400

394:                                              ; preds = %391
  %395 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.21)
          to label %396 unwind label %400

396:                                              ; preds = %394
  %397 = load ptr, ptr @stdout, align 8, !tbaa !9
  %398 = invoke i32 @fflush(ptr noundef %397)
          to label %399 unwind label %400

399:                                              ; preds = %396
  call void @exit(i32 noundef 1) #12
  unreachable

400:                                              ; preds = %396, %394, %391, %386
  %401 = landingpad { ptr, i32 }
          cleanup
  %402 = extractvalue { ptr, i32 } %401, 0
  store ptr %402, ptr %9, align 8
  %403 = extractvalue { ptr, i32 } %401, 1
  store i32 %403, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #11
  br label %449

404:                                              ; preds = %384
  br label %405

405:                                              ; preds = %404
  %406 = load i32, ptr %62, align 4, !tbaa !5
  %407 = add i32 %406, 1
  store i32 %407, ptr %62, align 4, !tbaa !5
  br label %377, !llvm.loop !43

408:                                              ; preds = %377
  %409 = load i8, ptr %63, align 1, !tbaa !41, !range !20, !noundef !21
  %410 = trunc i8 %409 to i1
  br i1 %410, label %411, label %416

411:                                              ; preds = %408
  %412 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.22)
          to label %413 unwind label %364

413:                                              ; preds = %411
  %414 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %412, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %415 unwind label %364

415:                                              ; preds = %413
  br label %434

416:                                              ; preds = %408
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #11
  %417 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %418 = trunc i64 %417 to i32
  store i32 %418, ptr %66, align 4, !tbaa !5
  %419 = load i32, ptr %66, align 4, !tbaa !5
  %420 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.1, i32 noundef %419)
          to label %421 unwind label %430

421:                                              ; preds = %416
  %422 = load ptr, ptr @stdout, align 8, !tbaa !9
  %423 = invoke i32 @fflush(ptr noundef %422)
          to label %424 unwind label %430

424:                                              ; preds = %421
  %425 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.23)
          to label %426 unwind label %430

426:                                              ; preds = %424
  %427 = load ptr, ptr @stdout, align 8, !tbaa !9
  %428 = invoke i32 @fflush(ptr noundef %427)
          to label %429 unwind label %430

429:                                              ; preds = %426
  call void @exit(i32 noundef 1) #12
  unreachable

430:                                              ; preds = %426, %424, %421, %416
  %431 = landingpad { ptr, i32 }
          cleanup
  %432 = extractvalue { ptr, i32 } %431, 0
  store ptr %432, ptr %9, align 8
  %433 = extractvalue { ptr, i32 } %431, 1
  store i32 %433, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #11
  br label %449

434:                                              ; preds = %415
  %435 = load double, ptr %57, align 8, !tbaa !35
  %436 = fmul double 1.000000e+00, %435
  %437 = load i32, ptr %15, align 4, !tbaa !5
  %438 = sitofp i32 %437 to double
  %439 = fdiv double %436, %438
  %440 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.24, double noundef %439)
          to label %441 unwind label %364

441:                                              ; preds = %434
  %442 = load ptr, ptr @stdout, align 8, !tbaa !9
  %443 = invoke i32 @fflush(ptr noundef %442)
          to label %444 unwind label %364

444:                                              ; preds = %441
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #11
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %39) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %39) #11
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %28) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %28) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #11
  call void @llvm.lifetime.end.p0(i64 60, ptr %25) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #11
  call void @llvm.lifetime.end.p0(i64 3988, ptr %23) #11
  call void @llvm.lifetime.end.p0(i64 68, ptr %22) #11
  call void @llvm.lifetime.end.p0(i64 68, ptr %21) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #11
  call void @_ZNSt12__shared_ptrI3CNNLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #11
  store i32 0, ptr %16, align 4
  br label %445

445:                                              ; preds = %444, %75
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #11
  call void @llvm.lifetime.end.p0(i64 152, ptr %6) #11
  %446 = load i32, ptr %16, align 4
  switch i32 %446, label %463 [
    i32 0, label %447
    i32 1, label %447
  ]

447:                                              ; preds = %445, %445
  %448 = load i32, ptr %3, align 4
  ret i32 %448

449:                                              ; preds = %430, %400, %368, %364
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #11
  br label %450

450:                                              ; preds = %449, %360
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #11
  br label %451

451:                                              ; preds = %450, %359
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #11
  br label %452

452:                                              ; preds = %451, %347
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #11
  br label %453

453:                                              ; preds = %452, %302, %289
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #11
  br label %454

454:                                              ; preds = %453, %285, %281, %280, %266, %252
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %39) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %39) #11
  br label %455

455:                                              ; preds = %454, %235, %231, %230, %216, %202
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %28) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr %28) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #11
  call void @llvm.lifetime.end.p0(i64 60, ptr %25) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #11
  call void @llvm.lifetime.end.p0(i64 3988, ptr %23) #11
  call void @llvm.lifetime.end.p0(i64 68, ptr %22) #11
  call void @llvm.lifetime.end.p0(i64 68, ptr %21) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #11
  br label %456

456:                                              ; preds = %455, %185
  call void @_ZNSt12__shared_ptrI3CNNLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #11
  br label %457

457:                                              ; preds = %456, %84
  call void @llvm.lifetime.end.p0(i64 152, ptr %6) #11
  br label %458

458:                                              ; preds = %457
  %459 = load ptr, ptr %9, align 8
  %460 = load i32, ptr %10, align 4
  %461 = insertvalue { ptr, i32 } poison, ptr %459, 0
  %462 = insertvalue { ptr, i32 } %461, i32 %460, 1
  resume { ptr, i32 } %462

463:                                              ; preds = %445
  unreachable
}

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN8ParseResC2Ev(ptr noundef nonnull align 8 dereferenceable(152)) unnamed_addr #9 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z16parseCommandLineiPPcP8ParseResNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i32 noundef, ptr noundef, ptr noundef, ptr noundef) #9

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_Z19set_cpu_num_threadsi(i32 noundef) #2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z14createPipelinePKcS0_S0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.46") align 8, ptr noundef, ptr noundef, ptr noundef) #9

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z8tensor2d8DataTypejj(ptr dead_on_unwind noalias writable sret(%struct.TensorDesc) align 4, i32 noundef, i32 noundef, i32 noundef) #9

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

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

declare void @_ZN3CNN7rereadyESt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS6_ESaISt4pairIKS6_S7_EEE(ptr noundef nonnull align 8 dereferenceable(5265), ptr noundef) #4

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZNSt10shared_ptrIhEC2IhZ4mainE3$_0vEEPT_T0_"(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) unnamed_addr #6 align 2

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZNSt10shared_ptrIhEC2IhZ4mainE3$_1vEEPT_T0_"(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZNSt10shared_ptrIhEC2IhZ4mainE3$_2vEEPT_T0_"(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) unnamed_addr #6 align 2

declare void @_ZN3CNN19set_input_by_assignESt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS6_ESaISt4pairIKS6_S8_EEES0_IS6_PfSA_SaISB_ISC_SG_EEE(ptr noundef nonnull align 8 dereferenceable(5265), ptr noundef, ptr noundef) #4

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #10

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

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

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

declare noundef double @_Z10ut_time_msv() #4

declare void @_ZN3CNN18get_tensor_by_nameENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%class.Tensor) align 8, ptr noundef nonnull align 8 dereferenceable(5265), ptr noundef) #4

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #9

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { 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 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { mustprogress norecurse uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { 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 #10 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #11 = { nounwind }
attributes #12 = { noreturn 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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !14, i64 8}
!12 = !{!"_ZTS8ParseRes", !13, i64 0, !13, i64 16, !13, i64 32, !13, i64 48, !15, i64 64, !17, i64 72, !19, i64 80, !19, i64 88, !19, i64 96, !13, i64 104, !13, i64 120, !13, i64 136}
!13 = !{!"_ZTSSt4pairIPcbE", !10, i64 0, !14, i64 8}
!14 = !{!"bool", !7, i64 0}
!15 = !{!"_ZTSSt4pairI11ImageFormatbE", !16, i64 0, !14, i64 4}
!16 = !{!"_ZTS11ImageFormat", !7, i64 0}
!17 = !{!"_ZTSSt4pairIfbE", !18, i64 0, !14, i64 4}
!18 = !{!"float", !7, i64 0}
!19 = !{!"_ZTSSt4pairIibE", !6, i64 0, !14, i64 4}
!20 = !{i8 0, i8 2}
!21 = !{}
!22 = !{!12, !10, i64 0}
!23 = !{!12, !14, i64 40}
!24 = !{!12, !10, i64 32}
!25 = !{!12, !14, i64 56}
!26 = !{!12, !10, i64 48}
!27 = !{!12, !14, i64 100}
!28 = !{!12, !6, i64 96}
!29 = !{i64 0, i64 4, !30, i64 4, i64 4, !32, i64 8, i64 4, !5, i64 12, i64 80, !34}
!30 = !{!31, !31, i64 0}
!31 = !{!"_ZTS8DataType", !7, i64 0}
!32 = !{!33, !33, i64 0}
!33 = !{!"_ZTS10DataFormat", !7, i64 0}
!34 = !{!7, !7, i64 0}
!35 = !{!36, !36, i64 0}
!36 = !{!"double", !7, i64 0}
!37 = !{!38, !38, i64 0}
!38 = !{!"vtable pointer", !8, i64 0}
!39 = distinct !{!39, !40}
!40 = !{!"llvm.loop.mustprogress"}
!41 = !{!14, !14, i64 0}
!42 = distinct !{!42, !40}
!43 = distinct !{!43, !40}


; 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_ostream" = type { ptr, %"class.std::basic_ios" }
%"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::locale" = type { ptr }
%struct.ParseRes = type { %"struct.std::pair", %"struct.std::pair", %"struct.std::pair", %"struct.std::pair", %"struct.std::pair.37", %"struct.std::pair.40", %"struct.std::pair.43", %"struct.std::pair.43", %"struct.std::pair.43", %"struct.std::pair", %"struct.std::pair", %"struct.std::pair" }
%"struct.std::pair.37" = type <{ i32, i8, [3 x i8] }>
%"struct.std::pair.40" = type <{ float, i8, [3 x i8] }>
%"struct.std::pair.43" = type <{ i32, i8, [3 x i8] }>
%"struct.std::pair" = type <{ ptr, i8, [7 x i8] }>
%"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::allocator.11" = type { i8 }
%"class.std::shared_ptr.46" = type { %"class.std::__shared_ptr.47" }
%"class.std::__shared_ptr.47" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { 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>, TensorDesc>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, TensorDesc>>, 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>, TensorDesc>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, TensorDesc>>, 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.TensorDesc = type { i32, i32, i32, [20 x i32] }
%"class.std::map.97" = type { %"class.std::_Rb_tree.98" }
%"class.std::_Rb_tree.98" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<unsigned char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<unsigned char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<unsigned char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::shared_ptr<unsigned char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::shared_ptr.8" = type { %"class.std::__shared_ptr.9" }
%"class.std::__shared_ptr.9" = type { ptr, %"class.std::__shared_count" }
%"class.std::map.106" = type { %"class.std::_Rb_tree.107" }
%"class.std::_Rb_tree.107" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, float *>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, float *>>, 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>, float *>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, float *>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%class.Tensor = type { %"class.std::shared_ptr", %"class.std::shared_ptr.5" }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.5" = type { %"class.std::__shared_ptr.6" }
%"class.std::__shared_ptr.6" = type { ptr, %"class.std::__shared_count" }

@.str.1 = external hidden unnamed_addr constant [20 x i8], align 1
@stdout = external local_unnamed_addr global ptr, align 8
@.str.7 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [9 x i8], align 1
@__const.main.input_ids = external hidden unnamed_addr constant [17 x i32], align 16
@__const.main.positions = external hidden unnamed_addr constant [17 x i32], align 16
@__const.main.shortlist = external hidden unnamed_addr constant [997 x i32], align 16
@__const.main.trueRes = external hidden unnamed_addr constant [15 x i32], align 16
@__const.main.inputNames = external hidden unnamed_addr constant [3 x ptr], align 16
@__const.main.outputNames = external hidden unnamed_addr constant [1 x ptr], align 8
@.str.21 = external hidden unnamed_addr constant [26 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.22 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [25 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

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: nounwind
declare i64 @syscall(i64 noundef, ...) local_unnamed_addr #3

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

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #4

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN6Tensor6lengthEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #7 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 #6 align 2

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

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

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

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

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef range(i32 0, 2) i32 @main(i32 noundef %0, ptr noundef %1) local_unnamed_addr #8 personality ptr @__gxx_personality_v0 {
  %3 = alloca %struct.ParseRes, align 8
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.std::allocator.11", align 1
  %6 = alloca %"class.std::shared_ptr.46", align 8
  %7 = alloca %"class.std::shared_ptr.46", align 8
  %8 = alloca [17 x i32], align 16
  %9 = alloca [17 x i32], align 16
  %10 = alloca [997 x i32], align 16
  %11 = alloca %"class.std::map", align 8
  %12 = alloca %struct.TensorDesc, align 4
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::allocator.11", align 1
  %15 = alloca %struct.TensorDesc, align 4
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::allocator.11", align 1
  %18 = alloca %struct.TensorDesc, align 4
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::allocator.11", align 1
  %21 = alloca %"class.std::map", align 8
  %22 = alloca %"class.std::map.97", align 8
  %23 = alloca %"class.std::shared_ptr.8", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::allocator.11", align 1
  %26 = alloca %"class.std::shared_ptr.8", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::allocator.11", align 1
  %29 = alloca %"class.std::shared_ptr.8", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::allocator.11", align 1
  %32 = alloca %"class.std::map.97", align 8
  %33 = alloca %"class.std::map.106", align 8
  %34 = alloca %class.Tensor, align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::allocator.11", align 1
  call void @llvm.lifetime.start.p0(i64 152, ptr nonnull %3) #12
  call void @_ZN8ParseResC2Ev(ptr noundef nonnull align 8 dereferenceable(152) %3)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %5)
          to label %37 unwind label %42

37:                                               ; preds = %2
  invoke void @_Z16parseCommandLineiPPcP8ParseResNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i32 noundef %0, ptr noundef %1, ptr noundef nonnull %3, ptr noundef nonnull %4)
          to label %38 unwind label %44

38:                                               ; preds = %37
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #12
  call void @_Z19set_cpu_num_threadsi(i32 noundef 2)
  %39 = getelementptr inbounds i8, ptr %3, i64 8
  %40 = load i8, ptr %39, align 8, !tbaa !5, !range !18, !noundef !19
  %41 = trunc nuw i8 %40 to i1
  br i1 %41, label %47, label %293

42:                                               ; preds = %2
  %43 = landingpad { ptr, i32 }
          cleanup
  br label %46

44:                                               ; preds = %37
  %45 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #12
  br label %46

46:                                               ; preds = %44, %42
  %.pn = phi { ptr, i32 } [ %45, %44 ], [ %43, %42 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #12
  br label %298

47:                                               ; preds = %38
  %48 = load ptr, ptr %3, align 8, !tbaa !20
  %49 = getelementptr inbounds i8, ptr %3, i64 40
  %50 = load i8, ptr %49, align 8, !tbaa !21, !range !18, !noundef !19
  %51 = trunc nuw i8 %50 to i1
  %52 = getelementptr inbounds i8, ptr %3, i64 32
  %53 = load ptr, ptr %52, align 8
  %.060 = select i1 %51, ptr %53, ptr @.str.7
  %54 = getelementptr inbounds i8, ptr %3, i64 56
  %55 = load i8, ptr %54, align 8, !tbaa !22, !range !18, !noundef !19
  %56 = trunc nuw i8 %55 to i1
  %57 = getelementptr inbounds i8, ptr %3, i64 48
  %58 = load ptr, ptr %57, align 8
  %.061 = select i1 %56, ptr %58, ptr @.str.7
  %59 = getelementptr inbounds i8, ptr %3, i64 100
  %60 = load i8, ptr %59, align 4, !tbaa !23, !range !18, !noundef !19
  %61 = trunc nuw i8 %60 to i1
  %62 = getelementptr inbounds i8, ptr %3, i64 96
  %63 = load i32, ptr %62, align 8
  %.062 = select i1 %61, i32 %63, i32 1
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6) #12
  call void @_ZNSt10shared_ptrI3CNNEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7) #12
  invoke void @_Z14createPipelinePKcS0_S0_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.46") align 8 %7, ptr noundef %.060, ptr noundef %48, ptr noundef %.061)
          to label %64 unwind label %102

64:                                               ; preds = %47
  %65 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI3CNNEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(16) %7) #12
  call void @_ZNSt12__shared_ptrI3CNNLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %7) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #12
  call void @llvm.lifetime.start.p0(i64 68, ptr nonnull %8) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(68) %8, ptr noundef nonnull align 16 dereferenceable(68) @__const.main.input_ids, i64 68, i1 false)
  call void @llvm.lifetime.start.p0(i64 68, ptr nonnull %9) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(68) %9, ptr noundef nonnull align 16 dereferenceable(68) @__const.main.positions, i64 68, i1 false)
  call void @llvm.lifetime.start.p0(i64 3988, ptr nonnull %10) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(3988) %10, ptr noundef nonnull align 16 dereferenceable(3988) @__const.main.shortlist, i64 3988, i1 false)
  %.sroa.016.0.copyload = load ptr, ptr @__const.main.inputNames, align 16
  %.sroa.6.0.copyload = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.inputNames, i64 8), align 8
  %.sroa.8.0.copyload = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.inputNames, i64 16), align 16
  %.sroa.0.0.copyload = load ptr, ptr @__const.main.outputNames, align 8
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %11) #12
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %11) #12
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %12) #12
  invoke void @_Z8tensor2d8DataTypejj(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %12, i32 noundef 2, i32 noundef 1, i32 noundef 17)
          to label %66 unwind label %104

66:                                               ; preds = %64
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef %.sroa.016.0.copyload, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %67 unwind label %106

67:                                               ; preds = %66
  %68 = invoke noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %69 unwind label %108

69:                                               ; preds = %67
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(92) %68, ptr noundef nonnull align 4 dereferenceable(92) %12, i64 92, i1 false), !tbaa.struct !24
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #12
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %12) #12
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %15) #12
  invoke void @_Z8tensor2d8DataTypejj(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %15, i32 noundef 2, i32 noundef 1, i32 noundef 17)
          to label %70 unwind label %112

70:                                               ; preds = %69
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef %.sroa.6.0.copyload, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %71 unwind label %114

71:                                               ; preds = %70
  %72 = invoke noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %73 unwind label %116

73:                                               ; preds = %71
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(92) %72, ptr noundef nonnull align 4 dereferenceable(92) %15, i64 92, i1 false), !tbaa.struct !24
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #12
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %15) #12
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %18) #12
  invoke void @_Z8tensor2d8DataTypejj(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %18, i32 noundef 2, i32 noundef 1, i32 noundef 997)
          to label %74 unwind label %120

74:                                               ; preds = %73
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef %.sroa.8.0.copyload, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %75 unwind label %122

75:                                               ; preds = %74
  %76 = invoke noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %11, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %77 unwind label %124

77:                                               ; preds = %75
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(92) %76, ptr noundef nonnull align 4 dereferenceable(92) %18, i64 92, i1 false), !tbaa.struct !24
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #12
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %18) #12
  %78 = call noundef ptr @_ZNKSt19__shared_ptr_accessI3CNNLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #12
  invoke void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEEC2ERKSD_(ptr noundef nonnull align 8 dereferenceable(48) %21, ptr noundef nonnull align 8 dereferenceable(48) %11)
          to label %79 unwind label %128

79:                                               ; preds = %77
  invoke void @_ZN3CNN7rereadyESt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS6_ESaISt4pairIKS6_S7_EEE(ptr noundef nonnull align 8 dereferenceable(5265) %78, ptr noundef nonnull %21)
          to label %80 unwind label %130

80:                                               ; preds = %79
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %21) #12
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %22) #12
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %22) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %23) #12
  invoke void @"_ZNSt10shared_ptrIhEC2IhZ4mainE3$_0vEEPT_T0_"(ptr noundef nonnull align 8 dereferenceable(16) %23, ptr noundef nonnull %9)
          to label %81 unwind label %132

81:                                               ; preds = %80
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %25) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef %.sroa.016.0.copyload, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %82 unwind label %134

82:                                               ; preds = %81
  %83 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %22, ptr noundef nonnull align 8 dereferenceable(32) %24)
          to label %84 unwind label %136

84:                                               ; preds = %82
  %85 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIhEaSEOS0_(ptr noundef nonnull align 8 dereferenceable(16) %83, ptr noundef nonnull align 8 dereferenceable(16) %23) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #12
  call void @_ZNSt12__shared_ptrIhLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %26) #12
  invoke void @"_ZNSt10shared_ptrIhEC2IhZ4mainE3$_1vEEPT_T0_"(ptr noundef nonnull align 8 dereferenceable(16) %26, ptr noundef nonnull %8)
          to label %86 unwind label %140

86:                                               ; preds = %84
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %28) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef %.sroa.6.0.copyload, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %87 unwind label %142

87:                                               ; preds = %86
  %88 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %22, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %89 unwind label %144

89:                                               ; preds = %87
  %90 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIhEaSEOS0_(ptr noundef nonnull align 8 dereferenceable(16) %88, ptr noundef nonnull align 8 dereferenceable(16) %26) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #12
  call void @_ZNSt12__shared_ptrIhLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %26) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %29) #12
  invoke void @"_ZNSt10shared_ptrIhEC2IhZ4mainE3$_2vEEPT_T0_"(ptr noundef nonnull align 8 dereferenceable(16) %29, ptr noundef nonnull %10)
          to label %91 unwind label %148

91:                                               ; preds = %89
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %31) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef %.sroa.8.0.copyload, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %92 unwind label %150

92:                                               ; preds = %91
  %93 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %22, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %94 unwind label %152

94:                                               ; preds = %92
  %95 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIhEaSEOS0_(ptr noundef nonnull align 8 dereferenceable(16) %93, ptr noundef nonnull align 8 dereferenceable(16) %29) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #12
  call void @_ZNSt12__shared_ptrIhLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %29) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %29) #12
  %96 = call noundef ptr @_ZNKSt19__shared_ptr_accessI3CNNLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #12
  invoke void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEEC2ERKSE_(ptr noundef nonnull align 8 dereferenceable(48) %32, ptr noundef nonnull align 8 dereferenceable(48) %22)
          to label %97 unwind label %156

97:                                               ; preds = %94
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %33, i8 0, i64 48, i1 false)
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPfSt4lessIS5_ESaISt4pairIKS5_S6_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %33) #12
  invoke void @_ZN3CNN19set_input_by_assignESt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS6_ESaISt4pairIKS6_S8_EEES0_IS6_PfSA_SaISB_ISC_SG_EEE(ptr noundef nonnull align 8 dereferenceable(5265) %96, ptr noundef nonnull %32, ptr noundef nonnull %33)
          to label %98 unwind label %158

98:                                               ; preds = %97
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPfSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %33) #12
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %32) #12
  %99 = invoke noundef double @_Z10ut_time_msv()
          to label %.preheader99 unwind label %160

.preheader99:                                     ; preds = %98
  %100 = icmp sgt i32 %.062, 0
  br i1 %100, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %166, %.preheader99
  %101 = invoke noundef double @_Z10ut_time_msv()
          to label %170 unwind label %190

102:                                              ; preds = %47
  %103 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #12
  br label %297

104:                                              ; preds = %64
  %105 = landingpad { ptr, i32 }
          cleanup
  br label %111

106:                                              ; preds = %66
  %107 = landingpad { ptr, i32 }
          cleanup
  br label %110

108:                                              ; preds = %67
  %109 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #12
  br label %110

110:                                              ; preds = %108, %106
  %.pn65 = phi { ptr, i32 } [ %109, %108 ], [ %107, %106 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #12
  br label %111

111:                                              ; preds = %110, %104
  %.pn65.pn = phi { ptr, i32 } [ %.pn65, %110 ], [ %105, %104 ]
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %12) #12
  br label %296

112:                                              ; preds = %69
  %113 = landingpad { ptr, i32 }
          cleanup
  br label %119

114:                                              ; preds = %70
  %115 = landingpad { ptr, i32 }
          cleanup
  br label %118

116:                                              ; preds = %71
  %117 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #12
  br label %118

118:                                              ; preds = %116, %114
  %.pn68 = phi { ptr, i32 } [ %117, %116 ], [ %115, %114 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #12
  br label %119

119:                                              ; preds = %118, %112
  %.pn68.pn = phi { ptr, i32 } [ %.pn68, %118 ], [ %113, %112 ]
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %15) #12
  br label %296

120:                                              ; preds = %73
  %121 = landingpad { ptr, i32 }
          cleanup
  br label %127

122:                                              ; preds = %74
  %123 = landingpad { ptr, i32 }
          cleanup
  br label %126

124:                                              ; preds = %75
  %125 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #12
  br label %126

126:                                              ; preds = %124, %122
  %.pn71 = phi { ptr, i32 } [ %125, %124 ], [ %123, %122 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #12
  br label %127

127:                                              ; preds = %126, %120
  %.pn71.pn = phi { ptr, i32 } [ %.pn71, %126 ], [ %121, %120 ]
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %18) #12
  br label %296

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

130:                                              ; preds = %79
  %131 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %21) #12
  br label %296

132:                                              ; preds = %80
  %133 = landingpad { ptr, i32 }
          cleanup
  br label %139

134:                                              ; preds = %81
  %135 = landingpad { ptr, i32 }
          cleanup
  br label %138

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

138:                                              ; preds = %136, %134
  %.pn74 = phi { ptr, i32 } [ %137, %136 ], [ %135, %134 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #12
  call void @_ZNSt12__shared_ptrIhLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #12
  br label %139

139:                                              ; preds = %138, %132
  %.pn74.pn = phi { ptr, i32 } [ %.pn74, %138 ], [ %133, %132 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #12
  br label %295

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

142:                                              ; preds = %86
  %143 = landingpad { ptr, i32 }
          cleanup
  br label %146

144:                                              ; preds = %87
  %145 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #12
  br label %146

146:                                              ; preds = %144, %142
  %.pn77 = phi { ptr, i32 } [ %145, %144 ], [ %143, %142 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #12
  call void @_ZNSt12__shared_ptrIhLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %26) #12
  br label %147

147:                                              ; preds = %146, %140
  %.pn77.pn = phi { ptr, i32 } [ %.pn77, %146 ], [ %141, %140 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #12
  br label %295

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

150:                                              ; preds = %91
  %151 = landingpad { ptr, i32 }
          cleanup
  br label %154

152:                                              ; preds = %92
  %153 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #12
  br label %154

154:                                              ; preds = %152, %150
  %.pn80 = phi { ptr, i32 } [ %153, %152 ], [ %151, %150 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #12
  call void @_ZNSt12__shared_ptrIhLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %29) #12
  br label %155

155:                                              ; preds = %154, %148
  %.pn80.pn = phi { ptr, i32 } [ %.pn80, %154 ], [ %149, %148 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %29) #12
  br label %295

156:                                              ; preds = %94
  %157 = landingpad { ptr, i32 }
          cleanup
  br label %295

158:                                              ; preds = %97
  %159 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPfSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %33) #12
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %32) #12
  br label %295

160:                                              ; preds = %98
  %161 = landingpad { ptr, i32 }
          cleanup
  br label %295

.lr.ph:                                           ; preds = %.preheader99, %166
  %.063102 = phi i32 [ %167, %166 ], [ 0, %.preheader99 ]
  %162 = call noundef ptr @_ZNKSt19__shared_ptr_accessI3CNNLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #12
  %163 = load ptr, ptr %162, align 8, !tbaa !31
  %164 = getelementptr inbounds i8, ptr %163, i64 24
  %165 = load ptr, ptr %164, align 8
  invoke void %165(ptr noundef nonnull align 8 dereferenceable(5265) %162)
          to label %166 unwind label %168

166:                                              ; preds = %.lr.ph
  %167 = add nuw nsw i32 %.063102, 1
  %exitcond.not = icmp eq i32 %167, %.062
  br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !33

168:                                              ; preds = %.lr.ph
  %169 = landingpad { ptr, i32 }
          cleanup
  br label %295

170:                                              ; preds = %._crit_edge
  %171 = fsub double %101, %99
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #12
  %172 = call noundef ptr @_ZNKSt19__shared_ptr_accessI3CNNLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #12
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %36) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef %.sroa.0.0.copyload, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %173 unwind label %192

173:                                              ; preds = %170
  invoke void @_ZN3CNN18get_tensor_by_nameENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%class.Tensor) align 8 %34, ptr noundef nonnull align 8 dereferenceable(5265) %172, ptr noundef nonnull %35)
          to label %174 unwind label %194

174:                                              ; preds = %173
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #12
  %175 = invoke noundef i32 @_ZN6Tensor6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %.preheader95.preheader unwind label %197

.preheader95.preheader:                           ; preds = %174
  %176 = invoke noundef float @_ZN6Tensor7elementEj(ptr noundef nonnull align 8 dereferenceable(32) %34, i32 noundef 0)
          to label %177 unwind label %.loopexit.split-lp.loopexit

177:                                              ; preds = %.preheader95.preheader
  %178 = load i32, ptr @__const.main.trueRes, align 16, !tbaa !29
  %179 = sitofp i32 %178 to float
  %180 = fcmp une float %176, %179
  br i1 %180, label %181, label %.preheader95.1

181:                                              ; preds = %265, %260, %255, %250, %245, %240, %235, %230, %225, %220, %215, %210, %205, %200, %177
  %182 = call i64 (i64, ...) @syscall(i64 noundef 186) #12
  %183 = trunc i64 %182 to i32
  %184 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.1, i32 noundef %183)
  %185 = load ptr, ptr @stdout, align 8, !tbaa !35
  %186 = call i32 @fflush(ptr noundef %185)
  %187 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.21)
  %188 = load ptr, ptr @stdout, align 8, !tbaa !35
  %189 = call i32 @fflush(ptr noundef %188)
  call void @exit(i32 noundef 1) #13
  unreachable

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

192:                                              ; preds = %170
  %193 = landingpad { ptr, i32 }
          cleanup
  br label %196

194:                                              ; preds = %173
  %195 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #12
  br label %196

196:                                              ; preds = %194, %192
  %.pn83 = phi { ptr, i32 } [ %195, %194 ], [ %193, %192 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #12
  br label %294

197:                                              ; preds = %174
  %198 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

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

.loopexit.split-lp.loopexit:                      ; preds = %.preheader95.14, %.preheader95.13, %.preheader95.12, %.preheader95.11, %.preheader95.10, %.preheader95.9, %.preheader95.8, %.preheader95.7, %.preheader95.6, %.preheader95.5, %.preheader95.4, %.preheader95.3, %.preheader95.2, %.preheader95.1, %.preheader95.preheader
  %lpad.loopexit96 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

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

.preheader95.1:                                   ; preds = %177
  %199 = invoke noundef float @_ZN6Tensor7elementEj(ptr noundef nonnull align 8 dereferenceable(32) %34, i32 noundef 1)
          to label %200 unwind label %.loopexit.split-lp.loopexit

200:                                              ; preds = %.preheader95.1
  %201 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.trueRes, i64 4), align 4, !tbaa !29
  %202 = sitofp i32 %201 to float
  %203 = fcmp une float %199, %202
  br i1 %203, label %181, label %.preheader95.2

.preheader95.2:                                   ; preds = %200
  %204 = invoke noundef float @_ZN6Tensor7elementEj(ptr noundef nonnull align 8 dereferenceable(32) %34, i32 noundef 2)
          to label %205 unwind label %.loopexit.split-lp.loopexit

205:                                              ; preds = %.preheader95.2
  %206 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.trueRes, i64 8), align 8, !tbaa !29
  %207 = sitofp i32 %206 to float
  %208 = fcmp une float %204, %207
  br i1 %208, label %181, label %.preheader95.3

.preheader95.3:                                   ; preds = %205
  %209 = invoke noundef float @_ZN6Tensor7elementEj(ptr noundef nonnull align 8 dereferenceable(32) %34, i32 noundef 3)
          to label %210 unwind label %.loopexit.split-lp.loopexit

210:                                              ; preds = %.preheader95.3
  %211 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.trueRes, i64 12), align 4, !tbaa !29
  %212 = sitofp i32 %211 to float
  %213 = fcmp une float %209, %212
  br i1 %213, label %181, label %.preheader95.4

.preheader95.4:                                   ; preds = %210
  %214 = invoke noundef float @_ZN6Tensor7elementEj(ptr noundef nonnull align 8 dereferenceable(32) %34, i32 noundef 4)
          to label %215 unwind label %.loopexit.split-lp.loopexit

215:                                              ; preds = %.preheader95.4
  %216 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.trueRes, i64 16), align 16, !tbaa !29
  %217 = sitofp i32 %216 to float
  %218 = fcmp une float %214, %217
  br i1 %218, label %181, label %.preheader95.5

.preheader95.5:                                   ; preds = %215
  %219 = invoke noundef float @_ZN6Tensor7elementEj(ptr noundef nonnull align 8 dereferenceable(32) %34, i32 noundef 5)
          to label %220 unwind label %.loopexit.split-lp.loopexit

220:                                              ; preds = %.preheader95.5
  %221 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.trueRes, i64 20), align 4, !tbaa !29
  %222 = sitofp i32 %221 to float
  %223 = fcmp une float %219, %222
  br i1 %223, label %181, label %.preheader95.6

.preheader95.6:                                   ; preds = %220
  %224 = invoke noundef float @_ZN6Tensor7elementEj(ptr noundef nonnull align 8 dereferenceable(32) %34, i32 noundef 6)
          to label %225 unwind label %.loopexit.split-lp.loopexit

225:                                              ; preds = %.preheader95.6
  %226 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.trueRes, i64 24), align 8, !tbaa !29
  %227 = sitofp i32 %226 to float
  %228 = fcmp une float %224, %227
  br i1 %228, label %181, label %.preheader95.7

.preheader95.7:                                   ; preds = %225
  %229 = invoke noundef float @_ZN6Tensor7elementEj(ptr noundef nonnull align 8 dereferenceable(32) %34, i32 noundef 7)
          to label %230 unwind label %.loopexit.split-lp.loopexit

230:                                              ; preds = %.preheader95.7
  %231 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.trueRes, i64 28), align 4, !tbaa !29
  %232 = sitofp i32 %231 to float
  %233 = fcmp une float %229, %232
  br i1 %233, label %181, label %.preheader95.8

.preheader95.8:                                   ; preds = %230
  %234 = invoke noundef float @_ZN6Tensor7elementEj(ptr noundef nonnull align 8 dereferenceable(32) %34, i32 noundef 8)
          to label %235 unwind label %.loopexit.split-lp.loopexit

235:                                              ; preds = %.preheader95.8
  %236 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.trueRes, i64 32), align 16, !tbaa !29
  %237 = sitofp i32 %236 to float
  %238 = fcmp une float %234, %237
  br i1 %238, label %181, label %.preheader95.9

.preheader95.9:                                   ; preds = %235
  %239 = invoke noundef float @_ZN6Tensor7elementEj(ptr noundef nonnull align 8 dereferenceable(32) %34, i32 noundef 9)
          to label %240 unwind label %.loopexit.split-lp.loopexit

240:                                              ; preds = %.preheader95.9
  %241 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.trueRes, i64 36), align 4, !tbaa !29
  %242 = sitofp i32 %241 to float
  %243 = fcmp une float %239, %242
  br i1 %243, label %181, label %.preheader95.10

.preheader95.10:                                  ; preds = %240
  %244 = invoke noundef float @_ZN6Tensor7elementEj(ptr noundef nonnull align 8 dereferenceable(32) %34, i32 noundef 10)
          to label %245 unwind label %.loopexit.split-lp.loopexit

245:                                              ; preds = %.preheader95.10
  %246 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.trueRes, i64 40), align 8, !tbaa !29
  %247 = sitofp i32 %246 to float
  %248 = fcmp une float %244, %247
  br i1 %248, label %181, label %.preheader95.11

.preheader95.11:                                  ; preds = %245
  %249 = invoke noundef float @_ZN6Tensor7elementEj(ptr noundef nonnull align 8 dereferenceable(32) %34, i32 noundef 11)
          to label %250 unwind label %.loopexit.split-lp.loopexit

250:                                              ; preds = %.preheader95.11
  %251 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.trueRes, i64 44), align 4, !tbaa !29
  %252 = sitofp i32 %251 to float
  %253 = fcmp une float %249, %252
  br i1 %253, label %181, label %.preheader95.12

.preheader95.12:                                  ; preds = %250
  %254 = invoke noundef float @_ZN6Tensor7elementEj(ptr noundef nonnull align 8 dereferenceable(32) %34, i32 noundef 12)
          to label %255 unwind label %.loopexit.split-lp.loopexit

255:                                              ; preds = %.preheader95.12
  %256 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.trueRes, i64 48), align 16, !tbaa !29
  %257 = sitofp i32 %256 to float
  %258 = fcmp une float %254, %257
  br i1 %258, label %181, label %.preheader95.13

.preheader95.13:                                  ; preds = %255
  %259 = invoke noundef float @_ZN6Tensor7elementEj(ptr noundef nonnull align 8 dereferenceable(32) %34, i32 noundef 13)
          to label %260 unwind label %.loopexit.split-lp.loopexit

260:                                              ; preds = %.preheader95.13
  %261 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.trueRes, i64 52), align 4, !tbaa !29
  %262 = sitofp i32 %261 to float
  %263 = fcmp une float %259, %262
  br i1 %263, label %181, label %.preheader95.14

.preheader95.14:                                  ; preds = %260
  %264 = invoke noundef float @_ZN6Tensor7elementEj(ptr noundef nonnull align 8 dereferenceable(32) %34, i32 noundef 14)
          to label %265 unwind label %.loopexit.split-lp.loopexit

265:                                              ; preds = %.preheader95.14
  %266 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.trueRes, i64 56), align 8, !tbaa !29
  %267 = sitofp i32 %266 to float
  %268 = fcmp une float %264, %267
  br i1 %268, label %181, label %.preheader

.preheader:                                       ; preds = %265
  %269 = icmp ugt i32 %175, 15
  br i1 %269, label %.lr.ph105, label %._crit_edge106

270:                                              ; preds = %273
  %271 = add nuw i32 %.159104, 1
  %exitcond109.not = icmp eq i32 %271, %175
  br i1 %exitcond109.not, label %._crit_edge106, label %.lr.ph105, !llvm.loop !36

.lr.ph105:                                        ; preds = %.preheader, %270
  %.159104 = phi i32 [ %271, %270 ], [ 15, %.preheader ]
  %272 = invoke noundef float @_ZN6Tensor7elementEj(ptr noundef nonnull align 8 dereferenceable(32) %34, i32 noundef %.159104)
          to label %273 unwind label %.loopexit

273:                                              ; preds = %.lr.ph105
  %274 = fcmp une float %272, 0.000000e+00
  br i1 %274, label %275, label %270

275:                                              ; preds = %273
  %276 = call i64 (i64, ...) @syscall(i64 noundef 186) #12
  %277 = trunc i64 %276 to i32
  %278 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.1, i32 noundef %277)
  %279 = load ptr, ptr @stdout, align 8, !tbaa !35
  %280 = call i32 @fflush(ptr noundef %279)
  %281 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.21)
  %282 = load ptr, ptr @stdout, align 8, !tbaa !35
  %283 = call i32 @fflush(ptr noundef %282)
  call void @exit(i32 noundef 1) #13
  unreachable

._crit_edge106:                                   ; preds = %270, %.preheader
  %284 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.22)
          to label %285 unwind label %.loopexit.split-lp.loopexit.split-lp

285:                                              ; preds = %._crit_edge106
  %286 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %284, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %287 unwind label %.loopexit.split-lp.loopexit.split-lp

287:                                              ; preds = %285
  %288 = sitofp i32 %.062 to double
  %289 = fdiv double %171, %288
  %290 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.24, double noundef %289)
  %291 = load ptr, ptr @stdout, align 8, !tbaa !35
  %292 = call i32 @fflush(ptr noundef %291)
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #12
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %22) #12
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %22) #12
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %11) #12
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %11) #12
  call void @llvm.lifetime.end.p0(i64 3988, ptr nonnull %10) #12
  call void @llvm.lifetime.end.p0(i64 68, ptr nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 68, ptr nonnull %8) #12
  call void @_ZNSt12__shared_ptrI3CNNLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #12
  br label %293

293:                                              ; preds = %38, %287
  %.0 = phi i32 [ 0, %287 ], [ 1, %38 ]
  call void @llvm.lifetime.end.p0(i64 152, ptr nonnull %3) #12
  ret i32 %.0

.loopexit.split-lp:                               ; preds = %.loopexit, %.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp.loopexit, %197
  %.pn85 = phi { ptr, i32 } [ %198, %197 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit96, %.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp97, %.loopexit.split-lp.loopexit.split-lp ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #12
  br label %294

294:                                              ; preds = %.loopexit.split-lp, %196
  %.pn85.pn = phi { ptr, i32 } [ %.pn85, %.loopexit.split-lp ], [ %.pn83, %196 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #12
  br label %295

295:                                              ; preds = %160, %168, %294, %190, %158, %156, %155, %147, %139
  %.pn89.pn = phi { ptr, i32 } [ %159, %158 ], [ %157, %156 ], [ %.pn80.pn, %155 ], [ %.pn77.pn, %147 ], [ %.pn74.pn, %139 ], [ %169, %168 ], [ %161, %160 ], [ %.pn85.pn, %294 ], [ %191, %190 ]
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %22) #12
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %22) #12
  br label %296

296:                                              ; preds = %295, %130, %128, %127, %119, %111
  %.pn89.pn.pn = phi { ptr, i32 } [ %.pn89.pn, %295 ], [ %131, %130 ], [ %129, %128 ], [ %.pn71.pn, %127 ], [ %.pn68.pn, %119 ], [ %.pn65.pn, %111 ]
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %11) #12
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %11) #12
  call void @llvm.lifetime.end.p0(i64 3988, ptr nonnull %10) #12
  call void @llvm.lifetime.end.p0(i64 68, ptr nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 68, ptr nonnull %8) #12
  br label %297

297:                                              ; preds = %296, %102
  %.pn89.pn.pn.pn = phi { ptr, i32 } [ %.pn89.pn.pn, %296 ], [ %103, %102 ]
  call void @_ZNSt12__shared_ptrI3CNNLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #12
  br label %298

298:                                              ; preds = %297, %46
  %.pn89.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn89.pn.pn.pn, %297 ], [ %.pn, %46 ]
  call void @llvm.lifetime.end.p0(i64 152, ptr nonnull %3) #12
  resume { ptr, i32 } %.pn89.pn.pn.pn.pn
}

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN8ParseResC2Ev(ptr noundef nonnull align 8 dereferenceable(152)) unnamed_addr #9 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z16parseCommandLineiPPcP8ParseResNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i32 noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #9

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_Z19set_cpu_num_threadsi(i32 noundef) local_unnamed_addr #2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z14createPipelinePKcS0_S0_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.46") align 8, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #9

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z8tensor2d8DataTypejj(ptr dead_on_unwind noalias writable sret(%struct.TensorDesc) align 4, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #9

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

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

declare void @_ZN3CNN7rereadyESt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS6_ESaISt4pairIKS6_S7_EEE(ptr noundef nonnull align 8 dereferenceable(5265), ptr noundef) local_unnamed_addr #10

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZNSt10shared_ptrIhEC2IhZ4mainE3$_0vEEPT_T0_"(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) unnamed_addr #6 align 2

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZNSt10shared_ptrIhEC2IhZ4mainE3$_1vEEPT_T0_"(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZNSt10shared_ptrIhEC2IhZ4mainE3$_2vEEPT_T0_"(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) unnamed_addr #6 align 2

declare void @_ZN3CNN19set_input_by_assignESt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS6_ESaISt4pairIKS6_S8_EEES0_IS6_PfSA_SaISB_ISC_SG_EEE(ptr noundef nonnull align 8 dereferenceable(5265), ptr noundef, ptr noundef) local_unnamed_addr #10

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

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #11

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

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

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

declare noundef double @_Z10ut_time_msv() local_unnamed_addr #10

declare void @_ZN3CNN18get_tensor_by_nameENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%class.Tensor) align 8, ptr noundef nonnull align 8 dereferenceable(5265), ptr noundef) local_unnamed_addr #10

; Function Attrs: mustprogress uwtable
declare dso_local noundef float @_ZN6Tensor7elementEj(ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) local_unnamed_addr #6 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #9

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { 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 = { 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 #5 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { mustprogress norecurse uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { 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 #10 = { "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 #11 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #12 = { nounwind }
attributes #13 = { noreturn 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, !11, i64 8}
!6 = !{!"_ZTS8ParseRes", !7, i64 0, !7, i64 16, !7, i64 32, !7, i64 48, !12, i64 64, !14, i64 72, !16, i64 80, !16, i64 88, !16, i64 96, !7, i64 104, !7, i64 120, !7, i64 136}
!7 = !{!"_ZTSSt4pairIPcbE", !8, i64 0, !11, i64 8}
!8 = !{!"any pointer", !9, i64 0}
!9 = !{!"omnipotent char", !10, i64 0}
!10 = !{!"Simple C++ TBAA"}
!11 = !{!"bool", !9, i64 0}
!12 = !{!"_ZTSSt4pairI11ImageFormatbE", !13, i64 0, !11, i64 4}
!13 = !{!"_ZTS11ImageFormat", !9, i64 0}
!14 = !{!"_ZTSSt4pairIfbE", !15, i64 0, !11, i64 4}
!15 = !{!"float", !9, i64 0}
!16 = !{!"_ZTSSt4pairIibE", !17, i64 0, !11, i64 4}
!17 = !{!"int", !9, i64 0}
!18 = !{i8 0, i8 2}
!19 = !{}
!20 = !{!6, !8, i64 0}
!21 = !{!6, !11, i64 40}
!22 = !{!6, !11, i64 56}
!23 = !{!6, !11, i64 100}
!24 = !{i64 0, i64 4, !25, i64 4, i64 4, !27, i64 8, i64 4, !29, i64 12, i64 80, !30}
!25 = !{!26, !26, i64 0}
!26 = !{!"_ZTS8DataType", !9, i64 0}
!27 = !{!28, !28, i64 0}
!28 = !{!"_ZTS10DataFormat", !9, i64 0}
!29 = !{!17, !17, i64 0}
!30 = !{!9, !9, i64 0}
!31 = !{!32, !32, i64 0}
!32 = !{!"vtable pointer", !10, i64 0}
!33 = distinct !{!33, !34}
!34 = !{!"llvm.loop.mustprogress"}
!35 = !{!8, !8, i64 0}
!36 = distinct !{!36, !34}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LCSSAPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,SROAPass,SimplifyCFGPass