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

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

%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.std::map.102" = type { %"class.std::_Rb_tree.103" }
%"class.std::_Rb_tree.103" = 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 <{ [188 x i32], [32 x i32] }>, align 16
@__const.main.h_sequence_length = external hidden unnamed_addr constant [4 x i32], align 16
@__const.main.trueRes = external hidden unnamed_addr constant <{ [535 x i32], [137 x i32] }>, align 16
@__const.main.inputNames = external hidden unnamed_addr constant [4 x ptr], align 16
@__const.main.outputNames = external hidden unnamed_addr constant [1 x ptr], align 8
@.str.22 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.23 = 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 i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca [220 x i32], align 16
  %24 = alloca ptr, align 8
  %25 = alloca [4 x i32], align 16
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca ptr, align 8
  %30 = alloca i32, align 4
  %31 = alloca ptr, align 8
  %32 = alloca i32, align 4
  %33 = alloca [672 x i32], align 16
  %34 = alloca [4 x ptr], align 16
  %35 = alloca [1 x ptr], align 8
  %36 = alloca %"class.std::map", align 8
  %37 = alloca %struct.TensorDesc, align 4
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::allocator.11", align 1
  %40 = alloca %struct.TensorDesc, align 4
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::allocator.11", align 1
  %43 = alloca %struct.TensorDesc, align 4
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::allocator.11", align 1
  %46 = alloca %struct.TensorDesc, align 4
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::allocator.11", align 1
  %49 = alloca %"class.std::map", align 8
  %50 = alloca %"class.std::map.97", align 8
  %51 = alloca %"class.std::shared_ptr.8", align 8
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::allocator.11", align 1
  %54 = alloca %"class.std::shared_ptr.8", align 8
  %55 = alloca %class.anon, align 1
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.std::allocator.11", align 1
  %58 = alloca %"class.std::shared_ptr.8", align 8
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::allocator.11", align 1
  %61 = alloca %"class.std::shared_ptr.8", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::allocator.11", align 1
  %64 = alloca %"class.std::map.97", align 8
  %65 = alloca %"class.std::map.102", align 8
  %66 = alloca double, align 8
  %67 = alloca i32, align 4
  %68 = alloca double, align 8
  %69 = alloca double, align 8
  %70 = alloca %class.Tensor, align 8
  %71 = alloca %"class.std::__cxx11::basic_string", align 8
  %72 = alloca %"class.std::allocator.11", align 1
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = 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) #12
  call void @_ZN8ParseResC2Ev(ptr noundef nonnull align 8 dereferenceable(152) %6)
  %76 = load i32, ptr %4, align 4, !tbaa !5
  %77 = load ptr, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %8) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #12
  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 %78 unwind label %85

78:                                               ; preds = %2
  invoke void @_Z16parseCommandLineiPPcP8ParseResNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i32 noundef %76, ptr noundef %77, ptr noundef %6, ptr noundef %7)
          to label %79 unwind label %89

79:                                               ; preds = %78
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #12
  store ptr @.str.7, ptr %11, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #12
  store ptr @.str.7, ptr %12, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #12
  store ptr @.str.7, ptr %13, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #12
  store ptr @.str.7, ptr %14, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #12
  store i32 1, ptr %15, align 4, !tbaa !5
  %80 = getelementptr inbounds %struct.ParseRes, ptr %6, i32 0, i32 0
  %81 = getelementptr inbounds %"struct.std::pair", ptr %80, i32 0, i32 1
  %82 = load i8, ptr %81, align 8, !tbaa !11, !range !20, !noundef !21
  %83 = trunc i8 %82 to i1
  br i1 %83, label %94, label %84

84:                                               ; preds = %79
  store i32 1, ptr %3, align 4
  store i32 1, ptr %16, align 4
  br label %551

85:                                               ; preds = %2
  %86 = landingpad { ptr, i32 }
          cleanup
  %87 = extractvalue { ptr, i32 } %86, 0
  store ptr %87, ptr %9, align 8
  %88 = extractvalue { ptr, i32 } %86, 1
  store i32 %88, ptr %10, align 4
  br label %93

89:                                               ; preds = %78
  %90 = landingpad { ptr, i32 }
          cleanup
  %91 = extractvalue { ptr, i32 } %90, 0
  store ptr %91, ptr %9, align 8
  %92 = extractvalue { ptr, i32 } %90, 1
  store i32 %92, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #12
  br label %93

93:                                               ; preds = %89, %85
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #12
  br label %553

94:                                               ; preds = %79
  %95 = getelementptr inbounds %struct.ParseRes, ptr %6, i32 0, i32 0
  %96 = getelementptr inbounds %"struct.std::pair", ptr %95, i32 0, i32 1
  %97 = load i8, ptr %96, align 8, !tbaa !11, !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 0
  %101 = getelementptr inbounds %"struct.std::pair", ptr %100, i32 0, i32 0
  %102 = load ptr, ptr %101, align 8, !tbaa !22
  store ptr %102, ptr %11, align 8, !tbaa !9
  br label %103

103:                                              ; preds = %99, %94
  %104 = getelementptr inbounds %struct.ParseRes, ptr %6, i32 0, i32 2
  %105 = getelementptr inbounds %"struct.std::pair", ptr %104, i32 0, i32 1
  %106 = load i8, ptr %105, align 8, !tbaa !23, !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 2
  %110 = getelementptr inbounds %"struct.std::pair", ptr %109, i32 0, i32 0
  %111 = load ptr, ptr %110, align 8, !tbaa !24
  store ptr %111, ptr %13, align 8, !tbaa !9
  br label %112

112:                                              ; preds = %108, %103
  %113 = getelementptr inbounds %struct.ParseRes, ptr %6, i32 0, i32 3
  %114 = getelementptr inbounds %"struct.std::pair", ptr %113, i32 0, i32 1
  %115 = load i8, ptr %114, align 8, !tbaa !25, !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 3
  %119 = getelementptr inbounds %"struct.std::pair", ptr %118, i32 0, i32 0
  %120 = load ptr, ptr %119, align 8, !tbaa !26
  store ptr %120, ptr %14, align 8, !tbaa !9
  br label %121

121:                                              ; preds = %117, %112
  %122 = getelementptr inbounds %struct.ParseRes, ptr %6, i32 0, i32 8
  %123 = getelementptr inbounds %"struct.std::pair.43", ptr %122, i32 0, i32 1
  %124 = load i8, ptr %123, align 4, !tbaa !27, !range !20, !noundef !21
  %125 = trunc i8 %124 to i1
  br i1 %125, label %126, label %130

126:                                              ; preds = %121
  %127 = getelementptr inbounds %struct.ParseRes, ptr %6, i32 0, i32 8
  %128 = getelementptr inbounds %"struct.std::pair.43", ptr %127, i32 0, i32 0
  %129 = load i32, ptr %128, align 8, !tbaa !28
  store i32 %129, ptr %15, align 4, !tbaa !5
  br label %130

130:                                              ; preds = %126, %121
  call void @llvm.lifetime.start.p0(i64 16, ptr %17) #12
  call void @_ZNSt10shared_ptrI3CNNEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr %18) #12
  %131 = load ptr, ptr %13, align 8, !tbaa !9
  %132 = load ptr, ptr %11, align 8, !tbaa !9
  %133 = 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 %131, ptr noundef %132, ptr noundef %133)
          to label %134 unwind label %148

134:                                              ; preds = %130
  %135 = 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) #12
  call void @_ZNSt12__shared_ptrI3CNNLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %18) #12
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #12
  store i32 4, ptr %19, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #12
  store i32 55, ptr %20, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #12
  %136 = load i32, ptr %19, align 4, !tbaa !5
  %137 = load i32, ptr %20, align 4, !tbaa !5
  %138 = mul i32 %136, %137
  store i32 %138, ptr %21, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #12
  store i32 25100, ptr %22, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 880, ptr %23) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %23, ptr align 16 @__const.main.input_ids, i64 880, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #12
  %139 = load i32, ptr %21, align 4, !tbaa !5
  %140 = zext i32 %139 to i64
  %141 = mul i64 %140, 4
  %142 = call noalias ptr @malloc(i64 noundef %141) #13
  store ptr %142, ptr %24, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %25) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %25, ptr align 16 @__const.main.h_sequence_length, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #12
  store i32 0, ptr %26, align 4, !tbaa !5
  br label %143

143:                                              ; preds = %196, %134
  %144 = load i32, ptr %26, align 4, !tbaa !5
  %145 = load i32, ptr %19, align 4, !tbaa !5
  %146 = icmp ult i32 %144, %145
  br i1 %146, label %152, label %147

147:                                              ; preds = %143
  store i32 2, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #12
  br label %199

148:                                              ; preds = %130
  %149 = landingpad { ptr, i32 }
          cleanup
  %150 = extractvalue { ptr, i32 } %149, 0
  store ptr %150, ptr %9, align 8
  %151 = extractvalue { ptr, i32 } %149, 1
  store i32 %151, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %18) #12
  br label %550

152:                                              ; preds = %143
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #12
  store i32 0, ptr %27, align 4, !tbaa !5
  br label %153

153:                                              ; preds = %170, %152
  %154 = load i32, ptr %27, align 4, !tbaa !5
  %155 = load i32, ptr %26, align 4, !tbaa !5
  %156 = zext i32 %155 to i64
  %157 = getelementptr inbounds [4 x i32], ptr %25, i64 0, i64 %156
  %158 = load i32, ptr %157, align 4, !tbaa !5
  %159 = icmp ult i32 %154, %158
  br i1 %159, label %161, label %160

160:                                              ; preds = %153
  store i32 5, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #12
  br label %173

161:                                              ; preds = %153
  %162 = load ptr, ptr %24, align 8, !tbaa !9
  %163 = load i32, ptr %26, align 4, !tbaa !5
  %164 = load i32, ptr %20, align 4, !tbaa !5
  %165 = mul i32 %163, %164
  %166 = load i32, ptr %27, align 4, !tbaa !5
  %167 = add i32 %165, %166
  %168 = zext i32 %167 to i64
  %169 = getelementptr inbounds float, ptr %162, i64 %168
  store float 1.000000e+00, ptr %169, align 4, !tbaa !29
  br label %170

170:                                              ; preds = %161
  %171 = load i32, ptr %27, align 4, !tbaa !5
  %172 = add i32 %171, 1
  store i32 %172, ptr %27, align 4, !tbaa !5
  br label %153, !llvm.loop !30

173:                                              ; preds = %160
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #12
  %174 = load i32, ptr %26, align 4, !tbaa !5
  %175 = zext i32 %174 to i64
  %176 = getelementptr inbounds [4 x i32], ptr %25, i64 0, i64 %175
  %177 = load i32, ptr %176, align 4, !tbaa !5
  store i32 %177, ptr %28, align 4, !tbaa !5
  br label %178

178:                                              ; preds = %192, %173
  %179 = load i32, ptr %28, align 4, !tbaa !5
  %180 = load i32, ptr %20, align 4, !tbaa !5
  %181 = icmp ult i32 %179, %180
  br i1 %181, label %183, label %182

182:                                              ; preds = %178
  store i32 8, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #12
  br label %195

183:                                              ; preds = %178
  %184 = load ptr, ptr %24, align 8, !tbaa !9
  %185 = load i32, ptr %26, align 4, !tbaa !5
  %186 = load i32, ptr %20, align 4, !tbaa !5
  %187 = mul i32 %185, %186
  %188 = load i32, ptr %28, align 4, !tbaa !5
  %189 = add i32 %187, %188
  %190 = zext i32 %189 to i64
  %191 = getelementptr inbounds float, ptr %184, i64 %190
  store float 0.000000e+00, ptr %191, align 4, !tbaa !29
  br label %192

192:                                              ; preds = %183
  %193 = load i32, ptr %28, align 4, !tbaa !5
  %194 = add i32 %193, 1
  store i32 %194, ptr %28, align 4, !tbaa !5
  br label %178, !llvm.loop !32

195:                                              ; preds = %182
  br label %196

196:                                              ; preds = %195
  %197 = load i32, ptr %26, align 4, !tbaa !5
  %198 = add i32 %197, 1
  store i32 %198, ptr %26, align 4, !tbaa !5
  br label %143, !llvm.loop !33

199:                                              ; preds = %147
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #12
  %200 = load i32, ptr %21, align 4, !tbaa !5
  %201 = zext i32 %200 to i64
  %202 = mul i64 %201, 4
  %203 = call noalias ptr @malloc(i64 noundef %202) #13
  store ptr %203, ptr %29, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #12
  store i32 0, ptr %30, align 4, !tbaa !5
  br label %204

204:                                              ; preds = %217, %199
  %205 = load i32, ptr %30, align 4, !tbaa !5
  %206 = load i32, ptr %21, align 4, !tbaa !5
  %207 = icmp ult i32 %205, %206
  br i1 %207, label %209, label %208

208:                                              ; preds = %204
  store i32 11, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #12
  br label %220

209:                                              ; preds = %204
  %210 = load i32, ptr %30, align 4, !tbaa !5
  %211 = load i32, ptr %20, align 4, !tbaa !5
  %212 = urem i32 %210, %211
  %213 = load ptr, ptr %29, align 8, !tbaa !9
  %214 = load i32, ptr %30, align 4, !tbaa !5
  %215 = zext i32 %214 to i64
  %216 = getelementptr inbounds i32, ptr %213, i64 %215
  store i32 %212, ptr %216, align 4, !tbaa !5
  br label %217

217:                                              ; preds = %209
  %218 = load i32, ptr %30, align 4, !tbaa !5
  %219 = add i32 %218, 1
  store i32 %219, ptr %30, align 4, !tbaa !5
  br label %204, !llvm.loop !34

220:                                              ; preds = %208
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #12
  %221 = load i32, ptr %22, align 4, !tbaa !5
  %222 = zext i32 %221 to i64
  %223 = mul i64 %222, 4
  %224 = call noalias ptr @malloc(i64 noundef %223) #13
  store ptr %224, ptr %31, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #12
  store i32 0, ptr %32, align 4, !tbaa !5
  br label %225

225:                                              ; preds = %236, %220
  %226 = load i32, ptr %32, align 4, !tbaa !5
  %227 = load i32, ptr %22, align 4, !tbaa !5
  %228 = icmp ult i32 %226, %227
  br i1 %228, label %230, label %229

229:                                              ; preds = %225
  store i32 14, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #12
  br label %239

230:                                              ; preds = %225
  %231 = load i32, ptr %32, align 4, !tbaa !5
  %232 = load ptr, ptr %31, align 8, !tbaa !9
  %233 = load i32, ptr %32, align 4, !tbaa !5
  %234 = zext i32 %233 to i64
  %235 = getelementptr inbounds i32, ptr %232, i64 %234
  store i32 %231, ptr %235, align 4, !tbaa !5
  br label %236

236:                                              ; preds = %230
  %237 = load i32, ptr %32, align 4, !tbaa !5
  %238 = add i32 %237, 1
  store i32 %238, ptr %32, align 4, !tbaa !5
  br label %225, !llvm.loop !35

239:                                              ; preds = %229
  call void @llvm.lifetime.start.p0(i64 2688, ptr %33) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %33, ptr align 16 @__const.main.trueRes, i64 2688, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %34, ptr align 16 @__const.main.inputNames, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #12
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %35, ptr align 8 @__const.main.outputNames, i64 8, i1 false)
  call void @llvm.lifetime.start.p0(i64 48, ptr %36) #12
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %36) #12
  call void @llvm.lifetime.start.p0(i64 92, ptr %37) #12
  %240 = load i32, ptr %19, align 4, !tbaa !5
  %241 = load i32, ptr %20, align 4, !tbaa !5
  invoke void @_Z8tensor2d8DataTypejj(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %37, i32 noundef 2, i32 noundef %240, i32 noundef %241)
          to label %242 unwind label %316

242:                                              ; preds = %239
  call void @llvm.lifetime.start.p0(i64 32, ptr %38) #12
  %243 = getelementptr inbounds [4 x ptr], ptr %34, i64 0, i64 0
  %244 = load ptr, ptr %243, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef %244, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %245 unwind label %320

245:                                              ; preds = %242
  %246 = invoke noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %36, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %247 unwind label %324

247:                                              ; preds = %245
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %246, ptr align 4 %37, i64 92, i1 false), !tbaa.struct !36
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #12
  call void @llvm.lifetime.end.p0(i64 92, ptr %37) #12
  call void @llvm.lifetime.start.p0(i64 92, ptr %40) #12
  %248 = load i32, ptr %19, align 4, !tbaa !5
  %249 = load i32, ptr %20, align 4, !tbaa !5
  invoke void @_Z8tensor2d8DataTypejj(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %40, i32 noundef 2, i32 noundef %248, i32 noundef %249)
          to label %250 unwind label %330

250:                                              ; preds = %247
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #12
  %251 = getelementptr inbounds [4 x ptr], ptr %34, i64 0, i64 1
  %252 = load ptr, ptr %251, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %42) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef %252, ptr noundef nonnull align 1 dereferenceable(1) %42)
          to label %253 unwind label %334

253:                                              ; preds = %250
  %254 = invoke noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %36, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %255 unwind label %338

255:                                              ; preds = %253
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %254, ptr align 4 %40, i64 92, i1 false), !tbaa.struct !36
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #12
  call void @llvm.lifetime.end.p0(i64 92, ptr %40) #12
  call void @llvm.lifetime.start.p0(i64 92, ptr %43) #12
  %256 = load i32, ptr %19, align 4, !tbaa !5
  %257 = load i32, ptr %20, align 4, !tbaa !5
  invoke void @_Z8tensor2d8DataTypejj(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %43, i32 noundef 6, i32 noundef %256, i32 noundef %257)
          to label %258 unwind label %344

258:                                              ; preds = %255
  call void @llvm.lifetime.start.p0(i64 32, ptr %44) #12
  %259 = getelementptr inbounds [4 x ptr], ptr %34, i64 0, i64 2
  %260 = load ptr, ptr %259, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef %260, ptr noundef nonnull align 1 dereferenceable(1) %45)
          to label %261 unwind label %348

261:                                              ; preds = %258
  %262 = invoke noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %36, ptr noundef nonnull align 8 dereferenceable(32) %44)
          to label %263 unwind label %352

263:                                              ; preds = %261
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %262, ptr align 4 %43, i64 92, i1 false), !tbaa.struct !36
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #12
  call void @llvm.lifetime.end.p0(i64 92, ptr %43) #12
  call void @llvm.lifetime.start.p0(i64 92, ptr %46) #12
  %264 = load i32, ptr %22, align 4, !tbaa !5
  invoke void @_Z8tensor2d8DataTypejj(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %46, i32 noundef 2, i32 noundef 1, i32 noundef %264)
          to label %265 unwind label %358

265:                                              ; preds = %263
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #12
  %266 = getelementptr inbounds [4 x ptr], ptr %34, i64 0, i64 3
  %267 = load ptr, ptr %266, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %48) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef %267, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %268 unwind label %362

268:                                              ; preds = %265
  %269 = invoke noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %36, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %270 unwind label %366

270:                                              ; preds = %268
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %269, ptr align 4 %46, i64 92, i1 false), !tbaa.struct !36
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #12
  call void @llvm.lifetime.end.p0(i64 92, ptr %46) #12
  %271 = call noundef ptr @_ZNKSt19__shared_ptr_accessI3CNNLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #12
  invoke void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEEC2ERKSD_(ptr noundef nonnull align 8 dereferenceable(48) %49, ptr noundef nonnull align 8 dereferenceable(48) %36)
          to label %272 unwind label %372

272:                                              ; preds = %270
  invoke void @_ZN3CNN7rereadyESt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS6_ESaISt4pairIKS6_S7_EEE(ptr noundef nonnull align 8 dereferenceable(5265) %271, ptr noundef %49)
          to label %273 unwind label %376

273:                                              ; preds = %272
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %49) #12
  call void @llvm.lifetime.start.p0(i64 48, ptr %50) #12
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %50) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr %51) #12
  %274 = load ptr, ptr %29, align 8, !tbaa !9
  invoke void @_ZNSt10shared_ptrIhEC2IhvEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %51, ptr noundef %274)
          to label %275 unwind label %380

275:                                              ; preds = %273
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #12
  %276 = getelementptr inbounds [4 x ptr], ptr %34, i64 0, i64 0
  %277 = load ptr, ptr %276, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %53) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef %277, ptr noundef nonnull align 1 dereferenceable(1) %53)
          to label %278 unwind label %384

278:                                              ; preds = %275
  %279 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %50, ptr noundef nonnull align 8 dereferenceable(32) %52)
          to label %280 unwind label %388

280:                                              ; preds = %278
  %281 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIhEaSEOS0_(ptr noundef nonnull align 8 dereferenceable(16) %279, ptr noundef nonnull align 8 dereferenceable(16) %51) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #12
  call void @_ZNSt12__shared_ptrIhLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %51) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %51) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr %54) #12
  %282 = getelementptr inbounds [220 x i32], ptr %23, i64 0, i64 0
  invoke void @"_ZNSt10shared_ptrIhEC2IhZ4mainE3$_0vEEPT_T0_"(ptr noundef nonnull align 8 dereferenceable(16) %54, ptr noundef %282)
          to label %283 unwind label %394

283:                                              ; preds = %280
  call void @llvm.lifetime.start.p0(i64 32, ptr %56) #12
  %284 = getelementptr inbounds [4 x ptr], ptr %34, i64 0, i64 1
  %285 = load ptr, ptr %284, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %57) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef %285, ptr noundef nonnull align 1 dereferenceable(1) %57)
          to label %286 unwind label %398

286:                                              ; preds = %283
  %287 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %50, ptr noundef nonnull align 8 dereferenceable(32) %56)
          to label %288 unwind label %402

288:                                              ; preds = %286
  %289 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIhEaSEOS0_(ptr noundef nonnull align 8 dereferenceable(16) %287, ptr noundef nonnull align 8 dereferenceable(16) %54) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #12
  call void @_ZNSt12__shared_ptrIhLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %54) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %54) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr %58) #12
  %290 = load ptr, ptr %24, align 8, !tbaa !9
  invoke void @_ZNSt10shared_ptrIhEC2IhvEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %58, ptr noundef %290)
          to label %291 unwind label %408

291:                                              ; preds = %288
  call void @llvm.lifetime.start.p0(i64 32, ptr %59) #12
  %292 = getelementptr inbounds [4 x ptr], ptr %34, i64 0, i64 2
  %293 = load ptr, ptr %292, align 16, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %60) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef %293, ptr noundef nonnull align 1 dereferenceable(1) %60)
          to label %294 unwind label %412

294:                                              ; preds = %291
  %295 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %50, ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %296 unwind label %416

296:                                              ; preds = %294
  %297 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIhEaSEOS0_(ptr noundef nonnull align 8 dereferenceable(16) %295, ptr noundef nonnull align 8 dereferenceable(16) %58) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #12
  call void @_ZNSt12__shared_ptrIhLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %58) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %58) #12
  call void @llvm.lifetime.start.p0(i64 16, ptr %61) #12
  %298 = load ptr, ptr %31, align 8, !tbaa !9
  invoke void @_ZNSt10shared_ptrIhEC2IhvEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %61, ptr noundef %298)
          to label %299 unwind label %422

299:                                              ; preds = %296
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #12
  %300 = getelementptr inbounds [4 x ptr], ptr %34, i64 0, i64 3
  %301 = load ptr, ptr %300, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef %301, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %302 unwind label %426

302:                                              ; preds = %299
  %303 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %50, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %304 unwind label %430

304:                                              ; preds = %302
  %305 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIhEaSEOS0_(ptr noundef nonnull align 8 dereferenceable(16) %303, ptr noundef nonnull align 8 dereferenceable(16) %61) #12
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #12
  call void @_ZNSt12__shared_ptrIhLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %61) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %61) #12
  %306 = call noundef ptr @_ZNKSt19__shared_ptr_accessI3CNNLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #12
  invoke void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEEC2ERKSE_(ptr noundef nonnull align 8 dereferenceable(48) %64, ptr noundef nonnull align 8 dereferenceable(48) %50)
          to label %307 unwind label %436

307:                                              ; preds = %304
  call void @llvm.memset.p0.i64(ptr align 8 %65, i8 0, i64 48, i1 false)
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPfSt4lessIS5_ESaISt4pairIKS5_S6_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %65) #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) %306, ptr noundef %64, ptr noundef %65)
          to label %308 unwind label %440

308:                                              ; preds = %307
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPfSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %65) #12
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %64) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #12
  %309 = invoke noundef double @_Z10ut_time_msv()
          to label %310 unwind label %444

310:                                              ; preds = %308
  store double %309, ptr %66, align 8, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #12
  store i32 0, ptr %67, align 4, !tbaa !5
  br label %311

311:                                              ; preds = %454, %310
  %312 = load i32, ptr %67, align 4, !tbaa !5
  %313 = load i32, ptr %15, align 4, !tbaa !5
  %314 = icmp slt i32 %312, %313
  br i1 %314, label %448, label %315

315:                                              ; preds = %311
  store i32 17, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #12
  br label %461

316:                                              ; preds = %239
  %317 = landingpad { ptr, i32 }
          cleanup
  %318 = extractvalue { ptr, i32 } %317, 0
  store ptr %318, ptr %9, align 8
  %319 = extractvalue { ptr, i32 } %317, 1
  store i32 %319, ptr %10, align 4
  br label %329

320:                                              ; preds = %242
  %321 = landingpad { ptr, i32 }
          cleanup
  %322 = extractvalue { ptr, i32 } %321, 0
  store ptr %322, ptr %9, align 8
  %323 = extractvalue { ptr, i32 } %321, 1
  store i32 %323, ptr %10, align 4
  br label %328

324:                                              ; preds = %245
  %325 = landingpad { ptr, i32 }
          cleanup
  %326 = extractvalue { ptr, i32 } %325, 0
  store ptr %326, ptr %9, align 8
  %327 = extractvalue { ptr, i32 } %325, 1
  store i32 %327, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #12
  br label %328

328:                                              ; preds = %324, %320
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #12
  br label %329

329:                                              ; preds = %328, %316
  call void @llvm.lifetime.end.p0(i64 92, ptr %37) #12
  br label %549

330:                                              ; preds = %247
  %331 = landingpad { ptr, i32 }
          cleanup
  %332 = extractvalue { ptr, i32 } %331, 0
  store ptr %332, ptr %9, align 8
  %333 = extractvalue { ptr, i32 } %331, 1
  store i32 %333, ptr %10, align 4
  br label %343

334:                                              ; preds = %250
  %335 = landingpad { ptr, i32 }
          cleanup
  %336 = extractvalue { ptr, i32 } %335, 0
  store ptr %336, ptr %9, align 8
  %337 = extractvalue { ptr, i32 } %335, 1
  store i32 %337, ptr %10, align 4
  br label %342

338:                                              ; preds = %253
  %339 = landingpad { ptr, i32 }
          cleanup
  %340 = extractvalue { ptr, i32 } %339, 0
  store ptr %340, ptr %9, align 8
  %341 = extractvalue { ptr, i32 } %339, 1
  store i32 %341, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #12
  br label %342

342:                                              ; preds = %338, %334
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #12
  br label %343

343:                                              ; preds = %342, %330
  call void @llvm.lifetime.end.p0(i64 92, ptr %40) #12
  br label %549

344:                                              ; preds = %255
  %345 = landingpad { ptr, i32 }
          cleanup
  %346 = extractvalue { ptr, i32 } %345, 0
  store ptr %346, ptr %9, align 8
  %347 = extractvalue { ptr, i32 } %345, 1
  store i32 %347, ptr %10, align 4
  br label %357

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

352:                                              ; preds = %261
  %353 = landingpad { ptr, i32 }
          cleanup
  %354 = extractvalue { ptr, i32 } %353, 0
  store ptr %354, ptr %9, align 8
  %355 = extractvalue { ptr, i32 } %353, 1
  store i32 %355, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #12
  br label %356

356:                                              ; preds = %352, %348
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #12
  br label %357

357:                                              ; preds = %356, %344
  call void @llvm.lifetime.end.p0(i64 92, ptr %43) #12
  br label %549

358:                                              ; preds = %263
  %359 = landingpad { ptr, i32 }
          cleanup
  %360 = extractvalue { ptr, i32 } %359, 0
  store ptr %360, ptr %9, align 8
  %361 = extractvalue { ptr, i32 } %359, 1
  store i32 %361, ptr %10, align 4
  br label %371

362:                                              ; preds = %265
  %363 = landingpad { ptr, i32 }
          cleanup
  %364 = extractvalue { ptr, i32 } %363, 0
  store ptr %364, ptr %9, align 8
  %365 = extractvalue { ptr, i32 } %363, 1
  store i32 %365, ptr %10, align 4
  br label %370

366:                                              ; preds = %268
  %367 = landingpad { ptr, i32 }
          cleanup
  %368 = extractvalue { ptr, i32 } %367, 0
  store ptr %368, ptr %9, align 8
  %369 = extractvalue { ptr, i32 } %367, 1
  store i32 %369, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #12
  br label %370

370:                                              ; preds = %366, %362
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #12
  br label %371

371:                                              ; preds = %370, %358
  call void @llvm.lifetime.end.p0(i64 92, ptr %46) #12
  br label %549

372:                                              ; preds = %270
  %373 = landingpad { ptr, i32 }
          cleanup
  %374 = extractvalue { ptr, i32 } %373, 0
  store ptr %374, ptr %9, align 8
  %375 = extractvalue { ptr, i32 } %373, 1
  store i32 %375, ptr %10, align 4
  br label %549

376:                                              ; preds = %272
  %377 = landingpad { ptr, i32 }
          cleanup
  %378 = extractvalue { ptr, i32 } %377, 0
  store ptr %378, ptr %9, align 8
  %379 = extractvalue { ptr, i32 } %377, 1
  store i32 %379, ptr %10, align 4
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %49) #12
  br label %549

380:                                              ; preds = %273
  %381 = landingpad { ptr, i32 }
          cleanup
  %382 = extractvalue { ptr, i32 } %381, 0
  store ptr %382, ptr %9, align 8
  %383 = extractvalue { ptr, i32 } %381, 1
  store i32 %383, ptr %10, align 4
  br label %393

384:                                              ; preds = %275
  %385 = landingpad { ptr, i32 }
          cleanup
  %386 = extractvalue { ptr, i32 } %385, 0
  store ptr %386, ptr %9, align 8
  %387 = extractvalue { ptr, i32 } %385, 1
  store i32 %387, ptr %10, align 4
  br label %392

388:                                              ; preds = %278
  %389 = landingpad { ptr, i32 }
          cleanup
  %390 = extractvalue { ptr, i32 } %389, 0
  store ptr %390, ptr %9, align 8
  %391 = extractvalue { ptr, i32 } %389, 1
  store i32 %391, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #12
  br label %392

392:                                              ; preds = %388, %384
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %53) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %53) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #12
  call void @_ZNSt12__shared_ptrIhLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %51) #12
  br label %393

393:                                              ; preds = %392, %380
  call void @llvm.lifetime.end.p0(i64 16, ptr %51) #12
  br label %548

394:                                              ; preds = %280
  %395 = landingpad { ptr, i32 }
          cleanup
  %396 = extractvalue { ptr, i32 } %395, 0
  store ptr %396, ptr %9, align 8
  %397 = extractvalue { ptr, i32 } %395, 1
  store i32 %397, ptr %10, align 4
  br label %407

398:                                              ; preds = %283
  %399 = landingpad { ptr, i32 }
          cleanup
  %400 = extractvalue { ptr, i32 } %399, 0
  store ptr %400, ptr %9, align 8
  %401 = extractvalue { ptr, i32 } %399, 1
  store i32 %401, ptr %10, align 4
  br label %406

402:                                              ; preds = %286
  %403 = landingpad { ptr, i32 }
          cleanup
  %404 = extractvalue { ptr, i32 } %403, 0
  store ptr %404, ptr %9, align 8
  %405 = extractvalue { ptr, i32 } %403, 1
  store i32 %405, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #12
  br label %406

406:                                              ; preds = %402, %398
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #12
  call void @_ZNSt12__shared_ptrIhLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %54) #12
  br label %407

407:                                              ; preds = %406, %394
  call void @llvm.lifetime.end.p0(i64 16, ptr %54) #12
  br label %548

408:                                              ; preds = %288
  %409 = landingpad { ptr, i32 }
          cleanup
  %410 = extractvalue { ptr, i32 } %409, 0
  store ptr %410, ptr %9, align 8
  %411 = extractvalue { ptr, i32 } %409, 1
  store i32 %411, ptr %10, align 4
  br label %421

412:                                              ; preds = %291
  %413 = landingpad { ptr, i32 }
          cleanup
  %414 = extractvalue { ptr, i32 } %413, 0
  store ptr %414, ptr %9, align 8
  %415 = extractvalue { ptr, i32 } %413, 1
  store i32 %415, ptr %10, align 4
  br label %420

416:                                              ; preds = %294
  %417 = landingpad { ptr, i32 }
          cleanup
  %418 = extractvalue { ptr, i32 } %417, 0
  store ptr %418, ptr %9, align 8
  %419 = extractvalue { ptr, i32 } %417, 1
  store i32 %419, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #12
  br label %420

420:                                              ; preds = %416, %412
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #12
  call void @_ZNSt12__shared_ptrIhLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %58) #12
  br label %421

421:                                              ; preds = %420, %408
  call void @llvm.lifetime.end.p0(i64 16, ptr %58) #12
  br label %548

422:                                              ; preds = %296
  %423 = landingpad { ptr, i32 }
          cleanup
  %424 = extractvalue { ptr, i32 } %423, 0
  store ptr %424, ptr %9, align 8
  %425 = extractvalue { ptr, i32 } %423, 1
  store i32 %425, ptr %10, align 4
  br label %435

426:                                              ; preds = %299
  %427 = landingpad { ptr, i32 }
          cleanup
  %428 = extractvalue { ptr, i32 } %427, 0
  store ptr %428, ptr %9, align 8
  %429 = extractvalue { ptr, i32 } %427, 1
  store i32 %429, ptr %10, align 4
  br label %434

430:                                              ; preds = %302
  %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 @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #12
  br label %434

434:                                              ; preds = %430, %426
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #12
  call void @_ZNSt12__shared_ptrIhLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %61) #12
  br label %435

435:                                              ; preds = %434, %422
  call void @llvm.lifetime.end.p0(i64 16, ptr %61) #12
  br label %548

436:                                              ; preds = %304
  %437 = landingpad { ptr, i32 }
          cleanup
  %438 = extractvalue { ptr, i32 } %437, 0
  store ptr %438, ptr %9, align 8
  %439 = extractvalue { ptr, i32 } %437, 1
  store i32 %439, ptr %10, align 4
  br label %548

440:                                              ; preds = %307
  %441 = landingpad { ptr, i32 }
          cleanup
  %442 = extractvalue { ptr, i32 } %441, 0
  store ptr %442, ptr %9, align 8
  %443 = extractvalue { ptr, i32 } %441, 1
  store i32 %443, ptr %10, align 4
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPfSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %65) #12
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %64) #12
  br label %548

444:                                              ; preds = %308
  %445 = landingpad { ptr, i32 }
          cleanup
  %446 = extractvalue { ptr, i32 } %445, 0
  store ptr %446, ptr %9, align 8
  %447 = extractvalue { ptr, i32 } %445, 1
  store i32 %447, ptr %10, align 4
  br label %547

448:                                              ; preds = %311
  %449 = call noundef ptr @_ZNKSt19__shared_ptr_accessI3CNNLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #12
  %450 = load ptr, ptr %449, align 8, !tbaa !44
  %451 = getelementptr inbounds ptr, ptr %450, i64 3
  %452 = load ptr, ptr %451, align 8
  invoke void %452(ptr noundef nonnull align 8 dereferenceable(5265) %449)
          to label %453 unwind label %457

453:                                              ; preds = %448
  br label %454

454:                                              ; preds = %453
  %455 = load i32, ptr %67, align 4, !tbaa !5
  %456 = add nsw i32 %455, 1
  store i32 %456, ptr %67, align 4, !tbaa !5
  br label %311, !llvm.loop !46

457:                                              ; preds = %448
  %458 = landingpad { ptr, i32 }
          cleanup
  %459 = extractvalue { ptr, i32 } %458, 0
  store ptr %459, ptr %9, align 8
  %460 = extractvalue { ptr, i32 } %458, 1
  store i32 %460, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #12
  br label %547

461:                                              ; preds = %315
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #12
  %462 = invoke noundef double @_Z10ut_time_msv()
          to label %463 unwind label %479

463:                                              ; preds = %461
  store double %462, ptr %68, align 8, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #12
  %464 = load double, ptr %68, align 8, !tbaa !42
  %465 = load double, ptr %66, align 8, !tbaa !42
  %466 = fsub double %464, %465
  store double %466, ptr %69, align 8, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 32, ptr %70) #12
  %467 = call noundef ptr @_ZNKSt19__shared_ptr_accessI3CNNLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #12
  %468 = getelementptr inbounds [1 x ptr], ptr %35, i64 0, i64 0
  %469 = load ptr, ptr %468, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %72) #12
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #12
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef %469, ptr noundef nonnull align 1 dereferenceable(1) %72)
          to label %470 unwind label %483

470:                                              ; preds = %463
  invoke void @_ZN3CNN18get_tensor_by_nameENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%class.Tensor) align 8 %70, ptr noundef nonnull align 8 dereferenceable(5265) %467, ptr noundef %71)
          to label %471 unwind label %487

471:                                              ; preds = %470
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #12
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %72) #12
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #12
  %472 = invoke noundef i32 @_ZN6Tensor6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %70)
          to label %473 unwind label %492

473:                                              ; preds = %471
  store i32 %472, ptr %73, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #12
  store i32 0, ptr %74, align 4, !tbaa !5
  br label %474

474:                                              ; preds = %529, %473
  %475 = load i32, ptr %74, align 4, !tbaa !5
  %476 = load i32, ptr %73, align 4, !tbaa !5
  %477 = icmp ult i32 %475, %476
  br i1 %477, label %496, label %478

478:                                              ; preds = %474
  store i32 20, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #12
  br label %533

479:                                              ; preds = %461
  %480 = landingpad { ptr, i32 }
          cleanup
  %481 = extractvalue { ptr, i32 } %480, 0
  store ptr %481, ptr %9, align 8
  %482 = extractvalue { ptr, i32 } %480, 1
  store i32 %482, ptr %10, align 4
  br label %546

483:                                              ; preds = %463
  %484 = landingpad { ptr, i32 }
          cleanup
  %485 = extractvalue { ptr, i32 } %484, 0
  store ptr %485, ptr %9, align 8
  %486 = extractvalue { ptr, i32 } %484, 1
  store i32 %486, ptr %10, align 4
  br label %491

487:                                              ; preds = %470
  %488 = landingpad { ptr, i32 }
          cleanup
  %489 = extractvalue { ptr, i32 } %488, 0
  store ptr %489, ptr %9, align 8
  %490 = extractvalue { ptr, i32 } %488, 1
  store i32 %490, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #12
  br label %491

491:                                              ; preds = %487, %483
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr %72) #12
  br label %545

492:                                              ; preds = %540, %533, %471
  %493 = landingpad { ptr, i32 }
          cleanup
  %494 = extractvalue { ptr, i32 } %493, 0
  store ptr %494, ptr %9, align 8
  %495 = extractvalue { ptr, i32 } %493, 1
  store i32 %495, ptr %10, align 4
  br label %544

496:                                              ; preds = %474
  %497 = load i32, ptr %74, align 4, !tbaa !5
  %498 = invoke noundef float @_ZN6Tensor7elementEj(ptr noundef nonnull align 8 dereferenceable(32) %70, i32 noundef %497)
          to label %499 unwind label %520

499:                                              ; preds = %496
  %500 = load i32, ptr %74, align 4, !tbaa !5
  %501 = zext i32 %500 to i64
  %502 = getelementptr inbounds [672 x i32], ptr %33, i64 0, i64 %501
  %503 = load i32, ptr %502, align 4, !tbaa !5
  %504 = sitofp i32 %503 to float
  %505 = fcmp une float %498, %504
  br i1 %505, label %506, label %528

506:                                              ; preds = %499
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #12
  %507 = call i64 (i64, ...) @syscall(i64 noundef 186) #12
  %508 = trunc i64 %507 to i32
  store i32 %508, ptr %75, align 4, !tbaa !5
  %509 = load i32, ptr %75, align 4, !tbaa !5
  %510 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.1, i32 noundef %509)
          to label %511 unwind label %524

511:                                              ; preds = %506
  %512 = load ptr, ptr @stdout, align 8, !tbaa !9
  %513 = invoke i32 @fflush(ptr noundef %512)
          to label %514 unwind label %524

514:                                              ; preds = %511
  %515 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.22)
          to label %516 unwind label %524

516:                                              ; preds = %514
  %517 = load ptr, ptr @stdout, align 8, !tbaa !9
  %518 = invoke i32 @fflush(ptr noundef %517)
          to label %519 unwind label %524

519:                                              ; preds = %516
  call void @exit(i32 noundef 1) #14
  unreachable

520:                                              ; preds = %496
  %521 = landingpad { ptr, i32 }
          cleanup
  %522 = extractvalue { ptr, i32 } %521, 0
  store ptr %522, ptr %9, align 8
  %523 = extractvalue { ptr, i32 } %521, 1
  store i32 %523, ptr %10, align 4
  br label %532

524:                                              ; preds = %516, %514, %511, %506
  %525 = landingpad { ptr, i32 }
          cleanup
  %526 = extractvalue { ptr, i32 } %525, 0
  store ptr %526, ptr %9, align 8
  %527 = extractvalue { ptr, i32 } %525, 1
  store i32 %527, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #12
  br label %532

528:                                              ; preds = %499
  br label %529

529:                                              ; preds = %528
  %530 = load i32, ptr %74, align 4, !tbaa !5
  %531 = add i32 %530, 1
  store i32 %531, ptr %74, align 4, !tbaa !5
  br label %474, !llvm.loop !47

532:                                              ; preds = %524, %520
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #12
  br label %544

533:                                              ; preds = %478
  %534 = load double, ptr %69, align 8, !tbaa !42
  %535 = fmul double 1.000000e+00, %534
  %536 = load i32, ptr %15, align 4, !tbaa !5
  %537 = sitofp i32 %536 to double
  %538 = fdiv double %535, %537
  %539 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.23, double noundef %538)
          to label %540 unwind label %492

540:                                              ; preds = %533
  %541 = load ptr, ptr @stdout, align 8, !tbaa !9
  %542 = invoke i32 @fflush(ptr noundef %541)
          to label %543 unwind label %492

543:                                              ; preds = %540
  store i32 0, ptr %3, align 4
  store i32 1, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #12
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %50) #12
  call void @llvm.lifetime.end.p0(i64 48, ptr %50) #12
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %36) #12
  call void @llvm.lifetime.end.p0(i64 48, ptr %36) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #12
  call void @llvm.lifetime.end.p0(i64 2688, ptr %33) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %25) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #12
  call void @llvm.lifetime.end.p0(i64 880, ptr %23) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #12
  call void @_ZNSt12__shared_ptrI3CNNLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #12
  br label %551

544:                                              ; preds = %532, %492
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #12
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #12
  br label %545

545:                                              ; preds = %544, %491
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #12
  br label %546

546:                                              ; preds = %545, %479
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #12
  br label %547

547:                                              ; preds = %546, %457, %444
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #12
  br label %548

548:                                              ; preds = %547, %440, %436, %435, %421, %407, %393
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %50) #12
  call void @llvm.lifetime.end.p0(i64 48, ptr %50) #12
  br label %549

549:                                              ; preds = %548, %376, %372, %371, %357, %343, %329
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %36) #12
  call void @llvm.lifetime.end.p0(i64 48, ptr %36) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #12
  call void @llvm.lifetime.end.p0(i64 2688, ptr %33) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr %25) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #12
  call void @llvm.lifetime.end.p0(i64 880, ptr %23) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #12
  br label %550

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

551:                                              ; preds = %543, %84
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #12
  call void @llvm.lifetime.end.p0(i64 152, ptr %6) #12
  %552 = load i32, ptr %3, align 4
  ret i32 %552

553:                                              ; preds = %550, %93
  call void @llvm.lifetime.end.p0(i64 152, ptr %6) #12
  br label %554

554:                                              ; preds = %553
  %555 = load ptr, ptr %9, align 8
  %556 = load i32, ptr %10, align 4
  %557 = insertvalue { ptr, i32 } poison, ptr %555, 0
  %558 = insertvalue { ptr, i32 } %557, i32 %556, 1
  resume { ptr, i32 } %558
}

; 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: 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: nounwind allocsize(0)
declare noalias ptr @malloc(i64 noundef) #10

; 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 dso_local void @_ZNSt10shared_ptrIhEC2IhvEEPT_(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$_0vEEPT_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) #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() #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: 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 = { nounwind allocsize(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 #11 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #12 = { nounwind }
attributes #13 = { nounwind allocsize(0) }
attributes #14 = { 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 = !{!18, !18, i64 0}
!30 = distinct !{!30, !31}
!31 = !{!"llvm.loop.mustprogress"}
!32 = distinct !{!32, !31}
!33 = distinct !{!33, !31}
!34 = distinct !{!34, !31}
!35 = distinct !{!35, !31}
!36 = !{i64 0, i64 4, !37, i64 4, i64 4, !39, i64 8, i64 4, !5, i64 12, i64 80, !41}
!37 = !{!38, !38, i64 0}
!38 = !{!"_ZTS8DataType", !7, i64 0}
!39 = !{!40, !40, i64 0}
!40 = !{!"_ZTS10DataFormat", !7, i64 0}
!41 = !{!7, !7, i64 0}
!42 = !{!43, !43, i64 0}
!43 = !{!"double", !7, i64 0}
!44 = !{!45, !45, i64 0}
!45 = !{!"vtable pointer", !8, i64 0}
!46 = distinct !{!46, !31}
!47 = distinct !{!47, !31}


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

%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.102" = type { %"class.std::_Rb_tree.103" }
%"class.std::_Rb_tree.103" = 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 <{ [188 x i32], [32 x i32] }>, align 16
@__const.main.h_sequence_length = external hidden unnamed_addr constant [4 x i32], align 16
@__const.main.trueRes = external hidden unnamed_addr constant <{ [535 x i32], [137 x i32] }>, align 16
@__const.main.inputNames = external hidden unnamed_addr constant [4 x ptr], align 16
@__const.main.outputNames = external hidden unnamed_addr constant [1 x ptr], align 8
@.str.22 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.23 = 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 [220 x i32], align 16
  %9 = alloca %"class.std::map", align 8
  %10 = alloca %struct.TensorDesc, align 4
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::allocator.11", align 1
  %13 = alloca %struct.TensorDesc, align 4
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::allocator.11", align 1
  %16 = alloca %struct.TensorDesc, align 4
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::allocator.11", align 1
  %19 = alloca %struct.TensorDesc, align 4
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::allocator.11", align 1
  %22 = alloca %"class.std::map", align 8
  %23 = alloca %"class.std::map.97", align 8
  %24 = alloca %"class.std::shared_ptr.8", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator.11", align 1
  %27 = alloca %"class.std::shared_ptr.8", align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::allocator.11", align 1
  %30 = alloca %"class.std::shared_ptr.8", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator.11", align 1
  %33 = alloca %"class.std::shared_ptr.8", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::allocator.11", align 1
  %36 = alloca %"class.std::map.97", align 8
  %37 = alloca %"class.std::map.102", align 8
  %38 = alloca %class.Tensor, align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator.11", align 1
  call void @llvm.lifetime.start.p0(i64 152, ptr nonnull %3) #13
  call void @_ZN8ParseResC2Ev(ptr noundef nonnull align 8 dereferenceable(152) %3)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #13
  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 %41 unwind label %46

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

42:                                               ; preds = %41
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #13
  %43 = getelementptr inbounds i8, ptr %3, i64 8
  %44 = load i8, ptr %43, align 8, !tbaa !5, !range !18, !noundef !19
  %45 = trunc nuw i8 %44 to i1
  br i1 %45, label %51, label %387

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

48:                                               ; preds = %41
  %49 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #13
  br label %50

50:                                               ; preds = %48, %46
  %.pn = phi { ptr, i32 } [ %49, %48 ], [ %47, %46 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #13
  br label %388

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

.preheader149:                                    ; preds = %51
  %68 = 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) #13
  call void @_ZNSt12__shared_ptrI3CNNLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %7) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #13
  call void @llvm.lifetime.start.p0(i64 880, ptr nonnull %8) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(880) %8, ptr noundef nonnull align 16 dereferenceable(880) @__const.main.input_ids, i64 880, i1 false)
  %69 = call noalias dereferenceable_or_null(880) ptr @malloc(i64 noundef 880) #14
  %70 = load i32, ptr @__const.main.h_sequence_length, align 16, !tbaa !24
  %.not = icmp eq i32 %70, 0
  br i1 %.not, label %.lr.ph152, label %.lr.ph

.lr.ph:                                           ; preds = %.preheader149
  %wide.trip.count = zext i32 %70 to i64
  %min.iters.check = icmp ult i32 %70, 8
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.ph

scalar.ph.preheader:                              ; preds = %middle.block, %.lr.ph
  %indvars.iv.ph = phi i64 [ 0, %.lr.ph ], [ %n.vec, %middle.block ]
  br label %scalar.ph

vector.ph:                                        ; preds = %.lr.ph
  %n.vec = and i64 %wide.trip.count, 4294967288
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %71 = and i64 %index, 4294967288
  %72 = getelementptr inbounds float, ptr %69, i64 %71
  %73 = getelementptr inbounds i8, ptr %72, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %72, align 4, !tbaa !25
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %73, align 4, !tbaa !25
  %index.next = add nuw i64 %index, 8
  %74 = icmp eq i64 %index.next, %n.vec
  br i1 %74, label %middle.block, label %vector.body, !llvm.loop !26

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %n.vec, %wide.trip.count
  br i1 %cmp.n, label %.preheader148, label %scalar.ph.preheader

75:                                               ; preds = %51
  %76 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #13
  br label %386

.preheader148:                                    ; preds = %scalar.ph, %middle.block
  %77 = icmp ult i32 %70, 55
  br i1 %77, label %.lr.ph152, label %._crit_edge

.lr.ph152:                                        ; preds = %.preheader149, %.preheader148
  %78 = shl nuw nsw i32 %70, 2
  %79 = zext nneg i32 %78 to i64
  %scevgep = getelementptr i8, ptr %69, i64 %79
  %80 = shl i32 %70, 2
  %81 = sub i32 216, %80
  %82 = zext i32 %81 to i64
  %83 = add nuw nsw i64 %82, 4
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(1) %scevgep, i8 0, i64 %83, i1 false), !tbaa !25
  br label %._crit_edge

scalar.ph:                                        ; preds = %scalar.ph.preheader, %scalar.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %scalar.ph ], [ %indvars.iv.ph, %scalar.ph.preheader ]
  %84 = and i64 %indvars.iv, 4294967295
  %85 = getelementptr inbounds float, ptr %69, i64 %84
  store float 1.000000e+00, ptr %85, align 4, !tbaa !25
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %.preheader148, label %scalar.ph, !llvm.loop !30

._crit_edge:                                      ; preds = %.lr.ph152, %.preheader148
  %86 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.h_sequence_length, i64 4), align 4, !tbaa !24
  %.not.1 = icmp eq i32 %86, 0
  br i1 %.not.1, label %.lr.ph152.1, label %.lr.ph.1

.lr.ph.1:                                         ; preds = %._crit_edge
  %wide.trip.count.1 = zext i32 %86 to i64
  %min.iters.check187 = icmp ult i32 %86, 12
  br i1 %min.iters.check187, label %scalar.ph186.preheader, label %vector.scevcheck

vector.scevcheck:                                 ; preds = %.lr.ph.1
  %87 = add nsw i64 %wide.trip.count.1, -1
  %88 = trunc i64 %87 to i32
  %89 = icmp ugt i32 %88, -56
  %90 = icmp ugt i64 %87, 4294967295
  %91 = or i1 %89, %90
  br i1 %91, label %scalar.ph186.preheader, label %vector.ph188

vector.ph188:                                     ; preds = %vector.scevcheck
  %n.vec190 = and i64 %wide.trip.count.1, 4294967288
  br label %vector.body192

vector.body192:                                   ; preds = %vector.body192, %vector.ph188
  %index193 = phi i64 [ 0, %vector.ph188 ], [ %index.next194, %vector.body192 ]
  %92 = add nuw i64 %index193, 55
  %93 = and i64 %92, 4294967295
  %94 = getelementptr inbounds float, ptr %69, i64 %93
  %95 = getelementptr inbounds i8, ptr %94, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %94, align 4, !tbaa !25
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %95, align 4, !tbaa !25
  %index.next194 = add nuw i64 %index193, 8
  %96 = icmp eq i64 %index.next194, %n.vec190
  br i1 %96, label %middle.block185, label %vector.body192, !llvm.loop !31

middle.block185:                                  ; preds = %vector.body192
  %cmp.n195 = icmp eq i64 %n.vec190, %wide.trip.count.1
  br i1 %cmp.n195, label %.preheader148.1, label %scalar.ph186.preheader

scalar.ph186.preheader:                           ; preds = %middle.block185, %vector.scevcheck, %.lr.ph.1
  %indvars.iv.1.ph = phi i64 [ 0, %vector.scevcheck ], [ 0, %.lr.ph.1 ], [ %n.vec190, %middle.block185 ]
  %xtraiter = and i64 %wide.trip.count.1, 3
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %scalar.ph186.prol.loopexit, label %scalar.ph186.prol

scalar.ph186.prol:                                ; preds = %scalar.ph186.preheader, %scalar.ph186.prol
  %indvars.iv.1.prol = phi i64 [ %indvars.iv.next.1.prol, %scalar.ph186.prol ], [ %indvars.iv.1.ph, %scalar.ph186.preheader ]
  %prol.iter = phi i64 [ %prol.iter.next, %scalar.ph186.prol ], [ 0, %scalar.ph186.preheader ]
  %97 = add nuw i64 %indvars.iv.1.prol, 55
  %98 = and i64 %97, 4294967295
  %99 = getelementptr inbounds float, ptr %69, i64 %98
  store float 1.000000e+00, ptr %99, align 4, !tbaa !25
  %indvars.iv.next.1.prol = add nuw nsw i64 %indvars.iv.1.prol, 1
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter
  br i1 %prol.iter.cmp.not, label %scalar.ph186.prol.loopexit, label %scalar.ph186.prol, !llvm.loop !32

scalar.ph186.prol.loopexit:                       ; preds = %scalar.ph186.prol, %scalar.ph186.preheader
  %indvars.iv.1.unr = phi i64 [ %indvars.iv.1.ph, %scalar.ph186.preheader ], [ %indvars.iv.next.1.prol, %scalar.ph186.prol ]
  %100 = sub nsw i64 %indvars.iv.1.ph, %wide.trip.count.1
  %101 = icmp ugt i64 %100, -4
  br i1 %101, label %.preheader148.1, label %scalar.ph186

scalar.ph186:                                     ; preds = %scalar.ph186.prol.loopexit, %scalar.ph186
  %indvars.iv.1 = phi i64 [ %indvars.iv.next.1.3, %scalar.ph186 ], [ %indvars.iv.1.unr, %scalar.ph186.prol.loopexit ]
  %102 = add nuw i64 %indvars.iv.1, 55
  %103 = and i64 %102, 4294967295
  %104 = getelementptr inbounds float, ptr %69, i64 %103
  store float 1.000000e+00, ptr %104, align 4, !tbaa !25
  %105 = add nuw i64 %indvars.iv.1, 56
  %106 = and i64 %105, 4294967295
  %107 = getelementptr inbounds float, ptr %69, i64 %106
  store float 1.000000e+00, ptr %107, align 4, !tbaa !25
  %108 = add nuw i64 %indvars.iv.1, 57
  %109 = and i64 %108, 4294967295
  %110 = getelementptr inbounds float, ptr %69, i64 %109
  store float 1.000000e+00, ptr %110, align 4, !tbaa !25
  %111 = add nuw i64 %indvars.iv.1, 58
  %112 = and i64 %111, 4294967295
  %113 = getelementptr inbounds float, ptr %69, i64 %112
  store float 1.000000e+00, ptr %113, align 4, !tbaa !25
  %indvars.iv.next.1.3 = add nuw nsw i64 %indvars.iv.1, 4
  %exitcond.1.not.3 = icmp eq i64 %indvars.iv.next.1.3, %wide.trip.count.1
  br i1 %exitcond.1.not.3, label %.preheader148.1, label %scalar.ph186, !llvm.loop !34

.preheader148.1:                                  ; preds = %scalar.ph186.prol.loopexit, %scalar.ph186, %middle.block185
  %114 = icmp ult i32 %86, 55
  br i1 %114, label %.lr.ph152.1, label %._crit_edge.1

.lr.ph152.1:                                      ; preds = %._crit_edge, %.preheader148.1
  %115 = shl nuw nsw i32 %86, 2
  %116 = zext nneg i32 %115 to i64
  %117 = getelementptr i8, ptr %69, i64 %116
  %scevgep.1 = getelementptr i8, ptr %117, i64 220
  %118 = shl i32 %86, 2
  %119 = sub i32 216, %118
  %120 = zext i32 %119 to i64
  %121 = add nuw nsw i64 %120, 4
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(1) %scevgep.1, i8 0, i64 %121, i1 false), !tbaa !25
  br label %._crit_edge.1

._crit_edge.1:                                    ; preds = %.lr.ph152.1, %.preheader148.1
  %122 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.h_sequence_length, i64 8), align 8, !tbaa !24
  %.not.2 = icmp eq i32 %122, 0
  br i1 %.not.2, label %.lr.ph152.2, label %.lr.ph.2

.lr.ph.2:                                         ; preds = %._crit_edge.1
  %wide.trip.count.2 = zext i32 %122 to i64
  %min.iters.check199 = icmp ult i32 %122, 12
  br i1 %min.iters.check199, label %scalar.ph198.preheader, label %vector.scevcheck196

vector.scevcheck196:                              ; preds = %.lr.ph.2
  %123 = add nsw i64 %wide.trip.count.2, -1
  %124 = trunc i64 %123 to i32
  %125 = icmp ugt i32 %124, -111
  %126 = icmp ugt i64 %123, 4294967295
  %127 = or i1 %125, %126
  br i1 %127, label %scalar.ph198.preheader, label %vector.ph200

vector.ph200:                                     ; preds = %vector.scevcheck196
  %n.vec202 = and i64 %wide.trip.count.2, 4294967288
  br label %vector.body204

vector.body204:                                   ; preds = %vector.body204, %vector.ph200
  %index205 = phi i64 [ 0, %vector.ph200 ], [ %index.next206, %vector.body204 ]
  %128 = add nuw i64 %index205, 110
  %129 = and i64 %128, 4294967294
  %130 = getelementptr inbounds float, ptr %69, i64 %129
  %131 = getelementptr inbounds i8, ptr %130, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %130, align 4, !tbaa !25
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %131, align 4, !tbaa !25
  %index.next206 = add nuw i64 %index205, 8
  %132 = icmp eq i64 %index.next206, %n.vec202
  br i1 %132, label %middle.block197, label %vector.body204, !llvm.loop !35

middle.block197:                                  ; preds = %vector.body204
  %cmp.n207 = icmp eq i64 %n.vec202, %wide.trip.count.2
  br i1 %cmp.n207, label %.preheader148.2, label %scalar.ph198.preheader

scalar.ph198.preheader:                           ; preds = %middle.block197, %vector.scevcheck196, %.lr.ph.2
  %indvars.iv.2.ph = phi i64 [ 0, %vector.scevcheck196 ], [ 0, %.lr.ph.2 ], [ %n.vec202, %middle.block197 ]
  %xtraiter238 = and i64 %wide.trip.count.2, 3
  %lcmp.mod239.not = icmp eq i64 %xtraiter238, 0
  br i1 %lcmp.mod239.not, label %scalar.ph198.prol.loopexit, label %scalar.ph198.prol

scalar.ph198.prol:                                ; preds = %scalar.ph198.preheader, %scalar.ph198.prol
  %indvars.iv.2.prol = phi i64 [ %indvars.iv.next.2.prol, %scalar.ph198.prol ], [ %indvars.iv.2.ph, %scalar.ph198.preheader ]
  %prol.iter240 = phi i64 [ %prol.iter240.next, %scalar.ph198.prol ], [ 0, %scalar.ph198.preheader ]
  %133 = add nuw i64 %indvars.iv.2.prol, 110
  %134 = and i64 %133, 4294967295
  %135 = getelementptr inbounds float, ptr %69, i64 %134
  store float 1.000000e+00, ptr %135, align 4, !tbaa !25
  %indvars.iv.next.2.prol = add nuw nsw i64 %indvars.iv.2.prol, 1
  %prol.iter240.next = add i64 %prol.iter240, 1
  %prol.iter240.cmp.not = icmp eq i64 %prol.iter240.next, %xtraiter238
  br i1 %prol.iter240.cmp.not, label %scalar.ph198.prol.loopexit, label %scalar.ph198.prol, !llvm.loop !36

scalar.ph198.prol.loopexit:                       ; preds = %scalar.ph198.prol, %scalar.ph198.preheader
  %indvars.iv.2.unr = phi i64 [ %indvars.iv.2.ph, %scalar.ph198.preheader ], [ %indvars.iv.next.2.prol, %scalar.ph198.prol ]
  %136 = sub nsw i64 %indvars.iv.2.ph, %wide.trip.count.2
  %137 = icmp ugt i64 %136, -4
  br i1 %137, label %.preheader148.2, label %scalar.ph198

scalar.ph198:                                     ; preds = %scalar.ph198.prol.loopexit, %scalar.ph198
  %indvars.iv.2 = phi i64 [ %indvars.iv.next.2.3, %scalar.ph198 ], [ %indvars.iv.2.unr, %scalar.ph198.prol.loopexit ]
  %138 = add nuw i64 %indvars.iv.2, 110
  %139 = and i64 %138, 4294967295
  %140 = getelementptr inbounds float, ptr %69, i64 %139
  store float 1.000000e+00, ptr %140, align 4, !tbaa !25
  %141 = add nuw i64 %indvars.iv.2, 111
  %142 = and i64 %141, 4294967295
  %143 = getelementptr inbounds float, ptr %69, i64 %142
  store float 1.000000e+00, ptr %143, align 4, !tbaa !25
  %144 = add nuw i64 %indvars.iv.2, 112
  %145 = and i64 %144, 4294967295
  %146 = getelementptr inbounds float, ptr %69, i64 %145
  store float 1.000000e+00, ptr %146, align 4, !tbaa !25
  %147 = add nuw i64 %indvars.iv.2, 113
  %148 = and i64 %147, 4294967295
  %149 = getelementptr inbounds float, ptr %69, i64 %148
  store float 1.000000e+00, ptr %149, align 4, !tbaa !25
  %indvars.iv.next.2.3 = add nuw nsw i64 %indvars.iv.2, 4
  %exitcond.2.not.3 = icmp eq i64 %indvars.iv.next.2.3, %wide.trip.count.2
  br i1 %exitcond.2.not.3, label %.preheader148.2, label %scalar.ph198, !llvm.loop !37

.preheader148.2:                                  ; preds = %scalar.ph198.prol.loopexit, %scalar.ph198, %middle.block197
  %150 = icmp ult i32 %122, 55
  br i1 %150, label %.lr.ph152.2, label %._crit_edge.2

.lr.ph152.2:                                      ; preds = %._crit_edge.1, %.preheader148.2
  %151 = shl nuw nsw i32 %122, 2
  %152 = zext nneg i32 %151 to i64
  %153 = getelementptr i8, ptr %69, i64 %152
  %scevgep.2 = getelementptr i8, ptr %153, i64 440
  %154 = shl i32 %122, 2
  %155 = sub i32 216, %154
  %156 = zext i32 %155 to i64
  %157 = add nuw nsw i64 %156, 4
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(1) %scevgep.2, i8 0, i64 %157, i1 false), !tbaa !25
  br label %._crit_edge.2

._crit_edge.2:                                    ; preds = %.lr.ph152.2, %.preheader148.2
  %158 = load i32, ptr getelementptr inbounds (i8, ptr @__const.main.h_sequence_length, i64 12), align 4, !tbaa !24
  %.not.3 = icmp eq i32 %158, 0
  br i1 %.not.3, label %.lr.ph152.3, label %.lr.ph.3

.lr.ph.3:                                         ; preds = %._crit_edge.2
  %wide.trip.count.3 = zext i32 %158 to i64
  %min.iters.check211 = icmp ult i32 %158, 12
  br i1 %min.iters.check211, label %scalar.ph210.preheader, label %vector.scevcheck208

vector.scevcheck208:                              ; preds = %.lr.ph.3
  %159 = add nsw i64 %wide.trip.count.3, -1
  %160 = trunc i64 %159 to i32
  %161 = icmp ugt i32 %160, -166
  %162 = icmp ugt i64 %159, 4294967295
  %163 = or i1 %161, %162
  br i1 %163, label %scalar.ph210.preheader, label %vector.ph212

vector.ph212:                                     ; preds = %vector.scevcheck208
  %n.vec214 = and i64 %wide.trip.count.3, 4294967288
  br label %vector.body216

vector.body216:                                   ; preds = %vector.body216, %vector.ph212
  %index217 = phi i64 [ 0, %vector.ph212 ], [ %index.next218, %vector.body216 ]
  %164 = add nuw i64 %index217, 165
  %165 = and i64 %164, 4294967293
  %166 = getelementptr inbounds float, ptr %69, i64 %165
  %167 = getelementptr inbounds i8, ptr %166, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %166, align 4, !tbaa !25
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %167, align 4, !tbaa !25
  %index.next218 = add nuw i64 %index217, 8
  %168 = icmp eq i64 %index.next218, %n.vec214
  br i1 %168, label %middle.block209, label %vector.body216, !llvm.loop !38

middle.block209:                                  ; preds = %vector.body216
  %cmp.n219 = icmp eq i64 %n.vec214, %wide.trip.count.3
  br i1 %cmp.n219, label %.preheader148.3, label %scalar.ph210.preheader

scalar.ph210.preheader:                           ; preds = %middle.block209, %vector.scevcheck208, %.lr.ph.3
  %indvars.iv.3.ph = phi i64 [ 0, %vector.scevcheck208 ], [ 0, %.lr.ph.3 ], [ %n.vec214, %middle.block209 ]
  %xtraiter241 = and i64 %wide.trip.count.3, 3
  %lcmp.mod242.not = icmp eq i64 %xtraiter241, 0
  br i1 %lcmp.mod242.not, label %scalar.ph210.prol.loopexit, label %scalar.ph210.prol

scalar.ph210.prol:                                ; preds = %scalar.ph210.preheader, %scalar.ph210.prol
  %indvars.iv.3.prol = phi i64 [ %indvars.iv.next.3.prol, %scalar.ph210.prol ], [ %indvars.iv.3.ph, %scalar.ph210.preheader ]
  %prol.iter243 = phi i64 [ %prol.iter243.next, %scalar.ph210.prol ], [ 0, %scalar.ph210.preheader ]
  %169 = add nuw i64 %indvars.iv.3.prol, 165
  %170 = and i64 %169, 4294967295
  %171 = getelementptr inbounds float, ptr %69, i64 %170
  store float 1.000000e+00, ptr %171, align 4, !tbaa !25
  %indvars.iv.next.3.prol = add nuw nsw i64 %indvars.iv.3.prol, 1
  %prol.iter243.next = add i64 %prol.iter243, 1
  %prol.iter243.cmp.not = icmp eq i64 %prol.iter243.next, %xtraiter241
  br i1 %prol.iter243.cmp.not, label %scalar.ph210.prol.loopexit, label %scalar.ph210.prol, !llvm.loop !39

scalar.ph210.prol.loopexit:                       ; preds = %scalar.ph210.prol, %scalar.ph210.preheader
  %indvars.iv.3.unr = phi i64 [ %indvars.iv.3.ph, %scalar.ph210.preheader ], [ %indvars.iv.next.3.prol, %scalar.ph210.prol ]
  %172 = sub nsw i64 %indvars.iv.3.ph, %wide.trip.count.3
  %173 = icmp ugt i64 %172, -4
  br i1 %173, label %.preheader148.3, label %scalar.ph210

scalar.ph210:                                     ; preds = %scalar.ph210.prol.loopexit, %scalar.ph210
  %indvars.iv.3 = phi i64 [ %indvars.iv.next.3.3, %scalar.ph210 ], [ %indvars.iv.3.unr, %scalar.ph210.prol.loopexit ]
  %174 = add nuw i64 %indvars.iv.3, 165
  %175 = and i64 %174, 4294967295
  %176 = getelementptr inbounds float, ptr %69, i64 %175
  store float 1.000000e+00, ptr %176, align 4, !tbaa !25
  %177 = add nuw i64 %indvars.iv.3, 166
  %178 = and i64 %177, 4294967295
  %179 = getelementptr inbounds float, ptr %69, i64 %178
  store float 1.000000e+00, ptr %179, align 4, !tbaa !25
  %180 = add nuw i64 %indvars.iv.3, 167
  %181 = and i64 %180, 4294967295
  %182 = getelementptr inbounds float, ptr %69, i64 %181
  store float 1.000000e+00, ptr %182, align 4, !tbaa !25
  %183 = add nuw i64 %indvars.iv.3, 168
  %184 = and i64 %183, 4294967295
  %185 = getelementptr inbounds float, ptr %69, i64 %184
  store float 1.000000e+00, ptr %185, align 4, !tbaa !25
  %indvars.iv.next.3.3 = add nuw nsw i64 %indvars.iv.3, 4
  %exitcond.3.not.3 = icmp eq i64 %indvars.iv.next.3.3, %wide.trip.count.3
  br i1 %exitcond.3.not.3, label %.preheader148.3, label %scalar.ph210, !llvm.loop !40

.preheader148.3:                                  ; preds = %scalar.ph210.prol.loopexit, %scalar.ph210, %middle.block209
  %186 = icmp ult i32 %158, 55
  br i1 %186, label %.lr.ph152.3, label %._crit_edge.3

.lr.ph152.3:                                      ; preds = %._crit_edge.2, %.preheader148.3
  %187 = shl nuw nsw i32 %158, 2
  %188 = zext nneg i32 %187 to i64
  %189 = getelementptr i8, ptr %69, i64 %188
  %scevgep.3 = getelementptr i8, ptr %189, i64 660
  %190 = shl i32 %158, 2
  %191 = sub i32 216, %190
  %192 = zext i32 %191 to i64
  %193 = add nuw nsw i64 %192, 4
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(1) %scevgep.3, i8 0, i64 %193, i1 false), !tbaa !25
  br label %._crit_edge.3

._crit_edge.3:                                    ; preds = %.lr.ph152.3, %.preheader148.3
  %194 = call noalias dereferenceable_or_null(880) ptr @malloc(i64 noundef 880) #14
  br label %vector.body224

vector.body224:                                   ; preds = %vector.body224.1, %._crit_edge.3
  %index225 = phi i64 [ 0, %._crit_edge.3 ], [ %index.next226.1, %vector.body224.1 ]
  %vec.ind = phi <4 x i8> [ <i8 0, i8 1, i8 2, i8 3>, %._crit_edge.3 ], [ %vec.ind.next.1, %vector.body224.1 ]
  %195 = urem <4 x i8> %vec.ind, <i8 55, i8 55, i8 55, i8 55>
  %196 = zext nneg <4 x i8> %195 to <4 x i32>
  %197 = getelementptr inbounds i32, ptr %194, i64 %index225
  store <4 x i32> %196, ptr %197, align 4, !tbaa !24
  %198 = icmp eq i64 %index225, 216
  br i1 %198, label %middle.block220, label %vector.body224.1, !llvm.loop !41

vector.body224.1:                                 ; preds = %vector.body224
  %index.next226 = or disjoint i64 %index225, 4
  %vec.ind.next = add <4 x i8> %vec.ind, <i8 4, i8 4, i8 4, i8 4>
  %199 = urem <4 x i8> %vec.ind.next, <i8 55, i8 55, i8 55, i8 55>
  %200 = zext nneg <4 x i8> %199 to <4 x i32>
  %201 = getelementptr inbounds i32, ptr %194, i64 %index.next226
  store <4 x i32> %200, ptr %201, align 4, !tbaa !24
  %index.next226.1 = add nuw nsw i64 %index225, 8
  %vec.ind.next.1 = add <4 x i8> %vec.ind, <i8 8, i8 8, i8 8, i8 8>
  br label %vector.body224

middle.block220:                                  ; preds = %vector.body224
  %202 = call noalias dereferenceable_or_null(100400) ptr @malloc(i64 noundef 100400) #14
  br label %vector.body231

vector.body231:                                   ; preds = %vector.body231.1, %middle.block220
  %index232 = phi i64 [ 0, %middle.block220 ], [ %index.next236.3, %vector.body231.1 ]
  %vec.ind233 = phi <4 x i32> [ <i32 0, i32 1, i32 2, i32 3>, %middle.block220 ], [ %vec.ind.next235.3, %vector.body231.1 ]
  %step.add = add <4 x i32> %vec.ind233, <i32 4, i32 4, i32 4, i32 4>
  %203 = getelementptr inbounds i32, ptr %202, i64 %index232
  %204 = getelementptr inbounds i8, ptr %203, i64 16
  store <4 x i32> %vec.ind233, ptr %203, align 4, !tbaa !24
  store <4 x i32> %step.add, ptr %204, align 4, !tbaa !24
  %205 = icmp eq i64 %index232, 25088
  br i1 %205, label %scalar.ph228, label %vector.body231.1, !llvm.loop !42

vector.body231.1:                                 ; preds = %vector.body231
  %index.next236 = or disjoint i64 %index232, 8
  %vec.ind.next235 = add <4 x i32> %vec.ind233, <i32 8, i32 8, i32 8, i32 8>
  %step.add.1 = add <4 x i32> %vec.ind233, <i32 12, i32 12, i32 12, i32 12>
  %206 = getelementptr inbounds i32, ptr %202, i64 %index.next236
  %207 = getelementptr inbounds i8, ptr %206, i64 16
  store <4 x i32> %vec.ind.next235, ptr %206, align 4, !tbaa !24
  store <4 x i32> %step.add.1, ptr %207, align 4, !tbaa !24
  %index.next236.1 = or disjoint i64 %index232, 16
  %vec.ind.next235.1 = add <4 x i32> %vec.ind233, <i32 16, i32 16, i32 16, i32 16>
  %step.add.2 = add <4 x i32> %vec.ind233, <i32 20, i32 20, i32 20, i32 20>
  %208 = getelementptr inbounds i32, ptr %202, i64 %index.next236.1
  %209 = getelementptr inbounds i8, ptr %208, i64 16
  store <4 x i32> %vec.ind.next235.1, ptr %208, align 4, !tbaa !24
  store <4 x i32> %step.add.2, ptr %209, align 4, !tbaa !24
  %index.next236.2 = or disjoint i64 %index232, 24
  %vec.ind.next235.2 = add <4 x i32> %vec.ind233, <i32 24, i32 24, i32 24, i32 24>
  %step.add.3 = add <4 x i32> %vec.ind233, <i32 28, i32 28, i32 28, i32 28>
  %210 = getelementptr inbounds i32, ptr %202, i64 %index.next236.2
  %211 = getelementptr inbounds i8, ptr %210, i64 16
  store <4 x i32> %vec.ind.next235.2, ptr %210, align 4, !tbaa !24
  store <4 x i32> %step.add.3, ptr %211, align 4, !tbaa !24
  %index.next236.3 = add nuw nsw i64 %index232, 32
  %vec.ind.next235.3 = add <4 x i32> %vec.ind233, <i32 32, i32 32, i32 32, i32 32>
  br label %vector.body231

scalar.ph228:                                     ; preds = %vector.body231
  %212 = getelementptr inbounds i8, ptr %202, i64 100384
  store i32 25096, ptr %212, align 4, !tbaa !24
  %213 = getelementptr inbounds i8, ptr %202, i64 100388
  store i32 25097, ptr %213, align 4, !tbaa !24
  %214 = getelementptr inbounds i8, ptr %202, i64 100392
  store i32 25098, ptr %214, align 4, !tbaa !24
  %215 = getelementptr inbounds i8, ptr %202, i64 100396
  store i32 25099, ptr %215, align 4, !tbaa !24
  %.sroa.010.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.10.0.copyload = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.inputNames, i64 24), align 8
  %.sroa.0.0.copyload = load ptr, ptr @__const.main.outputNames, align 8
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %9) #13
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %9) #13
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %10) #13
  invoke void @_Z8tensor2d8DataTypejj(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %10, i32 noundef 2, i32 noundef 4, i32 noundef 55)
          to label %216 unwind label %261

216:                                              ; preds = %scalar.ph228
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef %.sroa.010.0.copyload, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %217 unwind label %263

217:                                              ; preds = %216
  %218 = invoke noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %9, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %219 unwind label %265

219:                                              ; preds = %217
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(92) %218, ptr noundef nonnull align 4 dereferenceable(92) %10, i64 92, i1 false), !tbaa.struct !43
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #13
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %10) #13
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %13) #13
  invoke void @_Z8tensor2d8DataTypejj(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %13, i32 noundef 2, i32 noundef 4, i32 noundef 55)
          to label %220 unwind label %269

220:                                              ; preds = %219
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %15) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef %.sroa.6.0.copyload, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %221 unwind label %271

221:                                              ; preds = %220
  %222 = invoke noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %9, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %223 unwind label %273

223:                                              ; preds = %221
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(92) %222, ptr noundef nonnull align 4 dereferenceable(92) %13, i64 92, i1 false), !tbaa.struct !43
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #13
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %13) #13
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %16) #13
  invoke void @_Z8tensor2d8DataTypejj(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %16, i32 noundef 6, i32 noundef 4, i32 noundef 55)
          to label %224 unwind label %277

224:                                              ; preds = %223
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %18) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef %.sroa.8.0.copyload, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %225 unwind label %279

225:                                              ; preds = %224
  %226 = invoke noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %9, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %227 unwind label %281

227:                                              ; preds = %225
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(92) %226, ptr noundef nonnull align 4 dereferenceable(92) %16, i64 92, i1 false), !tbaa.struct !43
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #13
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %16) #13
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %19) #13
  invoke void @_Z8tensor2d8DataTypejj(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %19, i32 noundef 2, i32 noundef 1, i32 noundef 25100)
          to label %228 unwind label %285

228:                                              ; preds = %227
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %21) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef %.sroa.10.0.copyload, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %229 unwind label %287

229:                                              ; preds = %228
  %230 = invoke noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %9, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %231 unwind label %289

231:                                              ; preds = %229
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(92) %230, ptr noundef nonnull align 4 dereferenceable(92) %19, i64 92, i1 false), !tbaa.struct !43
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #13
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %19) #13
  %232 = call noundef ptr @_ZNKSt19__shared_ptr_accessI3CNNLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #13
  invoke void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEEC2ERKSD_(ptr noundef nonnull align 8 dereferenceable(48) %22, ptr noundef nonnull align 8 dereferenceable(48) %9)
          to label %233 unwind label %293

233:                                              ; preds = %231
  invoke void @_ZN3CNN7rereadyESt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS6_ESaISt4pairIKS6_S7_EEE(ptr noundef nonnull align 8 dereferenceable(5265) %232, ptr noundef nonnull %22)
          to label %234 unwind label %295

234:                                              ; preds = %233
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %22) #13
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %23) #13
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %23) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %24) #13
  invoke void @_ZNSt10shared_ptrIhEC2IhvEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %24, ptr noundef %194)
          to label %235 unwind label %297

235:                                              ; preds = %234
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef %.sroa.010.0.copyload, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %236 unwind label %299

236:                                              ; preds = %235
  %237 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %23, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %238 unwind label %301

238:                                              ; preds = %236
  %239 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIhEaSEOS0_(ptr noundef nonnull align 8 dereferenceable(16) %237, ptr noundef nonnull align 8 dereferenceable(16) %24) #13
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #13
  call void @_ZNSt12__shared_ptrIhLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %27) #13
  invoke void @"_ZNSt10shared_ptrIhEC2IhZ4mainE3$_0vEEPT_T0_"(ptr noundef nonnull align 8 dereferenceable(16) %27, ptr noundef nonnull %8)
          to label %240 unwind label %305

240:                                              ; preds = %238
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %29) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef %.sroa.6.0.copyload, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %241 unwind label %307

241:                                              ; preds = %240
  %242 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %23, ptr noundef nonnull align 8 dereferenceable(32) %28)
          to label %243 unwind label %309

243:                                              ; preds = %241
  %244 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIhEaSEOS0_(ptr noundef nonnull align 8 dereferenceable(16) %242, ptr noundef nonnull align 8 dereferenceable(16) %27) #13
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %29) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #13
  call void @_ZNSt12__shared_ptrIhLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %30) #13
  invoke void @_ZNSt10shared_ptrIhEC2IhvEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %30, ptr noundef %69)
          to label %245 unwind label %313

245:                                              ; preds = %243
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef %.sroa.8.0.copyload, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %246 unwind label %315

246:                                              ; preds = %245
  %247 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %23, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %248 unwind label %317

248:                                              ; preds = %246
  %249 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIhEaSEOS0_(ptr noundef nonnull align 8 dereferenceable(16) %247, ptr noundef nonnull align 8 dereferenceable(16) %30) #13
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #13
  call void @_ZNSt12__shared_ptrIhLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %30) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %33) #13
  invoke void @_ZNSt10shared_ptrIhEC2IhvEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr noundef nonnull %202)
          to label %250 unwind label %321

250:                                              ; preds = %248
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %35) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef %.sroa.10.0.copyload, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %251 unwind label %323

251:                                              ; preds = %250
  %252 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEEixEOS5_(ptr noundef nonnull align 8 dereferenceable(48) %23, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %253 unwind label %325

253:                                              ; preds = %251
  %254 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIhEaSEOS0_(ptr noundef nonnull align 8 dereferenceable(16) %252, ptr noundef nonnull align 8 dereferenceable(16) %33) #13
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #13
  call void @_ZNSt12__shared_ptrIhLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %33) #13
  %255 = call noundef ptr @_ZNKSt19__shared_ptr_accessI3CNNLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #13
  invoke void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEEC2ERKSE_(ptr noundef nonnull align 8 dereferenceable(48) %36, ptr noundef nonnull align 8 dereferenceable(48) %23)
          to label %256 unwind label %329

256:                                              ; preds = %253
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %37, i8 0, i64 48, i1 false)
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPfSt4lessIS5_ESaISt4pairIKS5_S6_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %37) #13
  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) %255, ptr noundef nonnull %36, ptr noundef nonnull %37)
          to label %257 unwind label %331

257:                                              ; preds = %256
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPfSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %37) #13
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %36) #13
  %258 = invoke noundef double @_Z10ut_time_msv()
          to label %.preheader147 unwind label %333

.preheader147:                                    ; preds = %257
  %259 = icmp sgt i32 %.0103, 0
  br i1 %259, label %.lr.ph157, label %._crit_edge158

._crit_edge158:                                   ; preds = %339, %.preheader147
  %260 = invoke noundef double @_Z10ut_time_msv()
          to label %343 unwind label %355

261:                                              ; preds = %scalar.ph228
  %262 = landingpad { ptr, i32 }
          cleanup
  br label %268

263:                                              ; preds = %216
  %264 = landingpad { ptr, i32 }
          cleanup
  br label %267

265:                                              ; preds = %217
  %266 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #13
  br label %267

267:                                              ; preds = %265, %263
  %.pn111 = phi { ptr, i32 } [ %266, %265 ], [ %264, %263 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #13
  br label %268

268:                                              ; preds = %267, %261
  %.pn111.pn = phi { ptr, i32 } [ %.pn111, %267 ], [ %262, %261 ]
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %10) #13
  br label %385

269:                                              ; preds = %219
  %270 = landingpad { ptr, i32 }
          cleanup
  br label %276

271:                                              ; preds = %220
  %272 = landingpad { ptr, i32 }
          cleanup
  br label %275

273:                                              ; preds = %221
  %274 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #13
  br label %275

275:                                              ; preds = %273, %271
  %.pn114 = phi { ptr, i32 } [ %274, %273 ], [ %272, %271 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #13
  br label %276

276:                                              ; preds = %275, %269
  %.pn114.pn = phi { ptr, i32 } [ %.pn114, %275 ], [ %270, %269 ]
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %13) #13
  br label %385

277:                                              ; preds = %223
  %278 = landingpad { ptr, i32 }
          cleanup
  br label %284

279:                                              ; preds = %224
  %280 = landingpad { ptr, i32 }
          cleanup
  br label %283

281:                                              ; preds = %225
  %282 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #13
  br label %283

283:                                              ; preds = %281, %279
  %.pn117 = phi { ptr, i32 } [ %282, %281 ], [ %280, %279 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #13
  br label %284

284:                                              ; preds = %283, %277
  %.pn117.pn = phi { ptr, i32 } [ %.pn117, %283 ], [ %278, %277 ]
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %16) #13
  br label %385

285:                                              ; preds = %227
  %286 = landingpad { ptr, i32 }
          cleanup
  br label %292

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

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

291:                                              ; preds = %289, %287
  %.pn120 = phi { ptr, i32 } [ %290, %289 ], [ %288, %287 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #13
  br label %292

292:                                              ; preds = %291, %285
  %.pn120.pn = phi { ptr, i32 } [ %.pn120, %291 ], [ %286, %285 ]
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %19) #13
  br label %385

293:                                              ; preds = %231
  %294 = landingpad { ptr, i32 }
          cleanup
  br label %385

295:                                              ; preds = %233
  %296 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %22) #13
  br label %385

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

299:                                              ; preds = %235
  %300 = landingpad { ptr, i32 }
          cleanup
  br label %303

301:                                              ; preds = %236
  %302 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #13
  br label %303

303:                                              ; preds = %301, %299
  %.pn123 = phi { ptr, i32 } [ %302, %301 ], [ %300, %299 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #13
  call void @_ZNSt12__shared_ptrIhLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #13
  br label %304

304:                                              ; preds = %303, %297
  %.pn123.pn = phi { ptr, i32 } [ %.pn123, %303 ], [ %298, %297 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #13
  br label %384

305:                                              ; preds = %238
  %306 = landingpad { ptr, i32 }
          cleanup
  br label %312

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

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

311:                                              ; preds = %309, %307
  %.pn126 = phi { ptr, i32 } [ %310, %309 ], [ %308, %307 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %29) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #13
  call void @_ZNSt12__shared_ptrIhLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #13
  br label %312

312:                                              ; preds = %311, %305
  %.pn126.pn = phi { ptr, i32 } [ %.pn126, %311 ], [ %306, %305 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #13
  br label %384

313:                                              ; preds = %243
  %314 = landingpad { ptr, i32 }
          cleanup
  br label %320

315:                                              ; preds = %245
  %316 = landingpad { ptr, i32 }
          cleanup
  br label %319

317:                                              ; preds = %246
  %318 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #13
  br label %319

319:                                              ; preds = %317, %315
  %.pn129 = phi { ptr, i32 } [ %318, %317 ], [ %316, %315 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #13
  call void @_ZNSt12__shared_ptrIhLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %30) #13
  br label %320

320:                                              ; preds = %319, %313
  %.pn129.pn = phi { ptr, i32 } [ %.pn129, %319 ], [ %314, %313 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #13
  br label %384

321:                                              ; preds = %248
  %322 = landingpad { ptr, i32 }
          cleanup
  br label %328

323:                                              ; preds = %250
  %324 = landingpad { ptr, i32 }
          cleanup
  br label %327

325:                                              ; preds = %251
  %326 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #13
  br label %327

327:                                              ; preds = %325, %323
  %.pn132 = phi { ptr, i32 } [ %326, %325 ], [ %324, %323 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #13
  call void @_ZNSt12__shared_ptrIhLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #13
  br label %328

328:                                              ; preds = %327, %321
  %.pn132.pn = phi { ptr, i32 } [ %.pn132, %327 ], [ %322, %321 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %33) #13
  br label %384

329:                                              ; preds = %253
  %330 = landingpad { ptr, i32 }
          cleanup
  br label %384

331:                                              ; preds = %256
  %332 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPfSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %37) #13
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %36) #13
  br label %384

333:                                              ; preds = %257
  %334 = landingpad { ptr, i32 }
          cleanup
  br label %384

.lr.ph157:                                        ; preds = %.preheader147, %339
  %.0100156 = phi i32 [ %340, %339 ], [ 0, %.preheader147 ]
  %335 = call noundef ptr @_ZNKSt19__shared_ptr_accessI3CNNLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #13
  %336 = load ptr, ptr %335, align 8, !tbaa !49
  %337 = getelementptr inbounds i8, ptr %336, i64 24
  %338 = load ptr, ptr %337, align 8
  invoke void %338(ptr noundef nonnull align 8 dereferenceable(5265) %335)
          to label %339 unwind label %341

339:                                              ; preds = %.lr.ph157
  %340 = add nuw nsw i32 %.0100156, 1
  %exitcond179.not = icmp eq i32 %340, %.0103
  br i1 %exitcond179.not, label %._crit_edge158, label %.lr.ph157, !llvm.loop !51

341:                                              ; preds = %.lr.ph157
  %342 = landingpad { ptr, i32 }
          cleanup
  br label %384

343:                                              ; preds = %._crit_edge158
  %344 = fsub double %260, %258
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #13
  %345 = call noundef ptr @_ZNKSt19__shared_ptr_accessI3CNNLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #13
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #13
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef %.sroa.0.0.copyload, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %346 unwind label %357

346:                                              ; preds = %343
  invoke void @_ZN3CNN18get_tensor_by_nameENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%class.Tensor) align 8 %38, ptr noundef nonnull align 8 dereferenceable(5265) %345, ptr noundef nonnull %39)
          to label %347 unwind label %359

347:                                              ; preds = %346
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #13
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #13
  %348 = invoke noundef i32 @_ZN6Tensor6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %.preheader unwind label %362

.preheader:                                       ; preds = %347
  %.not162 = icmp eq i32 %348, 0
  br i1 %.not162, label %._crit_edge161, label %.lr.ph160.preheader

.lr.ph160.preheader:                              ; preds = %.preheader
  %wide.trip.count183 = zext i32 %348 to i64
  br label %.lr.ph160

349:                                              ; preds = %366
  %indvars.iv.next181 = add nuw nsw i64 %indvars.iv180, 1
  %exitcond184.not = icmp eq i64 %indvars.iv.next181, %wide.trip.count183
  br i1 %exitcond184.not, label %._crit_edge161, label %.lr.ph160, !llvm.loop !52

._crit_edge161:                                   ; preds = %349, %.preheader
  %350 = sitofp i32 %.0103 to double
  %351 = fdiv double %344, %350
  %352 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.23, double noundef %351)
  %353 = load ptr, ptr @stdout, align 8, !tbaa !53
  %354 = call i32 @fflush(ptr noundef %353)
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #13
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %23) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %23) #13
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %9) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %9) #13
  call void @llvm.lifetime.end.p0(i64 880, ptr nonnull %8) #13
  call void @_ZNSt12__shared_ptrI3CNNLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #13
  br label %387

355:                                              ; preds = %._crit_edge158
  %356 = landingpad { ptr, i32 }
          cleanup
  br label %384

357:                                              ; preds = %343
  %358 = landingpad { ptr, i32 }
          cleanup
  br label %361

359:                                              ; preds = %346
  %360 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #13
  br label %361

361:                                              ; preds = %359, %357
  %.pn135 = phi { ptr, i32 } [ %360, %359 ], [ %358, %357 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #13
  br label %383

362:                                              ; preds = %347
  %363 = landingpad { ptr, i32 }
          cleanup
  br label %382

.lr.ph160:                                        ; preds = %.lr.ph160.preheader, %349
  %indvars.iv180 = phi i64 [ 0, %.lr.ph160.preheader ], [ %indvars.iv.next181, %349 ]
  %364 = trunc nuw i64 %indvars.iv180 to i32
  %365 = invoke noundef float @_ZN6Tensor7elementEj(ptr noundef nonnull align 8 dereferenceable(32) %38, i32 noundef %364)
          to label %366 unwind label %380

366:                                              ; preds = %.lr.ph160
  %367 = getelementptr inbounds [672 x i32], ptr @__const.main.trueRes, i64 0, i64 %indvars.iv180
  %368 = load i32, ptr %367, align 4, !tbaa !24
  %369 = sitofp i32 %368 to float
  %370 = fcmp une float %365, %369
  br i1 %370, label %371, label %349

371:                                              ; preds = %366
  %372 = call i64 (i64, ...) @syscall(i64 noundef 186) #13
  %373 = trunc i64 %372 to i32
  %374 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.1, i32 noundef %373)
  %375 = load ptr, ptr @stdout, align 8, !tbaa !53
  %376 = call i32 @fflush(ptr noundef %375)
  %377 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.22)
  %378 = load ptr, ptr @stdout, align 8, !tbaa !53
  %379 = call i32 @fflush(ptr noundef %378)
  call void @exit(i32 noundef 1) #15
  unreachable

380:                                              ; preds = %.lr.ph160
  %381 = landingpad { ptr, i32 }
          cleanup
  br label %382

382:                                              ; preds = %380, %362
  %.pn137 = phi { ptr, i32 } [ %381, %380 ], [ %363, %362 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #13
  br label %383

383:                                              ; preds = %382, %361
  %.pn137.pn = phi { ptr, i32 } [ %.pn137, %382 ], [ %.pn135, %361 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #13
  br label %384

384:                                              ; preds = %333, %341, %383, %355, %331, %329, %328, %320, %312, %304
  %.pn141.pn = phi { ptr, i32 } [ %332, %331 ], [ %330, %329 ], [ %.pn132.pn, %328 ], [ %.pn129.pn, %320 ], [ %.pn126.pn, %312 ], [ %.pn123.pn, %304 ], [ %342, %341 ], [ %334, %333 ], [ %.pn137.pn, %383 ], [ %356, %355 ]
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIhESt4lessIS5_ESaISt4pairIKS5_S7_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %23) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %23) #13
  br label %385

385:                                              ; preds = %384, %295, %293, %292, %284, %276, %268
  %.pn141.pn.pn = phi { ptr, i32 } [ %.pn141.pn, %384 ], [ %296, %295 ], [ %294, %293 ], [ %.pn120.pn, %292 ], [ %.pn117.pn, %284 ], [ %.pn114.pn, %276 ], [ %.pn111.pn, %268 ]
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE10TensorDescSt4lessIS5_ESaISt4pairIKS5_S6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %9) #13
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %9) #13
  call void @llvm.lifetime.end.p0(i64 880, ptr nonnull %8) #13
  br label %386

386:                                              ; preds = %385, %75
  %.pn141.pn.pn.pn = phi { ptr, i32 } [ %.pn141.pn.pn, %385 ], [ %76, %75 ]
  call void @_ZNSt12__shared_ptrI3CNNLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #13
  br label %388

387:                                              ; preds = %42, %._crit_edge161
  %.0 = phi i32 [ 0, %._crit_edge161 ], [ 1, %42 ]
  call void @llvm.lifetime.end.p0(i64 152, ptr nonnull %3) #13
  ret i32 %.0

388:                                              ; preds = %386, %50
  %.pn141.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn141.pn.pn.pn, %386 ], [ %.pn, %50 ]
  call void @llvm.lifetime.end.p0(i64 152, ptr nonnull %3) #13
  resume { ptr, i32 } %.pn141.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: 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: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #10

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

; 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 dso_local void @_ZNSt10shared_ptrIhEC2IhvEEPT_(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$_0vEEPT_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 #11

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

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

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

; 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: 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 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "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 = { "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 #12 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #13 = { nounwind }
attributes #14 = { nounwind allocsize(0) }
attributes #15 = { 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 = !{!17, !17, i64 0}
!25 = !{!15, !15, i64 0}
!26 = distinct !{!26, !27, !28, !29}
!27 = !{!"llvm.loop.mustprogress"}
!28 = !{!"llvm.loop.isvectorized", i32 1}
!29 = !{!"llvm.loop.unroll.runtime.disable"}
!30 = distinct !{!30, !27, !29, !28}
!31 = distinct !{!31, !27, !28, !29}
!32 = distinct !{!32, !33}
!33 = !{!"llvm.loop.unroll.disable"}
!34 = distinct !{!34, !27, !28}
!35 = distinct !{!35, !27, !28, !29}
!36 = distinct !{!36, !33}
!37 = distinct !{!37, !27, !28}
!38 = distinct !{!38, !27, !28, !29}
!39 = distinct !{!39, !33}
!40 = distinct !{!40, !27, !28}
!41 = distinct !{!41, !27, !28, !29}
!42 = distinct !{!42, !27, !28, !29}
!43 = !{i64 0, i64 4, !44, i64 4, i64 4, !46, i64 8, i64 4, !24, i64 12, i64 80, !48}
!44 = !{!45, !45, i64 0}
!45 = !{!"_ZTS8DataType", !9, i64 0}
!46 = !{!47, !47, i64 0}
!47 = !{!"_ZTS10DataFormat", !9, i64 0}
!48 = !{!9, !9, i64 0}
!49 = !{!50, !50, i64 0}
!50 = !{!"vtable pointer", !10, i64 0}
!51 = distinct !{!51, !27}
!52 = distinct !{!52, !27}
!53 = !{!8, !8, i64 0}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopIdiomRecognizePass,LoopInstSimplifyPass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,ReassociatePass,SROAPass,SimplifyCFGPass