; LLVM IR from huawei-noah/bolt :: inference/engine/tools/common_algo_search (common_algo_search)

; 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.TensorDesc = type { i32, i32, i32, [20 x i32] }
%struct.ActivationParamSpec = type { i32, [4 x float] }
%struct.ConvolutionParamSpec = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %union.ActivationSpec, i32, i32, i32, i32 }
%union.ActivationSpec = type { %struct.ClipParamSpec }
%struct.ClipParamSpec = type { float, float }
%struct.ArchInfo = type { i32, ptr }
%"class.std::set" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<unsigned int, unsigned int, std::_Identity<unsigned int>, std::less<unsigned int>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<unsigned int, unsigned int, std::_Identity<unsigned int>, std::less<unsigned int>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.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" = type { i8 }
%"struct.std::_Rb_tree_const_iterator" = type { ptr }
%class.Tensor = type { %"class.std::shared_ptr", %"class.std::shared_ptr.8" }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::shared_ptr.8" = type { %"class.std::__shared_ptr.9" }
%"class.std::__shared_ptr.9" = type { ptr, %"class.std::__shared_count" }

@.str = external hidden unnamed_addr constant [1 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [20 x i8], align 1
@stdout = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [18 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_Z34convolutionCPUFloatAlgorithmSearch4Arch8DataTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i32 noundef %0, i32 noundef %1, ptr noundef %2) #0 personality ptr @__gxx_personality_v0 {
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca ptr, align 8
  %7 = alloca %struct.TensorDesc, align 4
  %8 = alloca %struct.TensorDesc, align 4
  %9 = alloca i32, align 4
  %10 = alloca %struct.ActivationParamSpec, align 4
  %11 = alloca %struct.ConvolutionParamSpec, align 4
  %12 = alloca i32, align 4
  %13 = alloca %struct.ArchInfo, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca %"class.std::set", align 8
  %21 = alloca %"class.std::set", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator", align 1
  %24 = alloca ptr, align 8
  %25 = alloca i32, align 4
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::allocator", align 1
  %28 = alloca ptr, align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca i1, align 1
  %32 = alloca ptr, align 8
  %33 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %34 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca ptr, align 8
  %38 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %39 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca %struct.TensorDesc, align 4
  %50 = alloca %struct.TensorDesc, align 4
  %51 = alloca %struct.TensorDesc, align 4
  %52 = alloca %class.Tensor, align 8
  %53 = alloca %class.Tensor, align 8
  %54 = alloca %class.Tensor, align 8
  %55 = alloca %struct.TensorDesc, align 8
  %56 = alloca %struct.TensorDesc, align 8
  %57 = alloca i32, align 4
  %58 = alloca %class.Tensor, align 8
  %59 = alloca %struct.ConvolutionParamSpec, align 8
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca %class.Tensor, align 8
  %64 = alloca %class.Tensor, align 8
  %65 = alloca %class.Tensor, align 8
  %66 = alloca %struct.ConvolutionParamSpec, align 8
  %67 = alloca %struct.ActivationParamSpec, align 8
  %68 = alloca i32, align 4
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  store i32 %0, ptr %4, align 4, !tbaa !5
  store i32 %1, ptr %5, align 4, !tbaa !9
  store ptr %2, ptr %6, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 92, ptr %7) #10
  call void @_ZN10TensorDescC2Ev(ptr noundef nonnull align 4 dereferenceable(92) %7) #10
  call void @llvm.lifetime.start.p0(i64 92, ptr %8) #10
  call void @_ZN10TensorDescC2Ev(ptr noundef nonnull align 4 dereferenceable(92) %8) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #10
  store i32 2, ptr %9, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 20, ptr %10) #10
  call void @_ZN19ActivationParamSpecC2Ev(ptr noundef nonnull align 4 dereferenceable(20) %10) #10
  %70 = getelementptr inbounds %struct.ActivationParamSpec, ptr %10, i32 0, i32 0
  store i32 1, ptr %70, align 4, !tbaa !15
  %71 = getelementptr inbounds %struct.ActivationParamSpec, ptr %10, i32 0, i32 1
  %72 = getelementptr inbounds [4 x float], ptr %71, i64 0, i64 0
  store float 0.000000e+00, ptr %72, align 4, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 108, ptr %11) #10
  %73 = getelementptr inbounds %struct.ConvolutionParamSpec, ptr %11, i32 0, i32 15
  store i32 1, ptr %73, align 4, !tbaa !20
  %74 = getelementptr inbounds %struct.ConvolutionParamSpec, ptr %11, i32 0, i32 16
  store i32 1, ptr %74, align 4, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #10
  store i32 1, ptr %12, align 4, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 16, ptr %13) #10
  %75 = getelementptr inbounds %struct.ArchInfo, ptr %13, i32 0, i32 0
  store i32 1, ptr %75, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #10
  call void @llvm.lifetime.start.p0(i64 48, ptr %20) #10
  call void @_ZNSt3setIjSt4lessIjESaIjEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %20) #10
  call void @llvm.lifetime.start.p0(i64 48, ptr %21) #10
  call void @_ZNSt3setIjSt4lessIjESaIjEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %21) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %76 unwind label %96

76:                                               ; preds = %3
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %27)
          to label %77 unwind label %100

77:                                               ; preds = %76
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #10
  %78 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 176) #11
          to label %79 unwind label %104

79:                                               ; preds = %77
  store i1 true, ptr %31, align 1
  %80 = load i32, ptr %4, align 4, !tbaa !5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %81 unwind label %108

81:                                               ; preds = %79
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 8 dereferenceable(32) %26)
          to label %82 unwind label %112

82:                                               ; preds = %81
  %83 = load i32, ptr %5, align 4, !tbaa !9
  invoke void @_ZN12AlgorithmMapC2E4ArchNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_8DataType(ptr noundef nonnull align 8 dereferenceable(169) %78, i32 noundef %80, ptr noundef %29, ptr noundef %30, i32 noundef %83)
          to label %84 unwind label %116

84:                                               ; preds = %82
  store i1 false, ptr %31, align 1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #10
  store ptr %78, ptr %28, align 8, !tbaa !11
  %85 = load ptr, ptr %28, align 8, !tbaa !11
  invoke void @_ZN12AlgorithmMap20getCommonAlgoMapParaEPjS0_S0_S0_S0_S0_PSt3setIjSt4lessIjESaIjEES6_(ptr noundef nonnull align 8 dereferenceable(169) %85, ptr noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr noundef %20, ptr noundef %21)
          to label %86 unwind label %104

86:                                               ; preds = %84
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #10
  store ptr %21, ptr %32, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #10
  %87 = load ptr, ptr %32, align 8, !tbaa !11
  %88 = call ptr @_ZNKSt3setIjSt4lessIjESaIjEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %87) #10
  %89 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %33, i32 0, i32 0
  store ptr %88, ptr %89, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #10
  %90 = load ptr, ptr %32, align 8, !tbaa !11
  %91 = call ptr @_ZNKSt3setIjSt4lessIjESaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %90) #10
  %92 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %34, i32 0, i32 0
  store ptr %91, ptr %92, align 8
  br label %93

93:                                               ; preds = %356, %86
  %94 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull align 8 dereferenceable(8) %34) #10
  br i1 %94, label %125, label %95

95:                                               ; preds = %93
  store i32 2, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #10
  br label %358

96:                                               ; preds = %3
  %97 = landingpad { ptr, i32 }
          cleanup
  %98 = extractvalue { ptr, i32 } %97, 0
  store ptr %98, ptr %24, align 8
  %99 = extractvalue { ptr, i32 } %97, 1
  store i32 %99, ptr %25, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #10
  br label %372

100:                                              ; preds = %76
  %101 = landingpad { ptr, i32 }
          cleanup
  %102 = extractvalue { ptr, i32 } %101, 0
  store ptr %102, ptr %24, align 8
  %103 = extractvalue { ptr, i32 } %101, 1
  store i32 %103, ptr %25, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #10
  br label %371

104:                                              ; preds = %358, %84, %77
  %105 = landingpad { ptr, i32 }
          cleanup
  %106 = extractvalue { ptr, i32 } %105, 0
  store ptr %106, ptr %24, align 8
  %107 = extractvalue { ptr, i32 } %105, 1
  store i32 %107, ptr %25, align 4
  br label %370

108:                                              ; preds = %79
  %109 = landingpad { ptr, i32 }
          cleanup
  %110 = extractvalue { ptr, i32 } %109, 0
  store ptr %110, ptr %24, align 8
  %111 = extractvalue { ptr, i32 } %109, 1
  store i32 %111, ptr %25, align 4
  br label %121

112:                                              ; preds = %81
  %113 = landingpad { ptr, i32 }
          cleanup
  %114 = extractvalue { ptr, i32 } %113, 0
  store ptr %114, ptr %24, align 8
  %115 = extractvalue { ptr, i32 } %113, 1
  store i32 %115, ptr %25, align 4
  br label %120

116:                                              ; preds = %82
  %117 = landingpad { ptr, i32 }
          cleanup
  %118 = extractvalue { ptr, i32 } %117, 0
  store ptr %118, ptr %24, align 8
  %119 = extractvalue { ptr, i32 } %117, 1
  store i32 %119, ptr %25, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #10
  br label %120

120:                                              ; preds = %116, %112
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #10
  br label %121

121:                                              ; preds = %120, %108
  %122 = load i1, ptr %31, align 1
  br i1 %122, label %123, label %124

123:                                              ; preds = %121
  call void @_ZdlPvm(ptr noundef %78, i64 noundef 176) #12
  br label %124

124:                                              ; preds = %123, %121
  br label %370

125:                                              ; preds = %93
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #10
  %126 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt23_Rb_tree_const_iteratorIjEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %33) #10
  %127 = load i32, ptr %126, align 4, !tbaa !26
  store i32 %127, ptr %36, align 4, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #10
  store ptr %20, ptr %37, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #10
  %128 = load ptr, ptr %37, align 8, !tbaa !11
  %129 = call ptr @_ZNKSt3setIjSt4lessIjESaIjEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %128) #10
  %130 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %38, i32 0, i32 0
  store ptr %129, ptr %130, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #10
  %131 = load ptr, ptr %37, align 8, !tbaa !11
  %132 = call ptr @_ZNKSt3setIjSt4lessIjESaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %131) #10
  %133 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator", ptr %39, i32 0, i32 0
  store ptr %132, ptr %133, align 8
  br label %134

134:                                              ; preds = %353, %125
  %135 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8) %38, ptr noundef nonnull align 8 dereferenceable(8) %39) #10
  br i1 %135, label %137, label %136

136:                                              ; preds = %134
  store i32 4, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #10
  br label %355

137:                                              ; preds = %134
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #10
  %138 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt23_Rb_tree_const_iteratorIjEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %38) #10
  %139 = load i32, ptr %138, align 4, !tbaa !26
  store i32 %139, ptr %40, align 4, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #10
  %140 = load i32, ptr %40, align 4, !tbaa !26
  %141 = udiv i32 %140, 2
  store i32 %141, ptr %41, align 4, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #10
  %142 = load i32, ptr %40, align 4, !tbaa !26
  %143 = sub i32 %142, 1
  %144 = udiv i32 %143, 2
  store i32 %144, ptr %42, align 4, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #10
  %145 = load i32, ptr %40, align 4, !tbaa !26
  %146 = udiv i32 %145, 2
  store i32 %146, ptr %43, align 4, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #10
  %147 = load i32, ptr %40, align 4, !tbaa !26
  %148 = sub i32 %147, 1
  %149 = udiv i32 %148, 2
  store i32 %149, ptr %44, align 4, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #10
  %150 = load i32, ptr %16, align 4, !tbaa !26
  store i32 %150, ptr %45, align 4, !tbaa !26
  br label %151

151:                                              ; preds = %348, %137
  %152 = load i32, ptr %45, align 4, !tbaa !26
  %153 = load i32, ptr %19, align 4, !tbaa !26
  %154 = icmp ule i32 %152, %153
  br i1 %154, label %156, label %155

155:                                              ; preds = %151
  store i32 6, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #10
  br label %352

156:                                              ; preds = %151
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #10
  %157 = load i32, ptr %14, align 4, !tbaa !26
  store i32 %157, ptr %46, align 4, !tbaa !26
  br label %158

158:                                              ; preds = %343, %156
  %159 = load i32, ptr %46, align 4, !tbaa !26
  %160 = load i32, ptr %17, align 4, !tbaa !26
  %161 = icmp ule i32 %159, %160
  br i1 %161, label %163, label %162

162:                                              ; preds = %158
  store i32 9, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #10
  br label %347

163:                                              ; preds = %158
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #10
  %164 = load i32, ptr %15, align 4, !tbaa !26
  store i32 %164, ptr %47, align 4, !tbaa !26
  br label %165

165:                                              ; preds = %338, %163
  %166 = load i32, ptr %47, align 4, !tbaa !26
  %167 = load i32, ptr %18, align 4, !tbaa !26
  %168 = icmp ule i32 %166, %167
  br i1 %168, label %170, label %169

169:                                              ; preds = %165
  store i32 12, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #10
  br label %342

170:                                              ; preds = %165
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #10
  %171 = load i32, ptr %15, align 4, !tbaa !26
  store i32 %171, ptr %48, align 4, !tbaa !26
  br label %172

172:                                              ; preds = %322, %170
  %173 = load i32, ptr %48, align 4, !tbaa !26
  %174 = load i32, ptr %18, align 4, !tbaa !26
  %175 = icmp ule i32 %173, %174
  br i1 %175, label %177, label %176

176:                                              ; preds = %172
  store i32 15, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #10
  br label %337

177:                                              ; preds = %172
  %178 = load i32, ptr %46, align 4, !tbaa !26
  %179 = urem i32 %178, 8
  %180 = icmp ne i32 %179, 0
  br i1 %180, label %181, label %192

181:                                              ; preds = %177
  call void @llvm.lifetime.start.p0(i64 92, ptr %49) #10
  %182 = load i32, ptr %5, align 4, !tbaa !9
  %183 = load i32, ptr %12, align 4, !tbaa !26
  %184 = load i32, ptr %46, align 4, !tbaa !26
  %185 = load i32, ptr %47, align 4, !tbaa !26
  %186 = load i32, ptr %47, align 4, !tbaa !26
  invoke void @_Z9tensor4df8DataType10DataFormatjjjj(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %49, i32 noundef %182, i32 noundef 0, i32 noundef %183, i32 noundef %184, i32 noundef %185, i32 noundef %186)
          to label %187 unwind label %188

187:                                              ; preds = %181
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %7, ptr align 4 %49, i64 92, i1 false), !tbaa.struct !29
  call void @llvm.lifetime.end.p0(i64 92, ptr %49) #10
  br label %203

188:                                              ; preds = %181
  %189 = landingpad { ptr, i32 }
          cleanup
  %190 = extractvalue { ptr, i32 } %189, 0
  store ptr %190, ptr %24, align 8
  %191 = extractvalue { ptr, i32 } %189, 1
  store i32 %191, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 92, ptr %49) #10
  br label %336

192:                                              ; preds = %177
  call void @llvm.lifetime.start.p0(i64 92, ptr %50) #10
  %193 = load i32, ptr %5, align 4, !tbaa !9
  %194 = load i32, ptr %12, align 4, !tbaa !26
  %195 = load i32, ptr %46, align 4, !tbaa !26
  %196 = load i32, ptr %47, align 4, !tbaa !26
  %197 = load i32, ptr %47, align 4, !tbaa !26
  invoke void @_Z9tensor4df8DataType10DataFormatjjjj(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %50, i32 noundef %193, i32 noundef 2, i32 noundef %194, i32 noundef %195, i32 noundef %196, i32 noundef %197)
          to label %198 unwind label %199

198:                                              ; preds = %192
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %7, ptr align 4 %50, i64 92, i1 false), !tbaa.struct !29
  call void @llvm.lifetime.end.p0(i64 92, ptr %50) #10
  br label %203

199:                                              ; preds = %192
  %200 = landingpad { ptr, i32 }
          cleanup
  %201 = extractvalue { ptr, i32 } %200, 0
  store ptr %201, ptr %24, align 8
  %202 = extractvalue { ptr, i32 } %200, 1
  store i32 %202, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 92, ptr %50) #10
  br label %336

203:                                              ; preds = %198, %187
  %204 = load i32, ptr %36, align 4, !tbaa !26
  %205 = getelementptr inbounds %struct.ConvolutionParamSpec, ptr %11, i32 0, i32 5
  store i32 %204, ptr %205, align 4, !tbaa !33
  %206 = load i32, ptr %36, align 4, !tbaa !26
  %207 = getelementptr inbounds %struct.ConvolutionParamSpec, ptr %11, i32 0, i32 6
  store i32 %206, ptr %207, align 4, !tbaa !34
  %208 = load i32, ptr %41, align 4, !tbaa !26
  %209 = getelementptr inbounds %struct.ConvolutionParamSpec, ptr %11, i32 0, i32 11
  store i32 %208, ptr %209, align 4, !tbaa !35
  %210 = load i32, ptr %42, align 4, !tbaa !26
  %211 = getelementptr inbounds %struct.ConvolutionParamSpec, ptr %11, i32 0, i32 12
  store i32 %210, ptr %211, align 4, !tbaa !36
  %212 = load i32, ptr %43, align 4, !tbaa !26
  %213 = getelementptr inbounds %struct.ConvolutionParamSpec, ptr %11, i32 0, i32 9
  store i32 %212, ptr %213, align 4, !tbaa !37
  %214 = load i32, ptr %44, align 4, !tbaa !26
  %215 = getelementptr inbounds %struct.ConvolutionParamSpec, ptr %11, i32 0, i32 10
  store i32 %214, ptr %215, align 4, !tbaa !38
  call void @llvm.lifetime.start.p0(i64 92, ptr %51) #10
  %216 = load i32, ptr %5, align 4, !tbaa !9
  %217 = load i32, ptr %45, align 4, !tbaa !26
  %218 = load i32, ptr %46, align 4, !tbaa !26
  %219 = load i32, ptr %40, align 4, !tbaa !26
  %220 = load i32, ptr %40, align 4, !tbaa !26
  invoke void @_Z9tensor4df8DataType10DataFormatjjjj(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %51, i32 noundef %216, i32 noundef 0, i32 noundef %217, i32 noundef %218, i32 noundef %219, i32 noundef %220)
          to label %221 unwind label %249

221:                                              ; preds = %203
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %8, ptr align 4 %51, i64 92, i1 false), !tbaa.struct !29
  call void @llvm.lifetime.end.p0(i64 92, ptr %51) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #10
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %52, i32 noundef 1)
          to label %222 unwind label %253

222:                                              ; preds = %221
  call void @llvm.lifetime.start.p0(i64 32, ptr %53) #10
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %53, i32 noundef 1)
          to label %223 unwind label %257

223:                                              ; preds = %222
  call void @llvm.lifetime.start.p0(i64 32, ptr %54) #10
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %54, i32 noundef 1)
          to label %224 unwind label %261

224:                                              ; preds = %223
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %55, ptr align 4 %7, i64 92, i1 false), !tbaa.struct !29
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef byval(%struct.TensorDesc) align 8 %55)
          to label %225 unwind label %265

225:                                              ; preds = %224
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %56, ptr align 4 %8, i64 92, i1 false), !tbaa.struct !29
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef byval(%struct.TensorDesc) align 8 %56)
          to label %226 unwind label %265

226:                                              ; preds = %225
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #10
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 8 dereferenceable(32) %54) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %59, ptr align 4 %11, i64 108, i1 false), !tbaa.struct !39
  %227 = load i32, ptr %5, align 4, !tbaa !9
  %228 = invoke noundef i32 @_Z29convolution_infer_output_sizeP6TensorS_20ConvolutionParamSpecS0_8DataTypeP8ArchInfo(ptr noundef %52, ptr noundef %58, ptr noundef byval(%struct.ConvolutionParamSpec) align 8 %59, ptr noundef %53, i32 noundef %227, ptr noundef %13)
          to label %229 unwind label %269

229:                                              ; preds = %226
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #10
  store i32 %228, ptr %57, align 4, !tbaa !43
  %230 = load i32, ptr %57, align 4, !tbaa !43
  %231 = icmp ne i32 %230, 0
  br i1 %231, label %232, label %277

232:                                              ; preds = %229
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #10
  %233 = call i64 (i64, ...) @syscall(i64 noundef 186) #10
  %234 = trunc i64 %233 to i32
  store i32 %234, ptr %60, align 4, !tbaa !26
  %235 = load i32, ptr %60, align 4, !tbaa !26
  %236 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.1, i32 noundef %235)
          to label %237 unwind label %273

237:                                              ; preds = %232
  %238 = load ptr, ptr @stdout, align 8, !tbaa !11
  %239 = invoke i32 @fflush(ptr noundef %238)
          to label %240 unwind label %273

240:                                              ; preds = %237
  %241 = load i32, ptr %57, align 4, !tbaa !43
  %242 = invoke ptr @ee2str(i32 noundef %241)
          to label %243 unwind label %273

243:                                              ; preds = %240
  %244 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %242)
          to label %245 unwind label %273

245:                                              ; preds = %243
  %246 = load ptr, ptr @stdout, align 8, !tbaa !11
  %247 = invoke i32 @fflush(ptr noundef %246)
          to label %248 unwind label %273

248:                                              ; preds = %245
  call void @exit(i32 noundef 1) #13
  unreachable

249:                                              ; preds = %203
  %250 = landingpad { ptr, i32 }
          cleanup
  %251 = extractvalue { ptr, i32 } %250, 0
  store ptr %251, ptr %24, align 8
  %252 = extractvalue { ptr, i32 } %250, 1
  store i32 %252, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 92, ptr %51) #10
  br label %336

253:                                              ; preds = %221
  %254 = landingpad { ptr, i32 }
          cleanup
  %255 = extractvalue { ptr, i32 } %254, 0
  store ptr %255, ptr %24, align 8
  %256 = extractvalue { ptr, i32 } %254, 1
  store i32 %256, ptr %25, align 4
  br label %335

257:                                              ; preds = %222
  %258 = landingpad { ptr, i32 }
          cleanup
  %259 = extractvalue { ptr, i32 } %258, 0
  store ptr %259, ptr %24, align 8
  %260 = extractvalue { ptr, i32 } %258, 1
  store i32 %260, ptr %25, align 4
  br label %334

261:                                              ; preds = %223
  %262 = landingpad { ptr, i32 }
          cleanup
  %263 = extractvalue { ptr, i32 } %262, 0
  store ptr %263, ptr %24, align 8
  %264 = extractvalue { ptr, i32 } %262, 1
  store i32 %264, ptr %25, align 4
  br label %333

265:                                              ; preds = %225, %224
  %266 = landingpad { ptr, i32 }
          cleanup
  %267 = extractvalue { ptr, i32 } %266, 0
  store ptr %267, ptr %24, align 8
  %268 = extractvalue { ptr, i32 } %266, 1
  store i32 %268, ptr %25, align 4
  br label %332

269:                                              ; preds = %226
  %270 = landingpad { ptr, i32 }
          cleanup
  %271 = extractvalue { ptr, i32 } %270, 0
  store ptr %271, ptr %24, align 8
  %272 = extractvalue { ptr, i32 } %270, 1
  store i32 %272, ptr %25, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #10
  br label %301

273:                                              ; preds = %245, %243, %240, %237, %232
  %274 = landingpad { ptr, i32 }
          cleanup
  %275 = extractvalue { ptr, i32 } %274, 0
  store ptr %275, ptr %24, align 8
  %276 = extractvalue { ptr, i32 } %274, 1
  store i32 %276, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #10
  br label %301

277:                                              ; preds = %229
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #10
  store i32 9, ptr %61, align 4, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #10
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull align 8 dereferenceable(32) %52) #10
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull align 8 dereferenceable(32) %54) #10
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef nonnull align 8 dereferenceable(32) %53) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %66, ptr align 4 %11, i64 108, i1 false), !tbaa.struct !39
  %278 = load i32, ptr %9, align 4, !tbaa !13
  %279 = load i32, ptr %5, align 4, !tbaa !9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %67, ptr align 4 %10, i64 20, i1 false), !tbaa.struct !47
  %280 = invoke noundef i32 @_Z35convolution_infer_forward_algorithm6TensorS_S_20ConvolutionParamSpec17ConvolutionPolicyP27ConvolutionForwardAlgorithm8DataType19ActivationParamSpecP8ArchInfo(ptr noundef %63, ptr noundef %64, ptr noundef %65, ptr noundef byval(%struct.ConvolutionParamSpec) align 8 %66, i32 noundef %278, ptr noundef %61, i32 noundef %279, ptr noundef byval(%struct.ActivationParamSpec) align 8 %67, ptr noundef %13)
          to label %281 unwind label %302

281:                                              ; preds = %277
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #10
  store i32 %280, ptr %62, align 4, !tbaa !43
  %282 = load i32, ptr %62, align 4, !tbaa !43
  %283 = icmp ne i32 %282, 0
  br i1 %283, label %284, label %310

284:                                              ; preds = %281
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #10
  %285 = call i64 (i64, ...) @syscall(i64 noundef 186) #10
  %286 = trunc i64 %285 to i32
  store i32 %286, ptr %68, align 4, !tbaa !26
  %287 = load i32, ptr %68, align 4, !tbaa !26
  %288 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.1, i32 noundef %287)
          to label %289 unwind label %306

289:                                              ; preds = %284
  %290 = load ptr, ptr @stdout, align 8, !tbaa !11
  %291 = invoke i32 @fflush(ptr noundef %290)
          to label %292 unwind label %306

292:                                              ; preds = %289
  %293 = load i32, ptr %62, align 4, !tbaa !43
  %294 = invoke ptr @ee2str(i32 noundef %293)
          to label %295 unwind label %306

295:                                              ; preds = %292
  %296 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %294)
          to label %297 unwind label %306

297:                                              ; preds = %295
  %298 = load ptr, ptr @stdout, align 8, !tbaa !11
  %299 = invoke i32 @fflush(ptr noundef %298)
          to label %300 unwind label %306

300:                                              ; preds = %297
  call void @exit(i32 noundef 1) #13
  unreachable

301:                                              ; preds = %273, %269
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #10
  br label %332

302:                                              ; preds = %277
  %303 = landingpad { ptr, i32 }
          cleanup
  %304 = extractvalue { ptr, i32 } %303, 0
  store ptr %304, ptr %24, align 8
  %305 = extractvalue { ptr, i32 } %303, 1
  store i32 %305, ptr %25, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #10
  br label %326

306:                                              ; preds = %297, %295, %292, %289, %284
  %307 = landingpad { ptr, i32 }
          cleanup
  %308 = extractvalue { ptr, i32 } %307, 0
  store ptr %308, ptr %24, align 8
  %309 = extractvalue { ptr, i32 } %307, 1
  store i32 %309, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #10
  br label %326

310:                                              ; preds = %281
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #10
  %311 = load ptr, ptr %28, align 8, !tbaa !11
  %312 = load i32, ptr %5, align 4, !tbaa !9
  %313 = load i32, ptr %46, align 4, !tbaa !26
  %314 = load i32, ptr %47, align 4, !tbaa !26
  %315 = load i32, ptr %48, align 4, !tbaa !26
  %316 = load i32, ptr %45, align 4, !tbaa !26
  %317 = load i32, ptr %40, align 4, !tbaa !26
  %318 = load i32, ptr %40, align 4, !tbaa !26
  %319 = load i32, ptr %36, align 4, !tbaa !26
  %320 = load i32, ptr %36, align 4, !tbaa !26
  invoke void @_ZN12AlgorithmMap22setCommonAlgoInfoToMapE12OperatorType8DataTypejjjjjjjjPij(ptr noundef nonnull align 8 dereferenceable(169) %311, i32 noundef 2, i32 noundef %312, i32 noundef %313, i32 noundef %314, i32 noundef %315, i32 noundef %316, i32 noundef %317, i32 noundef %318, i32 noundef %319, i32 noundef %320, ptr noundef %61, i32 noundef 1)
          to label %321 unwind label %327

321:                                              ; preds = %310
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #10
  br label %322

322:                                              ; preds = %321
  %323 = load i32, ptr %15, align 4, !tbaa !26
  %324 = load i32, ptr %48, align 4, !tbaa !26
  %325 = add i32 %324, %323
  store i32 %325, ptr %48, align 4, !tbaa !26
  br label %172, !llvm.loop !48

326:                                              ; preds = %306, %302
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #10
  br label %331

327:                                              ; preds = %310
  %328 = landingpad { ptr, i32 }
          cleanup
  %329 = extractvalue { ptr, i32 } %328, 0
  store ptr %329, ptr %24, align 8
  %330 = extractvalue { ptr, i32 } %328, 1
  store i32 %330, ptr %25, align 4
  br label %331

331:                                              ; preds = %327, %326
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #10
  br label %332

332:                                              ; preds = %331, %301, %265
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #10
  br label %333

333:                                              ; preds = %332, %261
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #10
  br label %334

334:                                              ; preds = %333, %257
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #10
  br label %335

335:                                              ; preds = %334, %253
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #10
  br label %336

336:                                              ; preds = %335, %249, %199, %188
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #10
  br label %370

337:                                              ; preds = %176
  br label %338

338:                                              ; preds = %337
  %339 = load i32, ptr %15, align 4, !tbaa !26
  %340 = load i32, ptr %47, align 4, !tbaa !26
  %341 = add i32 %340, %339
  store i32 %341, ptr %47, align 4, !tbaa !26
  br label %165, !llvm.loop !50

342:                                              ; preds = %169
  br label %343

343:                                              ; preds = %342
  %344 = load i32, ptr %14, align 4, !tbaa !26
  %345 = load i32, ptr %46, align 4, !tbaa !26
  %346 = add i32 %345, %344
  store i32 %346, ptr %46, align 4, !tbaa !26
  br label %158, !llvm.loop !51

347:                                              ; preds = %162
  br label %348

348:                                              ; preds = %347
  %349 = load i32, ptr %16, align 4, !tbaa !26
  %350 = load i32, ptr %45, align 4, !tbaa !26
  %351 = add i32 %350, %349
  store i32 %351, ptr %45, align 4, !tbaa !26
  br label %151, !llvm.loop !52

352:                                              ; preds = %155
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #10
  br label %353

353:                                              ; preds = %352
  %354 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt23_Rb_tree_const_iteratorIjEppEv(ptr noundef nonnull align 8 dereferenceable(8) %38) #10
  br label %134

355:                                              ; preds = %136
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #10
  br label %356

356:                                              ; preds = %355
  %357 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt23_Rb_tree_const_iteratorIjEppEv(ptr noundef nonnull align 8 dereferenceable(8) %33) #10
  br label %93

358:                                              ; preds = %95
  %359 = load ptr, ptr %28, align 8, !tbaa !11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %360 unwind label %104

360:                                              ; preds = %358
  invoke void @_ZN12AlgorithmMap22saveAlgorithmMapToFileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(169) %359, ptr noundef %69)
          to label %361 unwind label %366

361:                                              ; preds = %360
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #10
  %362 = load ptr, ptr %28, align 8, !tbaa !11
  %363 = icmp eq ptr %362, null
  br i1 %363, label %365, label %364

364:                                              ; preds = %361
  call void @_ZN12AlgorithmMapD2Ev(ptr noundef nonnull align 8 dereferenceable(169) %362) #10
  call void @_ZdlPvm(ptr noundef %362, i64 noundef 176) #12
  br label %365

365:                                              ; preds = %364, %361
  store i32 1, ptr %35, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #10
  call void @_ZNSt3setIjSt4lessIjESaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %21) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %21) #10
  call void @_ZNSt3setIjSt4lessIjESaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %20) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %20) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %13) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #10
  call void @llvm.lifetime.end.p0(i64 108, ptr %11) #10
  call void @llvm.lifetime.end.p0(i64 20, ptr %10) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #10
  call void @llvm.lifetime.end.p0(i64 92, ptr %8) #10
  call void @llvm.lifetime.end.p0(i64 92, ptr %7) #10
  ret i32 0

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

370:                                              ; preds = %366, %336, %124, %104
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #10
  br label %371

371:                                              ; preds = %370, %100
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #10
  br label %372

372:                                              ; preds = %371, %96
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #10
  call void @_ZNSt3setIjSt4lessIjESaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %21) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %21) #10
  call void @_ZNSt3setIjSt4lessIjESaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %20) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %20) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %13) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #10
  call void @llvm.lifetime.end.p0(i64 108, ptr %11) #10
  call void @llvm.lifetime.end.p0(i64 20, ptr %10) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #10
  call void @llvm.lifetime.end.p0(i64 92, ptr %8) #10
  call void @llvm.lifetime.end.p0(i64 92, ptr %7) #10
  br label %373

373:                                              ; preds = %372
  %374 = load ptr, ptr %24, align 8
  %375 = load i32, ptr %25, align 4
  %376 = insertvalue { ptr, i32 } poison, ptr %374, 0
  %377 = insertvalue { ptr, i32 } %376, i32 %375, 1
  resume { ptr, i32 } %377
}

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN10TensorDescC2Ev(ptr noundef nonnull align 4 dereferenceable(92)) unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN19ActivationParamSpecC2Ev(ptr noundef nonnull align 4 dereferenceable(20)) unnamed_addr #2 align 2

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

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) #4

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN12AlgorithmMapC2E4ArchNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_8DataType(ptr noundef nonnull align 8 dereferenceable(169), i32 noundef, ptr noundef, ptr noundef, i32 noundef) unnamed_addr #0 align 2

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

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) #5

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef byval(%struct.TensorDesc) align 8) #0 align 2

declare noundef i32 @_Z29convolution_infer_output_sizeP6TensorS_20ConvolutionParamSpecS0_8DataTypeP8ArchInfo(ptr noundef, ptr noundef, ptr noundef byval(%struct.ConvolutionParamSpec) align 8, ptr noundef, i32 noundef, ptr noundef) #7

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

; 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, ...) #8

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

declare i32 @fflush(ptr noundef) #7

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

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

declare noundef i32 @_Z35convolution_infer_forward_algorithm6TensorS_S_20ConvolutionParamSpec17ConvolutionPolicyP27ConvolutionForwardAlgorithm8DataType19ActivationParamSpecP8ArchInfo(ptr noundef, ptr noundef, ptr noundef, ptr noundef byval(%struct.ConvolutionParamSpec) align 8, i32 noundef, ptr noundef, i32 noundef, ptr noundef byval(%struct.ActivationParamSpec) align 8, ptr noundef) #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN12AlgorithmMap22setCommonAlgoInfoToMapE12OperatorType8DataTypejjjjjjjjPij(ptr noundef nonnull align 8 dereferenceable(169), i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef, i32 noundef) #0 align 2

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"_ZTS4Arch", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"_ZTS8DataType", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"any pointer", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"_ZTS17ConvolutionPolicy", !7, i64 0}
!15 = !{!16, !17, i64 0}
!16 = !{!"_ZTS19ActivationParamSpec", !17, i64 0, !7, i64 4}
!17 = !{!"_ZTS14ActivationMode", !7, i64 0}
!18 = !{!19, !19, i64 0}
!19 = !{!"float", !7, i64 0}
!20 = !{!21, !22, i64 60}
!21 = !{!"_ZTS20ConvolutionParamSpec", !22, i64 0, !22, i64 4, !22, i64 8, !22, i64 12, !22, i64 16, !22, i64 20, !22, i64 24, !22, i64 28, !22, i64 32, !22, i64 36, !22, i64 40, !22, i64 44, !22, i64 48, !22, i64 52, !22, i64 56, !22, i64 60, !22, i64 64, !22, i64 68, !23, i64 72, !17, i64 76, !17, i64 80, !7, i64 84, !24, i64 92, !22, i64 96, !22, i64 100, !22, i64 104}
!22 = !{!"int", !7, i64 0}
!23 = !{!"_ZTS15ConvolutionMode", !7, i64 0}
!24 = !{!"_ZTS9RoundMode", !7, i64 0}
!25 = !{!21, !22, i64 64}
!26 = !{!22, !22, i64 0}
!27 = !{!28, !6, i64 0}
!28 = !{!"_ZTS8ArchInfo", !6, i64 0, !12, i64 8}
!29 = !{i64 0, i64 4, !9, i64 4, i64 4, !30, i64 8, i64 4, !26, i64 12, i64 80, !32}
!30 = !{!31, !31, i64 0}
!31 = !{!"_ZTS10DataFormat", !7, i64 0}
!32 = !{!7, !7, i64 0}
!33 = !{!21, !22, i64 20}
!34 = !{!21, !22, i64 24}
!35 = !{!21, !22, i64 44}
!36 = !{!21, !22, i64 48}
!37 = !{!21, !22, i64 36}
!38 = !{!21, !22, i64 40}
!39 = !{i64 0, i64 4, !26, i64 4, i64 4, !26, i64 8, i64 4, !26, i64 12, i64 4, !26, i64 16, i64 4, !26, i64 20, i64 4, !26, i64 24, i64 4, !26, i64 28, i64 4, !26, i64 32, i64 4, !26, i64 36, i64 4, !26, i64 40, i64 4, !26, i64 44, i64 4, !26, i64 48, i64 4, !26, i64 52, i64 4, !26, i64 56, i64 4, !26, i64 60, i64 4, !26, i64 64, i64 4, !26, i64 68, i64 4, !26, i64 72, i64 4, !40, i64 76, i64 4, !41, i64 80, i64 4, !41, i64 84, i64 8, !32, i64 92, i64 4, !42, i64 96, i64 4, !26, i64 100, i64 4, !26, i64 104, i64 4, !26}
!40 = !{!23, !23, i64 0}
!41 = !{!17, !17, i64 0}
!42 = !{!24, !24, i64 0}
!43 = !{!44, !44, i64 0}
!44 = !{!"_ZTS2EE", !7, i64 0}
!45 = !{!46, !46, i64 0}
!46 = !{!"_ZTS27ConvolutionForwardAlgorithm", !7, i64 0}
!47 = !{i64 0, i64 4, !41, i64 4, i64 16, !32}
!48 = distinct !{!48, !49}
!49 = !{!"llvm.loop.mustprogress"}
!50 = distinct !{!50, !49}
!51 = distinct !{!51, !49}
!52 = distinct !{!52, !49}


; 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.TensorDesc = type { i32, i32, i32, [20 x i32] }
%struct.ActivationParamSpec = type { i32, [4 x float] }
%union.ActivationSpec = type { %struct.ClipParamSpec }
%struct.ClipParamSpec = type { float, float }
%struct.ArchInfo = type { i32, ptr }
%"class.std::set" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<unsigned int, unsigned int, std::_Identity<unsigned int>, std::less<unsigned int>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<unsigned int, unsigned int, std::_Identity<unsigned int>, std::less<unsigned int>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.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" = type { i8 }
%"struct.std::_Rb_tree_const_iterator" = type { ptr }
%class.Tensor = type { %"class.std::shared_ptr", %"class.std::shared_ptr.8" }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::shared_ptr.8" = type { %"class.std::__shared_ptr.9" }
%"class.std::__shared_ptr.9" = type { ptr, %"class.std::__shared_count" }
%struct.ConvolutionParamSpec = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %union.ActivationSpec, i32, i32, i32, i32 }

@.str = external hidden unnamed_addr constant [1 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [20 x i8], align 1
@stdout = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [18 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_Z34convolutionCPUFloatAlgorithmSearch4Arch8DataTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i32 noundef %0, i32 noundef %1, ptr noundef %2) local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %4 = alloca %struct.TensorDesc, align 8
  %5 = alloca %struct.TensorDesc, align 8
  %6 = alloca %struct.ActivationParamSpec, align 8
  %.sroa.0 = alloca { i32, i32, i32, i32, i32 }, align 8
  %.sroa.13 = alloca { i32, i32, i32, i32, %union.ActivationSpec, i32, i32, i32, i32 }, align 8
  %7 = alloca %struct.ArchInfo, align 8
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca %"class.std::set", align 8
  %15 = alloca %"class.std::set", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::allocator", align 1
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::allocator", align 1
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %23 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %24 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %25 = alloca %"struct.std::_Rb_tree_const_iterator", align 8
  %26 = alloca %struct.TensorDesc, align 4
  %27 = alloca %struct.TensorDesc, align 4
  %28 = alloca %struct.TensorDesc, align 4
  %29 = alloca %class.Tensor, align 8
  %30 = alloca %class.Tensor, align 8
  %31 = alloca %class.Tensor, align 8
  %32 = alloca %class.Tensor, align 8
  %33 = alloca %struct.ConvolutionParamSpec, align 8
  %34 = alloca i32, align 4
  %35 = alloca %class.Tensor, align 8
  %36 = alloca %class.Tensor, align 8
  %37 = alloca %class.Tensor, align 8
  %38 = alloca %struct.ConvolutionParamSpec, align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %4) #11
  call void @_ZN10TensorDescC2Ev(ptr noundef nonnull align 4 dereferenceable(92) %4) #11
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %5) #11
  call void @_ZN10TensorDescC2Ev(ptr noundef nonnull align 4 dereferenceable(92) %5) #11
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %6) #11
  call void @_ZN19ActivationParamSpecC2Ev(ptr noundef nonnull align 4 dereferenceable(20) %6) #11
  store i32 1, ptr %6, align 8, !tbaa !5
  %40 = getelementptr inbounds i8, ptr %6, i64 4
  store float 0.000000e+00, ptr %40, align 4, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %.sroa.0)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %.sroa.13)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7) #11
  store i32 1, ptr %7, align 8, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #11
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %14) #11
  call void @_ZNSt3setIjSt4lessIjESaIjEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %14) #11
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %15) #11
  call void @_ZNSt3setIjSt4lessIjESaIjEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %15) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %41 unwind label %52

41:                                               ; preds = %3
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %42 unwind label %54

42:                                               ; preds = %41
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #11
  %43 = invoke noalias noundef nonnull dereferenceable(176) ptr @_Znwm(i64 noundef 176) #12
          to label %44 unwind label %56

44:                                               ; preds = %42
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %45 unwind label %58

45:                                               ; preds = %44
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %46 unwind label %60

46:                                               ; preds = %45
  invoke void @_ZN12AlgorithmMapC2E4ArchNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_8DataType(ptr noundef nonnull align 8 dereferenceable(169) %43, i32 noundef %0, ptr noundef nonnull %20, ptr noundef nonnull %21, i32 noundef %1)
          to label %47 unwind label %62

47:                                               ; preds = %46
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #11
  invoke void @_ZN12AlgorithmMap20getCommonAlgoMapParaEPjS0_S0_S0_S0_S0_PSt3setIjSt4lessIjESaIjEES6_(ptr noundef nonnull align 8 dereferenceable(169) %43, ptr noundef nonnull %8, ptr noundef nonnull %9, ptr noundef nonnull %10, ptr noundef nonnull %11, ptr noundef nonnull %12, ptr noundef nonnull %13, ptr noundef nonnull %14, ptr noundef nonnull %15)
          to label %48 unwind label %56

48:                                               ; preds = %47
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #11
  %49 = call ptr @_ZNKSt3setIjSt4lessIjESaIjEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %15) #11
  store ptr %49, ptr %22, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #11
  %50 = call ptr @_ZNKSt3setIjSt4lessIjESaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %15) #11
  store ptr %50, ptr %23, align 8
  %51 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8) %22, ptr noundef nonnull align 8 dereferenceable(8) %23) #11
  br i1 %51, label %.lr.ph148, label %._crit_edge149

.lr.ph148:                                        ; preds = %48
  %.sroa.5.0..sroa_idx = getelementptr inbounds i8, ptr %33, i64 20
  %.sroa.6.0..sroa_idx = getelementptr inbounds i8, ptr %33, i64 24
  %.sroa.760.0..sroa_idx = getelementptr inbounds i8, ptr %33, i64 36
  %.sroa.8.0..sroa_idx = getelementptr inbounds i8, ptr %33, i64 40
  %.sroa.9.0..sroa_idx = getelementptr inbounds i8, ptr %33, i64 44
  %.sroa.10.0..sroa_idx = getelementptr inbounds i8, ptr %33, i64 48
  %.sroa.1170.0..sroa_idx = getelementptr inbounds i8, ptr %33, i64 60
  %.sroa.12.0..sroa_idx = getelementptr inbounds i8, ptr %33, i64 64
  %.sroa.13.0..sroa_idx = getelementptr inbounds i8, ptr %33, i64 68
  %.sroa.5.0..sroa_idx55 = getelementptr inbounds i8, ptr %38, i64 20
  %.sroa.6.0..sroa_idx57 = getelementptr inbounds i8, ptr %38, i64 24
  %.sroa.760.0..sroa_idx61 = getelementptr inbounds i8, ptr %38, i64 36
  %.sroa.8.0..sroa_idx63 = getelementptr inbounds i8, ptr %38, i64 40
  %.sroa.9.0..sroa_idx65 = getelementptr inbounds i8, ptr %38, i64 44
  %.sroa.10.0..sroa_idx67 = getelementptr inbounds i8, ptr %38, i64 48
  %.sroa.1170.0..sroa_idx71 = getelementptr inbounds i8, ptr %38, i64 60
  %.sroa.12.0..sroa_idx73 = getelementptr inbounds i8, ptr %38, i64 64
  %.sroa.13.0..sroa_idx75 = getelementptr inbounds i8, ptr %38, i64 68
  br label %66

._crit_edge149:                                   ; preds = %._crit_edge146, %48
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %192 unwind label %56

52:                                               ; preds = %3
  %53 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #11
  br label %198

54:                                               ; preds = %41
  %55 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #11
  br label %197

56:                                               ; preds = %._crit_edge149, %47, %42
  %57 = landingpad { ptr, i32 }
          cleanup
  br label %196

58:                                               ; preds = %44
  %59 = landingpad { ptr, i32 }
          cleanup
  br label %65

60:                                               ; preds = %45
  %61 = landingpad { ptr, i32 }
          cleanup
  br label %64

62:                                               ; preds = %46
  %63 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #11
  br label %64

64:                                               ; preds = %62, %60
  %.pn = phi { ptr, i32 } [ %63, %62 ], [ %61, %60 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #11
  br label %65

65:                                               ; preds = %58, %64
  %.pn.pn = phi { ptr, i32 } [ %.pn, %64 ], [ %59, %58 ]
  call void @_ZdlPvm(ptr noundef nonnull %43, i64 noundef 176) #13
  br label %196

66:                                               ; preds = %.lr.ph148, %._crit_edge146
  %67 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt23_Rb_tree_const_iteratorIjEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %22) #11
  %68 = load i32, ptr %67, align 4, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #11
  %69 = call ptr @_ZNKSt3setIjSt4lessIjESaIjEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %14) #11
  store ptr %69, ptr %24, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #11
  %70 = call ptr @_ZNKSt3setIjSt4lessIjESaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %14) #11
  store ptr %70, ptr %25, align 8
  %71 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull align 8 dereferenceable(8) %25) #11
  br i1 %71, label %.lr.ph145, label %._crit_edge146

._crit_edge146:                                   ; preds = %._crit_edge143, %66
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #11
  %72 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt23_Rb_tree_const_iteratorIjEppEv(ptr noundef nonnull align 8 dereferenceable(8) %22) #11
  %73 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8) %22, ptr noundef nonnull align 8 dereferenceable(8) %23) #11
  br i1 %73, label %66, label %._crit_edge149

.lr.ph145:                                        ; preds = %66, %._crit_edge143
  %74 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt23_Rb_tree_const_iteratorIjEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %24) #11
  %75 = load i32, ptr %74, align 4, !tbaa !16
  %76 = lshr i32 %75, 1
  %77 = add i32 %75, -1
  %78 = lshr i32 %77, 1
  %79 = load i32, ptr %10, align 4, !tbaa !16
  %80 = load i32, ptr %13, align 4, !tbaa !16
  %.not138 = icmp ugt i32 %79, %80
  br i1 %.not138, label %._crit_edge143, label %.lr.ph142

.lr.ph142:                                        ; preds = %.lr.ph145
  %81 = load i32, ptr %8, align 4, !tbaa !16
  %82 = load i32, ptr %11, align 4, !tbaa !16
  %83 = icmp ugt i32 %81, %82
  br i1 %83, label %._crit_edge143, label %.lr.ph142.split

._crit_edge143:                                   ; preds = %._crit_edge137, %.lr.ph142, %.lr.ph145
  %84 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt23_Rb_tree_const_iteratorIjEppEv(ptr noundef nonnull align 8 dereferenceable(8) %24) #11
  %85 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorIjES2_(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull align 8 dereferenceable(8) %25) #11
  br i1 %85, label %.lr.ph145, label %._crit_edge146

.lr.ph142.split:                                  ; preds = %.lr.ph142, %._crit_edge137
  %86 = phi i32 [ %97, %._crit_edge137 ], [ %80, %.lr.ph142 ]
  %87 = phi i32 [ %98, %._crit_edge137 ], [ %79, %.lr.ph142 ]
  %88 = phi i32 [ %99, %._crit_edge137 ], [ %82, %.lr.ph142 ]
  %89 = phi i32 [ %100, %._crit_edge137 ], [ %81, %.lr.ph142 ]
  %90 = phi i32 [ %101, %._crit_edge137 ], [ %82, %.lr.ph142 ]
  %91 = phi i32 [ %102, %._crit_edge137 ], [ %81, %.lr.ph142 ]
  %92 = phi i32 [ %103, %._crit_edge137 ], [ %82, %.lr.ph142 ]
  %93 = phi i32 [ %104, %._crit_edge137 ], [ %81, %.lr.ph142 ]
  %.098139 = phi i32 [ %105, %._crit_edge137 ], [ %79, %.lr.ph142 ]
  %.not103132 = icmp ugt i32 %93, %92
  br i1 %.not103132, label %._crit_edge137, label %.lr.ph136

.lr.ph136:                                        ; preds = %.lr.ph142.split
  %94 = load i32, ptr %9, align 4, !tbaa !16
  %95 = load i32, ptr %12, align 4, !tbaa !16
  %96 = icmp ugt i32 %94, %95
  br i1 %96, label %._crit_edge137, label %.lr.ph136.split

._crit_edge137.loopexit151:                       ; preds = %._crit_edge131
  %.pre161 = load i32, ptr %10, align 4, !tbaa !16
  %.pre162 = load i32, ptr %13, align 4, !tbaa !16
  br label %._crit_edge137

._crit_edge137:                                   ; preds = %.lr.ph136, %._crit_edge137.loopexit151, %.lr.ph142.split
  %97 = phi i32 [ %.pre162, %._crit_edge137.loopexit151 ], [ %86, %.lr.ph142.split ], [ %86, %.lr.ph136 ]
  %98 = phi i32 [ %.pre161, %._crit_edge137.loopexit151 ], [ %87, %.lr.ph142.split ], [ %87, %.lr.ph136 ]
  %99 = phi i32 [ %117, %._crit_edge137.loopexit151 ], [ %88, %.lr.ph142.split ], [ %88, %.lr.ph136 ]
  %100 = phi i32 [ %118, %._crit_edge137.loopexit151 ], [ %89, %.lr.ph142.split ], [ %89, %.lr.ph136 ]
  %101 = phi i32 [ %119, %._crit_edge137.loopexit151 ], [ %90, %.lr.ph142.split ], [ %88, %.lr.ph136 ]
  %102 = phi i32 [ %120, %._crit_edge137.loopexit151 ], [ %91, %.lr.ph142.split ], [ %89, %.lr.ph136 ]
  %103 = phi i32 [ %119, %._crit_edge137.loopexit151 ], [ %92, %.lr.ph142.split ], [ %88, %.lr.ph136 ]
  %104 = phi i32 [ %120, %._crit_edge137.loopexit151 ], [ %93, %.lr.ph142.split ], [ %89, %.lr.ph136 ]
  %105 = add i32 %98, %.098139
  %.not = icmp ugt i32 %105, %97
  br i1 %.not, label %._crit_edge143, label %.lr.ph142.split, !llvm.loop !18

.lr.ph136.split:                                  ; preds = %.lr.ph136, %._crit_edge131
  %106 = phi i32 [ %117, %._crit_edge131 ], [ %88, %.lr.ph136 ]
  %107 = phi i32 [ %118, %._crit_edge131 ], [ %89, %.lr.ph136 ]
  %108 = phi i32 [ %119, %._crit_edge131 ], [ %90, %.lr.ph136 ]
  %109 = phi i32 [ %120, %._crit_edge131 ], [ %91, %.lr.ph136 ]
  %110 = phi i32 [ %121, %._crit_edge131 ], [ %95, %.lr.ph136 ]
  %111 = phi i32 [ %122, %._crit_edge131 ], [ %94, %.lr.ph136 ]
  %112 = phi i32 [ %123, %._crit_edge131 ], [ %95, %.lr.ph136 ]
  %113 = phi i32 [ %124, %._crit_edge131 ], [ %94, %.lr.ph136 ]
  %114 = phi i32 [ %125, %._crit_edge131 ], [ %95, %.lr.ph136 ]
  %115 = phi i32 [ %126, %._crit_edge131 ], [ %94, %.lr.ph136 ]
  %.097133 = phi i32 [ %127, %._crit_edge131 ], [ %93, %.lr.ph136 ]
  %.not104127 = icmp ugt i32 %115, %114
  br i1 %.not104127, label %._crit_edge131, label %.lr.ph130.split.preheader

.lr.ph130.split.preheader:                        ; preds = %.lr.ph136.split
  %116 = and i32 %.097133, 7
  %.not106 = icmp eq i32 %116, 0
  br label %.lr.ph130.split

._crit_edge131.loopexit150:                       ; preds = %._crit_edge
  %.pre = load i32, ptr %8, align 4, !tbaa !16
  %.pre160 = load i32, ptr %11, align 4, !tbaa !16
  br label %._crit_edge131

._crit_edge131:                                   ; preds = %._crit_edge131.loopexit150, %.lr.ph136.split
  %117 = phi i32 [ %.pre160, %._crit_edge131.loopexit150 ], [ %106, %.lr.ph136.split ]
  %118 = phi i32 [ %.pre, %._crit_edge131.loopexit150 ], [ %107, %.lr.ph136.split ]
  %119 = phi i32 [ %.pre160, %._crit_edge131.loopexit150 ], [ %108, %.lr.ph136.split ]
  %120 = phi i32 [ %.pre, %._crit_edge131.loopexit150 ], [ %109, %.lr.ph136.split ]
  %121 = phi i32 [ %132, %._crit_edge131.loopexit150 ], [ %110, %.lr.ph136.split ]
  %122 = phi i32 [ %133, %._crit_edge131.loopexit150 ], [ %111, %.lr.ph136.split ]
  %123 = phi i32 [ %132, %._crit_edge131.loopexit150 ], [ %112, %.lr.ph136.split ]
  %124 = phi i32 [ %133, %._crit_edge131.loopexit150 ], [ %113, %.lr.ph136.split ]
  %125 = phi i32 [ %132, %._crit_edge131.loopexit150 ], [ %114, %.lr.ph136.split ]
  %126 = phi i32 [ %133, %._crit_edge131.loopexit150 ], [ %115, %.lr.ph136.split ]
  %127 = add i32 %120, %.097133
  %.not103 = icmp ugt i32 %127, %119
  br i1 %.not103, label %._crit_edge137.loopexit151, label %.lr.ph136.split, !llvm.loop !21

.lr.ph130.split:                                  ; preds = %.lr.ph130.split.preheader, %._crit_edge
  %128 = phi i32 [ %132, %._crit_edge ], [ %110, %.lr.ph130.split.preheader ]
  %129 = phi i32 [ %133, %._crit_edge ], [ %111, %.lr.ph130.split.preheader ]
  %130 = phi i32 [ %132, %._crit_edge ], [ %112, %.lr.ph130.split.preheader ]
  %131 = phi i32 [ %133, %._crit_edge ], [ %113, %.lr.ph130.split.preheader ]
  %.096128 = phi i32 [ %134, %._crit_edge ], [ %115, %.lr.ph130.split.preheader ]
  %.not105125 = icmp ugt i32 %131, %130
  br i1 %.not105125, label %._crit_edge, label %.lr.ph

._crit_edge:                                      ; preds = %181, %.lr.ph130.split
  %132 = phi i32 [ %128, %.lr.ph130.split ], [ %184, %181 ]
  %133 = phi i32 [ %129, %.lr.ph130.split ], [ %182, %181 ]
  %134 = add i32 %133, %.096128
  %.not104 = icmp ugt i32 %134, %132
  br i1 %.not104, label %._crit_edge131.loopexit150, label %.lr.ph130.split, !llvm.loop !22

.lr.ph:                                           ; preds = %.lr.ph130.split, %181
  %.095126 = phi i32 [ %183, %181 ], [ %131, %.lr.ph130.split ]
  br i1 %.not106, label %136, label %135

135:                                              ; preds = %.lr.ph
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %26) #11
  call void @_Z9tensor4df8DataType10DataFormatjjjj(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %26, i32 noundef %1, i32 noundef 0, i32 noundef 1, i32 noundef %.097133, i32 noundef %.096128, i32 noundef %.096128)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(92) %4, ptr noundef nonnull align 4 dereferenceable(92) %26, i64 92, i1 false), !tbaa.struct !23
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %26) #11
  br label %137

136:                                              ; preds = %.lr.ph
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %27) #11
  call void @_Z9tensor4df8DataType10DataFormatjjjj(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %27, i32 noundef %1, i32 noundef 2, i32 noundef 1, i32 noundef %.097133, i32 noundef %.096128, i32 noundef %.096128)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(92) %4, ptr noundef nonnull align 4 dereferenceable(92) %27, i64 92, i1 false), !tbaa.struct !23
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %27) #11
  br label %137

137:                                              ; preds = %136, %135
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %28) #11
  call void @_Z9tensor4df8DataType10DataFormatjjjj(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %28, i32 noundef %1, i32 noundef 0, i32 noundef %.098139, i32 noundef %.097133, i32 noundef %75, i32 noundef %75)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(92) %5, ptr noundef nonnull align 4 dereferenceable(92) %28, i64 92, i1 false), !tbaa.struct !23
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %28) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #11
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %29, i32 noundef 1)
          to label %138 unwind label %155

138:                                              ; preds = %137
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #11
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %30, i32 noundef 1)
          to label %139 unwind label %157

139:                                              ; preds = %138
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #11
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %31, i32 noundef 1)
          to label %140 unwind label %159

140:                                              ; preds = %139
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %4)
          to label %141 unwind label %161

141:                                              ; preds = %140
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %5)
          to label %142 unwind label %161

142:                                              ; preds = %141
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull align 8 dereferenceable(32) %31) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %33, ptr noundef nonnull align 8 dereferenceable(20) %.sroa.0, i64 20, i1 false), !tbaa.struct !29
  store i32 %68, ptr %.sroa.5.0..sroa_idx, align 4, !tbaa !16
  store i32 %68, ptr %.sroa.6.0..sroa_idx, align 8, !tbaa !16
  store i32 %76, ptr %.sroa.760.0..sroa_idx, align 4, !tbaa !16
  store i32 %78, ptr %.sroa.8.0..sroa_idx, align 8, !tbaa !16
  store i32 %76, ptr %.sroa.9.0..sroa_idx, align 4, !tbaa !16
  store i32 %78, ptr %.sroa.10.0..sroa_idx, align 8, !tbaa !16
  store i32 1, ptr %.sroa.1170.0..sroa_idx, align 4, !tbaa !16
  store i32 1, ptr %.sroa.12.0..sroa_idx, align 8, !tbaa !16
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(40) %.sroa.13.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(40) %.sroa.13, i64 40, i1 false), !tbaa.struct !35
  %143 = invoke noundef i32 @_Z29convolution_infer_output_sizeP6TensorS_20ConvolutionParamSpecS0_8DataTypeP8ArchInfo(ptr noundef nonnull %29, ptr noundef nonnull %32, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %33, ptr noundef nonnull %30, i32 noundef %1, ptr noundef nonnull %7)
          to label %144 unwind label %163

144:                                              ; preds = %142
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #11
  %.not107 = icmp eq i32 %143, 0
  br i1 %.not107, label %165, label %145

145:                                              ; preds = %144
  %146 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %147 = trunc i64 %146 to i32
  %148 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.1, i32 noundef %147)
  %149 = load ptr, ptr @stdout, align 8, !tbaa !36
  %150 = call i32 @fflush(ptr noundef %149)
  %151 = call ptr @ee2str(i32 noundef %143)
  %152 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %151)
  %153 = load ptr, ptr @stdout, align 8, !tbaa !36
  %154 = call i32 @fflush(ptr noundef %153)
  call void @exit(i32 noundef 1) #14
  unreachable

155:                                              ; preds = %137
  %156 = landingpad { ptr, i32 }
          cleanup
  br label %191

157:                                              ; preds = %138
  %158 = landingpad { ptr, i32 }
          cleanup
  br label %190

159:                                              ; preds = %139
  %160 = landingpad { ptr, i32 }
          cleanup
  br label %189

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

163:                                              ; preds = %142
  %164 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #11
  br label %188

165:                                              ; preds = %144
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #11
  store i32 9, ptr %34, align 4, !tbaa !37
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull align 8 dereferenceable(32) %29) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull align 8 dereferenceable(32) %31) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(32) %30) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(20) %38, ptr noundef nonnull align 8 dereferenceable(20) %.sroa.0, i64 20, i1 false), !tbaa.struct !29
  store i32 %68, ptr %.sroa.5.0..sroa_idx55, align 4, !tbaa !16
  store i32 %68, ptr %.sroa.6.0..sroa_idx57, align 8, !tbaa !16
  store i32 %76, ptr %.sroa.760.0..sroa_idx61, align 4, !tbaa !16
  store i32 %78, ptr %.sroa.8.0..sroa_idx63, align 8, !tbaa !16
  store i32 %76, ptr %.sroa.9.0..sroa_idx65, align 4, !tbaa !16
  store i32 %78, ptr %.sroa.10.0..sroa_idx67, align 8, !tbaa !16
  store i32 1, ptr %.sroa.1170.0..sroa_idx71, align 4, !tbaa !16
  store i32 1, ptr %.sroa.12.0..sroa_idx73, align 8, !tbaa !16
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(40) %.sroa.13.0..sroa_idx75, ptr noundef nonnull align 8 dereferenceable(40) %.sroa.13, i64 40, i1 false), !tbaa.struct !35
  %166 = invoke noundef i32 @_Z35convolution_infer_forward_algorithm6TensorS_S_20ConvolutionParamSpec17ConvolutionPolicyP27ConvolutionForwardAlgorithm8DataType19ActivationParamSpecP8ArchInfo(ptr noundef nonnull %35, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %38, i32 noundef 2, ptr noundef nonnull %34, i32 noundef %1, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %6, ptr noundef nonnull %7)
          to label %167 unwind label %178

167:                                              ; preds = %165
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #11
  %.not108 = icmp eq i32 %166, 0
  br i1 %.not108, label %180, label %168

168:                                              ; preds = %167
  %169 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %170 = trunc i64 %169 to i32
  %171 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.1, i32 noundef %170)
  %172 = load ptr, ptr @stdout, align 8, !tbaa !36
  %173 = call i32 @fflush(ptr noundef %172)
  %174 = call ptr @ee2str(i32 noundef %166)
  %175 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %174)
  %176 = load ptr, ptr @stdout, align 8, !tbaa !36
  %177 = call i32 @fflush(ptr noundef %176)
  call void @exit(i32 noundef 1) #14
  unreachable

178:                                              ; preds = %165
  %179 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #11
  br label %187

180:                                              ; preds = %167
  invoke void @_ZN12AlgorithmMap22setCommonAlgoInfoToMapE12OperatorType8DataTypejjjjjjjjPij(ptr noundef nonnull align 8 dereferenceable(169) %43, i32 noundef 2, i32 noundef %1, i32 noundef %.097133, i32 noundef %.096128, i32 noundef %.095126, i32 noundef %.098139, i32 noundef %75, i32 noundef %75, i32 noundef %68, i32 noundef %68, ptr noundef nonnull %34, i32 noundef 1)
          to label %181 unwind label %185

181:                                              ; preds = %180
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #11
  %182 = load i32, ptr %9, align 4, !tbaa !16
  %183 = add i32 %182, %.095126
  %184 = load i32, ptr %12, align 4, !tbaa !16
  %.not105 = icmp ugt i32 %183, %184
  br i1 %.not105, label %._crit_edge, label %.lr.ph, !llvm.loop !39

185:                                              ; preds = %180
  %186 = landingpad { ptr, i32 }
          cleanup
  br label %187

187:                                              ; preds = %185, %178
  %.pn109 = phi { ptr, i32 } [ %186, %185 ], [ %179, %178 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #11
  br label %188

188:                                              ; preds = %187, %163, %161
  %.pn109.pn = phi { ptr, i32 } [ %.pn109, %187 ], [ %164, %163 ], [ %162, %161 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #11
  br label %189

189:                                              ; preds = %188, %159
  %.pn109.pn.pn = phi { ptr, i32 } [ %.pn109.pn, %188 ], [ %160, %159 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #11
  br label %190

190:                                              ; preds = %189, %157
  %.pn109.pn.pn.pn = phi { ptr, i32 } [ %.pn109.pn.pn, %189 ], [ %158, %157 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #11
  br label %191

191:                                              ; preds = %190, %155
  %.pn109.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn109.pn.pn.pn, %190 ], [ %156, %155 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #11
  br label %196

192:                                              ; preds = %._crit_edge149
  invoke void @_ZN12AlgorithmMap22saveAlgorithmMapToFileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(169) %43, ptr noundef nonnull %39)
          to label %193 unwind label %194

193:                                              ; preds = %192
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #11
  call void @_ZN12AlgorithmMapD2Ev(ptr noundef nonnull align 8 dereferenceable(169) %43) #11
  call void @_ZdlPvm(ptr noundef nonnull %43, i64 noundef 176) #13
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #11
  call void @_ZNSt3setIjSt4lessIjESaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %15) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %15) #11
  call void @_ZNSt3setIjSt4lessIjESaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %14) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %14) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %.sroa.0)
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %.sroa.13)
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %6) #11
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %5) #11
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %4) #11
  ret i32 0

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

196:                                              ; preds = %65, %194, %191, %56
  %.pn109.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn109.pn.pn.pn.pn, %191 ], [ %195, %194 ], [ %57, %56 ], [ %.pn.pn, %65 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #11
  br label %197

197:                                              ; preds = %196, %54
  %.pn109.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn109.pn.pn.pn.pn.pn, %196 ], [ %55, %54 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #11
  br label %198

198:                                              ; preds = %197, %52
  %.pn109.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn109.pn.pn.pn.pn.pn.pn, %197 ], [ %53, %52 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #11
  call void @_ZNSt3setIjSt4lessIjESaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %15) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %15) #11
  call void @_ZNSt3setIjSt4lessIjESaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %14) #11
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %14) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %.sroa.0)
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %.sroa.13)
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %6) #11
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %5) #11
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %4) #11
  resume { ptr, i32 } %.pn109.pn.pn.pn.pn.pn.pn.pn
}

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN10TensorDescC2Ev(ptr noundef nonnull align 4 dereferenceable(92)) unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN19ActivationParamSpecC2Ev(ptr noundef nonnull align 4 dereferenceable(20)) unnamed_addr #2 align 2

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

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) local_unnamed_addr #4

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN12AlgorithmMapC2E4ArchNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_8DataType(ptr noundef nonnull align 8 dereferenceable(169), i32 noundef, ptr noundef, ptr noundef, i32 noundef) unnamed_addr #0 align 2

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

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN12AlgorithmMap20getCommonAlgoMapParaEPjS0_S0_S0_S0_S0_PSt3setIjSt4lessIjESaIjEES6_(ptr noundef nonnull align 8 dereferenceable(169), ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #0 align 2

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef byval(%struct.TensorDesc) align 8) local_unnamed_addr #0 align 2

declare noundef i32 @_Z29convolution_infer_output_sizeP6TensorS_20ConvolutionParamSpecS0_8DataTypeP8ArchInfo(ptr noundef, ptr noundef, ptr noundef byval(%struct.ConvolutionParamSpec) align 8, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #7

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

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

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

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

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

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

declare noundef i32 @_Z35convolution_infer_forward_algorithm6TensorS_S_20ConvolutionParamSpec17ConvolutionPolicyP27ConvolutionForwardAlgorithm8DataType19ActivationParamSpecP8ArchInfo(ptr noundef, ptr noundef, ptr noundef, ptr noundef byval(%struct.ConvolutionParamSpec) align 8, i32 noundef, ptr noundef, i32 noundef, ptr noundef byval(%struct.ActivationParamSpec) align 8, ptr noundef) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN12AlgorithmMap22setCommonAlgoInfoToMapE12OperatorType8DataTypejjjjjjjjPij(ptr noundef nonnull align 8 dereferenceable(169), i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #0 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN12AlgorithmMap22saveAlgorithmMapToFileENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(169), ptr noundef) local_unnamed_addr #0 align 2

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

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

attributes #0 = { 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 #1 = { mustprogress nocallback nofree nosync 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 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nobuiltin 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 #5 = { nobuiltin 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 nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #7 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind "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 = { 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 #10 = { 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 #11 = { nounwind }
attributes #12 = { builtin allocsize(0) }
attributes #13 = { builtin nounwind }
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, !7, i64 0}
!6 = !{!"_ZTS19ActivationParamSpec", !7, i64 0, !8, i64 4}
!7 = !{!"_ZTS14ActivationMode", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!11, !11, i64 0}
!11 = !{!"float", !8, i64 0}
!12 = !{!13, !14, i64 0}
!13 = !{!"_ZTS8ArchInfo", !14, i64 0, !15, i64 8}
!14 = !{!"_ZTS4Arch", !8, i64 0}
!15 = !{!"any pointer", !8, i64 0}
!16 = !{!17, !17, i64 0}
!17 = !{!"int", !8, i64 0}
!18 = distinct !{!18, !19, !20}
!19 = !{!"llvm.loop.mustprogress"}
!20 = !{!"llvm.loop.unswitch.partial.disable"}
!21 = distinct !{!21, !19, !20}
!22 = distinct !{!22, !19, !20}
!23 = !{i64 0, i64 4, !24, i64 4, i64 4, !26, i64 8, i64 4, !16, i64 12, i64 80, !28}
!24 = !{!25, !25, i64 0}
!25 = !{!"_ZTS8DataType", !8, i64 0}
!26 = !{!27, !27, i64 0}
!27 = !{!"_ZTS10DataFormat", !8, i64 0}
!28 = !{!8, !8, i64 0}
!29 = !{i64 0, i64 4, !16, i64 4, i64 4, !16, i64 8, i64 4, !16, i64 12, i64 4, !16, i64 16, i64 4, !16, i64 20, i64 4, !16, i64 24, i64 4, !16, i64 28, i64 4, !16, i64 32, i64 4, !16, i64 36, i64 4, !16, i64 40, i64 4, !16, i64 44, i64 4, !16, i64 48, i64 4, !16, i64 52, i64 4, !16, i64 56, i64 4, !16, i64 60, i64 4, !16, i64 64, i64 4, !16, i64 68, i64 4, !16, i64 72, i64 4, !30, i64 76, i64 4, !32, i64 80, i64 4, !32, i64 84, i64 8, !28, i64 92, i64 4, !33, i64 96, i64 4, !16, i64 100, i64 4, !16, i64 104, i64 4, !16}
!30 = !{!31, !31, i64 0}
!31 = !{!"_ZTS15ConvolutionMode", !8, i64 0}
!32 = !{!7, !7, i64 0}
!33 = !{!34, !34, i64 0}
!34 = !{!"_ZTS9RoundMode", !8, i64 0}
!35 = !{i64 0, i64 4, !16, i64 4, i64 4, !30, i64 8, i64 4, !32, i64 12, i64 4, !32, i64 16, i64 8, !28, i64 24, i64 4, !33, i64 28, i64 4, !16, i64 32, i64 4, !16, i64 36, i64 4, !16}
!36 = !{!15, !15, i64 0}
!37 = !{!38, !38, i64 0}
!38 = !{!"_ZTS27ConvolutionForwardAlgorithm", !8, i64 0}
!39 = distinct !{!39, !19}


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