; LLVM IR from huawei-noah/bolt :: compute/tensor/tests/test_convolution.ll (Z15convolutionTestiPPc8DataType)

; 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.ArchInfo = type { i32, ptr }
%struct.ActivationParamSpec = type { i32, [4 x float] }
%struct.TensorDesc = type { i32, i32, i32, [20 x i32] }
%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 }
%class.Tensor = type { %"class.std::shared_ptr", %"class.std::shared_ptr.0" }
%"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.0" = type { %"class.std::__shared_ptr.1" }
%"class.std::__shared_ptr.1" = type { ptr, %"class.std::__shared_count" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<Tensor, std::allocator<Tensor>>::_Vector_impl" }
%"struct.std::_Vector_base<Tensor, std::allocator<Tensor>>::_Vector_impl" = type { %"struct.std::_Vector_base<Tensor, std::allocator<Tensor>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Tensor, std::allocator<Tensor>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator" = type { i8 }

@.str = external hidden unnamed_addr constant [20 x i8], align 1
@stdout = external global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [23 x i8], align 1
@_ZL15UT_CPU_ARCHINFO = external hidden global %struct.ArchInfo, align 8
@.str.2 = external hidden unnamed_addr constant [18 x i8], align 1
@_ZL18UT_SERIAL_ARCHINFO = external hidden global %struct.ArchInfo, align 8
@.str.3 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [12 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_Z15convolutionTestiPPc8DataType(i32 noundef %0, ptr noundef %1, i32 noundef %2) #0 personality ptr @__gxx_personality_v0 {
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %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 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 i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca %struct.ActivationParamSpec, align 4
  %25 = alloca %struct.TensorDesc, align 4
  %26 = alloca %struct.TensorDesc, align 4
  %27 = alloca %struct.TensorDesc, align 4
  %28 = alloca %struct.TensorDesc, align 4
  %29 = alloca %struct.TensorDesc, align 4
  %30 = alloca %struct.TensorDesc, align 4
  %31 = alloca %struct.ConvolutionParamSpec, align 4
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca ptr, align 8
  %35 = alloca %class.Tensor, align 8
  %36 = alloca %class.Tensor, align 8
  %37 = alloca ptr, align 8
  %38 = alloca i32, align 4
  %39 = alloca %class.Tensor, align 8
  %40 = alloca %class.Tensor, align 8
  %41 = alloca %class.Tensor, align 8
  %42 = alloca %class.Tensor, align 8
  %43 = alloca %class.Tensor, align 8
  %44 = alloca %struct.TensorDesc, align 8
  %45 = alloca %struct.TensorDesc, align 8
  %46 = alloca %struct.TensorDesc, align 8
  %47 = alloca %struct.TensorDesc, align 8
  %48 = alloca %struct.TensorDesc, align 8
  %49 = alloca %class.Tensor, align 8
  %50 = alloca %class.Tensor, align 8
  %51 = alloca %class.Tensor, align 8
  %52 = alloca %class.Tensor, align 8
  %53 = alloca %class.Tensor, align 8
  %54 = alloca i32, align 4
  %55 = alloca %class.Tensor, align 8
  %56 = alloca %struct.ConvolutionParamSpec, align 8
  %57 = alloca i32, align 4
  %58 = alloca %struct.TensorDesc, align 4
  %59 = alloca %struct.TensorDesc, 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 i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca %class.Tensor, align 8
  %72 = alloca %class.Tensor, align 8
  %73 = alloca %class.Tensor, align 8
  %74 = alloca %struct.ConvolutionParamSpec, align 8
  %75 = alloca i32, align 4
  %76 = alloca %class.Tensor, align 8
  %77 = alloca %struct.TensorDesc, align 8
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca %class.Tensor, align 8
  %81 = alloca %struct.ConvolutionParamSpec, align 8
  %82 = alloca i32, align 4
  %83 = alloca %class.Tensor, align 8
  %84 = alloca %struct.TensorDesc, align 8
  %85 = alloca i32, align 4
  %86 = alloca %class.Tensor, align 8
  %87 = alloca %struct.ConvolutionParamSpec, align 8
  %88 = alloca %class.Tensor, align 8
  %89 = alloca i32, align 4
  %90 = alloca %"class.std::vector", align 8
  %91 = alloca %"class.std::allocator", align 1
  %92 = alloca %"class.std::vector", align 8
  %93 = alloca %"class.std::allocator", align 1
  %94 = alloca %"class.std::vector", align 8
  %95 = alloca %"class.std::allocator", align 1
  %96 = alloca i32, align 4
  %97 = alloca %"class.std::vector", align 8
  %98 = alloca %class.Tensor, align 8
  %99 = alloca %struct.ConvolutionParamSpec, align 8
  %100 = alloca %class.Tensor, align 8
  %101 = alloca %"class.std::vector", align 8
  %102 = alloca %class.Tensor, align 8
  %103 = alloca %struct.ActivationParamSpec, align 8
  %104 = alloca i32, align 4
  %105 = alloca i32, align 4
  %106 = alloca %"class.std::vector", align 8
  %107 = alloca %class.Tensor, align 8
  %108 = alloca %struct.ConvolutionParamSpec, align 8
  %109 = alloca %class.Tensor, align 8
  %110 = alloca %"class.std::vector", align 8
  %111 = alloca %class.Tensor, align 8
  %112 = alloca %struct.ActivationParamSpec, align 8
  %113 = alloca i32, align 4
  %114 = alloca %class.Tensor, align 8
  %115 = alloca %class.Tensor, align 8
  %116 = alloca double, align 8
  %117 = alloca i32, align 4
  %118 = alloca i32, align 4
  %119 = alloca %"class.std::vector", align 8
  %120 = alloca %class.Tensor, align 8
  %121 = alloca %struct.ConvolutionParamSpec, align 8
  %122 = alloca %class.Tensor, align 8
  %123 = alloca %"class.std::vector", align 8
  %124 = alloca %class.Tensor, align 8
  %125 = alloca %struct.ActivationParamSpec, align 8
  %126 = alloca i32, align 4
  %127 = alloca double, align 8
  %128 = alloca double, align 8
  %129 = alloca [150 x i8], align 16
  %130 = alloca [120 x i8], align 16
  %131 = alloca i32, align 4
  %132 = alloca i32, align 4
  %133 = alloca %struct.TensorDesc, align 8
  %134 = alloca i32, align 4
  %135 = alloca double, align 8
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  store i32 %2, ptr %6, align 4, !tbaa !11
  %136 = load i32, ptr %4, align 4, !tbaa !5
  %137 = icmp eq i32 %136, 16
  br i1 %137, label %148, label %138

138:                                              ; preds = %3
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #11
  %139 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %140 = trunc i64 %139 to i32
  store i32 %140, ptr %7, align 4, !tbaa !5
  %141 = load i32, ptr %7, align 4, !tbaa !5
  %142 = call i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %141)
  %143 = load ptr, ptr @stdout, align 8, !tbaa !9
  %144 = call i32 @fflush(ptr noundef %143)
  %145 = call i32 (ptr, ...) @printf(ptr noundef @.str.1)
  %146 = load ptr, ptr @stdout, align 8, !tbaa !9
  %147 = call i32 @fflush(ptr noundef %146)
  call void @exit(i32 noundef 1) #12
  unreachable

148:                                              ; preds = %3
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #11
  %149 = load ptr, ptr %5, align 8, !tbaa !9
  %150 = getelementptr inbounds ptr, ptr %149, i64 1
  %151 = load ptr, ptr %150, align 8, !tbaa !9
  %152 = call i32 @atoi(ptr noundef %151) #13
  store i32 %152, ptr %8, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #11
  %153 = load ptr, ptr %5, align 8, !tbaa !9
  %154 = getelementptr inbounds ptr, ptr %153, i64 2
  %155 = load ptr, ptr %154, align 8, !tbaa !9
  %156 = call i32 @atoi(ptr noundef %155) #13
  store i32 %156, ptr %9, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #11
  %157 = load ptr, ptr %5, align 8, !tbaa !9
  %158 = getelementptr inbounds ptr, ptr %157, i64 3
  %159 = load ptr, ptr %158, align 8, !tbaa !9
  %160 = call i32 @atoi(ptr noundef %159) #13
  store i32 %160, ptr %10, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #11
  %161 = load ptr, ptr %5, align 8, !tbaa !9
  %162 = getelementptr inbounds ptr, ptr %161, i64 4
  %163 = load ptr, ptr %162, align 8, !tbaa !9
  %164 = call i32 @atoi(ptr noundef %163) #13
  store i32 %164, ptr %11, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #11
  %165 = load ptr, ptr %5, align 8, !tbaa !9
  %166 = getelementptr inbounds ptr, ptr %165, i64 5
  %167 = load ptr, ptr %166, align 8, !tbaa !9
  %168 = call i32 @atoi(ptr noundef %167) #13
  store i32 %168, ptr %12, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #11
  %169 = load ptr, ptr %5, align 8, !tbaa !9
  %170 = getelementptr inbounds ptr, ptr %169, i64 6
  %171 = load ptr, ptr %170, align 8, !tbaa !9
  %172 = call i32 @atoi(ptr noundef %171) #13
  store i32 %172, ptr %13, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #11
  %173 = load ptr, ptr %5, align 8, !tbaa !9
  %174 = getelementptr inbounds ptr, ptr %173, i64 7
  %175 = load ptr, ptr %174, align 8, !tbaa !9
  %176 = call i32 @atoi(ptr noundef %175) #13
  store i32 %176, ptr %14, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #11
  %177 = load ptr, ptr %5, align 8, !tbaa !9
  %178 = getelementptr inbounds ptr, ptr %177, i64 8
  %179 = load ptr, ptr %178, align 8, !tbaa !9
  %180 = call i32 @atoi(ptr noundef %179) #13
  store i32 %180, ptr %15, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #11
  %181 = load ptr, ptr %5, align 8, !tbaa !9
  %182 = getelementptr inbounds ptr, ptr %181, i64 9
  %183 = load ptr, ptr %182, align 8, !tbaa !9
  %184 = call i32 @atoi(ptr noundef %183) #13
  store i32 %184, ptr %16, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #11
  %185 = load ptr, ptr %5, align 8, !tbaa !9
  %186 = getelementptr inbounds ptr, ptr %185, i64 10
  %187 = load ptr, ptr %186, align 8, !tbaa !9
  %188 = call i32 @atoi(ptr noundef %187) #13
  store i32 %188, ptr %17, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #11
  %189 = load ptr, ptr %5, align 8, !tbaa !9
  %190 = getelementptr inbounds ptr, ptr %189, i64 11
  %191 = load ptr, ptr %190, align 8, !tbaa !9
  %192 = call i32 @atoi(ptr noundef %191) #13
  store i32 %192, ptr %18, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #11
  %193 = load ptr, ptr %5, align 8, !tbaa !9
  %194 = getelementptr inbounds ptr, ptr %193, i64 12
  %195 = load ptr, ptr %194, align 8, !tbaa !9
  %196 = call i32 @atoi(ptr noundef %195) #13
  store i32 %196, ptr %19, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #11
  %197 = load ptr, ptr %5, align 8, !tbaa !9
  %198 = getelementptr inbounds ptr, ptr %197, i64 13
  %199 = load ptr, ptr %198, align 8, !tbaa !9
  %200 = call i32 @atoi(ptr noundef %199) #13
  store i32 %200, ptr %20, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #11
  %201 = load ptr, ptr %5, align 8, !tbaa !9
  %202 = getelementptr inbounds ptr, ptr %201, i64 14
  %203 = load ptr, ptr %202, align 8, !tbaa !9
  %204 = call i32 @atoi(ptr noundef %203) #13
  store i32 %204, ptr %21, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #11
  %205 = load ptr, ptr %5, align 8, !tbaa !9
  %206 = getelementptr inbounds ptr, ptr %205, i64 15
  %207 = load ptr, ptr %206, align 8, !tbaa !9
  %208 = call i32 @atoi(ptr noundef %207) #13
  store i32 %208, ptr %22, align 4, !tbaa !5
  %209 = load i32, ptr %8, align 4, !tbaa !5
  %210 = icmp eq i32 %209, 1
  br i1 %210, label %211, label %214

211:                                              ; preds = %148
  %212 = load i32, ptr %19, align 4, !tbaa !5
  %213 = icmp eq i32 %212, 1
  br i1 %213, label %224, label %214

214:                                              ; preds = %211, %148
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #11
  %215 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %216 = trunc i64 %215 to i32
  store i32 %216, ptr %23, align 4, !tbaa !5
  %217 = load i32, ptr %23, align 4, !tbaa !5
  %218 = call i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %217)
  %219 = load ptr, ptr @stdout, align 8, !tbaa !9
  %220 = call i32 @fflush(ptr noundef %219)
  %221 = call i32 (ptr, ...) @printf(ptr noundef @.str.1)
  %222 = load ptr, ptr @stdout, align 8, !tbaa !9
  %223 = call i32 @fflush(ptr noundef %222)
  call void @exit(i32 noundef 1) #12
  unreachable

224:                                              ; preds = %211
  call void @llvm.lifetime.start.p0(i64 20, ptr %24) #11
  call void @_ZN19ActivationParamSpecC2Ev(ptr noundef nonnull align 4 dereferenceable(20) %24) #11
  %225 = getelementptr inbounds %struct.ActivationParamSpec, ptr %24, i32 0, i32 0
  store i32 1, ptr %225, align 4, !tbaa !13
  %226 = getelementptr inbounds %struct.ActivationParamSpec, ptr %24, i32 0, i32 1
  %227 = getelementptr inbounds [4 x float], ptr %226, i64 0, i64 0
  store float 0.000000e+00, ptr %227, align 4, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 92, ptr %25) #11
  call void @_ZN10TensorDescC2Ev(ptr noundef nonnull align 4 dereferenceable(92) %25) #11
  call void @llvm.lifetime.start.p0(i64 92, ptr %26) #11
  call void @_ZN10TensorDescC2Ev(ptr noundef nonnull align 4 dereferenceable(92) %26) #11
  %228 = load i32, ptr %9, align 4, !tbaa !5
  %229 = urem i32 %228, 8
  %230 = icmp ne i32 %229, 0
  br i1 %230, label %231, label %237

231:                                              ; preds = %224
  call void @llvm.lifetime.start.p0(i64 92, ptr %27) #11
  %232 = load i32, ptr %6, align 4, !tbaa !11
  %233 = load i32, ptr %8, align 4, !tbaa !5
  %234 = load i32, ptr %9, align 4, !tbaa !5
  %235 = load i32, ptr %10, align 4, !tbaa !5
  %236 = load i32, ptr %11, align 4, !tbaa !5
  call void @_Z9tensor4df8DataType10DataFormatjjjj(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %27, i32 noundef %232, i32 noundef 0, i32 noundef %233, i32 noundef %234, i32 noundef %235, i32 noundef %236)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %25, ptr align 4 %27, i64 92, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 92, ptr %27) #11
  br label %243

237:                                              ; preds = %224
  call void @llvm.lifetime.start.p0(i64 92, ptr %28) #11
  %238 = load i32, ptr %6, align 4, !tbaa !11
  %239 = load i32, ptr %8, align 4, !tbaa !5
  %240 = load i32, ptr %9, align 4, !tbaa !5
  %241 = load i32, ptr %10, align 4, !tbaa !5
  %242 = load i32, ptr %11, align 4, !tbaa !5
  call void @_Z9tensor4df8DataType10DataFormatjjjj(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %28, i32 noundef %238, i32 noundef 2, i32 noundef %239, i32 noundef %240, i32 noundef %241, i32 noundef %242)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %25, ptr align 4 %28, i64 92, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 92, ptr %28) #11
  br label %243

243:                                              ; preds = %237, %231
  call void @llvm.lifetime.start.p0(i64 92, ptr %29) #11
  %244 = load i32, ptr %6, align 4, !tbaa !11
  %245 = load i32, ptr %12, align 4, !tbaa !5
  %246 = load i32, ptr %13, align 4, !tbaa !5
  %247 = load i32, ptr %14, align 4, !tbaa !5
  %248 = load i32, ptr %15, align 4, !tbaa !5
  call void @_Z9tensor4df8DataType10DataFormatjjjj(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %29, i32 noundef %244, i32 noundef 0, i32 noundef %245, i32 noundef %246, i32 noundef %247, i32 noundef %248)
  call void @llvm.lifetime.start.p0(i64 92, ptr %30) #11
  %249 = load i32, ptr %6, align 4, !tbaa !11
  %250 = load i32, ptr %20, align 4, !tbaa !5
  call void @_Z8tensor1d8DataTypej(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %30, i32 noundef %249, i32 noundef %250)
  call void @llvm.lifetime.start.p0(i64 108, ptr %31) #11
  %251 = load i32, ptr %16, align 4, !tbaa !5
  %252 = load i32, ptr %14, align 4, !tbaa !5
  %253 = load i32, ptr %15, align 4, !tbaa !5
  %254 = load i32, ptr %17, align 4, !tbaa !5
  %255 = load i32, ptr %17, align 4, !tbaa !5
  %256 = load i32, ptr %18, align 4, !tbaa !5
  %257 = load i32, ptr %18, align 4, !tbaa !5
  %258 = load i32, ptr %18, align 4, !tbaa !5
  %259 = load i32, ptr %18, align 4, !tbaa !5
  %260 = load i32, ptr %12, align 4, !tbaa !5
  call void @_Z26createConvolutionParamSpecjjjjjjjjjjjjjjjjj15ConvolutionMode(ptr dead_on_unwind writable sret(%struct.ConvolutionParamSpec) align 4 %31, i32 noundef %251, i32 noundef 1, i32 noundef %252, i32 noundef %253, i32 noundef 1, i32 noundef %254, i32 noundef %255, i32 noundef 0, i32 noundef 0, i32 noundef %256, i32 noundef %257, i32 noundef %258, i32 noundef %259, i32 noundef 1, i32 noundef 1, i32 noundef 1, i32 noundef %260, i32 noundef 3)
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #11
  %261 = load i32, ptr %8, align 4, !tbaa !5
  %262 = load i32, ptr %9, align 4, !tbaa !5
  %263 = mul i32 %261, %262
  %264 = load i32, ptr %10, align 4, !tbaa !5
  %265 = mul i32 %263, %264
  %266 = load i32, ptr %11, align 4, !tbaa !5
  %267 = mul i32 %265, %266
  %268 = load i32, ptr %6, align 4, !tbaa !11
  %269 = call noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef %267, i32 noundef %268, i32 noundef 0)
  store ptr %269, ptr %32, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #11
  %270 = load i32, ptr %12, align 4, !tbaa !5
  %271 = load i32, ptr %13, align 4, !tbaa !5
  %272 = mul i32 %270, %271
  %273 = load i32, ptr %14, align 4, !tbaa !5
  %274 = mul i32 %272, %273
  %275 = load i32, ptr %15, align 4, !tbaa !5
  %276 = mul i32 %274, %275
  %277 = load i32, ptr %6, align 4, !tbaa !11
  %278 = call noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef %276, i32 noundef %277, i32 noundef 0)
  store ptr %278, ptr %33, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #11
  %279 = load i32, ptr %20, align 4, !tbaa !5
  %280 = load i32, ptr %6, align 4, !tbaa !11
  %281 = call noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef %279, i32 noundef %280, i32 noundef 0)
  store ptr %281, ptr %34, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #11
  call void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %35, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #11
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %36, i32 noundef 1)
          to label %282 unwind label %394

282:                                              ; preds = %243
  call void @llvm.lifetime.start.p0(i64 32, ptr %39) #11
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %39, i32 noundef 1)
          to label %283 unwind label %398

283:                                              ; preds = %282
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #11
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %40, i32 noundef 1)
          to label %284 unwind label %402

284:                                              ; preds = %283
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #11
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %41, i32 noundef 1)
          to label %285 unwind label %406

285:                                              ; preds = %284
  call void @llvm.lifetime.start.p0(i64 32, ptr %42) #11
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %42, i32 noundef 1)
          to label %286 unwind label %410

286:                                              ; preds = %285
  call void @llvm.lifetime.start.p0(i64 32, ptr %43) #11
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %43, i32 noundef 1)
          to label %287 unwind label %414

287:                                              ; preds = %286
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %44, ptr align 4 %25, i64 92, i1 false), !tbaa.struct !18
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef byval(%struct.TensorDesc) align 8 %44)
          to label %288 unwind label %418

288:                                              ; preds = %287
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %45, ptr align 4 %25, i64 92, i1 false), !tbaa.struct !18
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef byval(%struct.TensorDesc) align 8 %45)
          to label %289 unwind label %418

289:                                              ; preds = %288
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %46, ptr align 4 %29, i64 92, i1 false), !tbaa.struct !18
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef byval(%struct.TensorDesc) align 8 %46)
          to label %290 unwind label %418

290:                                              ; preds = %289
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %47, ptr align 4 %29, i64 92, i1 false), !tbaa.struct !18
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef byval(%struct.TensorDesc) align 8 %47)
          to label %291 unwind label %418

291:                                              ; preds = %290
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %48, ptr align 4 %30, i64 92, i1 false), !tbaa.struct !18
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef byval(%struct.TensorDesc) align 8 %48)
          to label %292 unwind label %418

292:                                              ; preds = %291
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %293 unwind label %418

293:                                              ; preds = %292
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %294 unwind label %418

294:                                              ; preds = %293
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %295 unwind label %418

295:                                              ; preds = %294
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %296 unwind label %418

296:                                              ; preds = %295
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %297 unwind label %418

297:                                              ; preds = %296
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull align 8 dereferenceable(32) %35) #11
  %298 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %49, i32 noundef 1)
          to label %299 unwind label %422

299:                                              ; preds = %297
  %300 = load ptr, ptr %32, align 8, !tbaa !9
  %301 = load i32, ptr %6, align 4, !tbaa !11
  %302 = invoke noundef i32 @_Z7bytesOf8DataType(i32 noundef %301)
          to label %303 unwind label %422

303:                                              ; preds = %299
  %304 = load i32, ptr %8, align 4, !tbaa !5
  %305 = mul i32 %302, %304
  %306 = load i32, ptr %9, align 4, !tbaa !5
  %307 = mul i32 %305, %306
  %308 = load i32, ptr %10, align 4, !tbaa !5
  %309 = mul i32 %307, %308
  %310 = load i32, ptr %11, align 4, !tbaa !5
  %311 = mul i32 %309, %310
  %312 = zext i32 %311 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %298, ptr noundef %300, i64 noundef %312)
          to label %313 unwind label %422

313:                                              ; preds = %303
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull align 8 dereferenceable(32) %36) #11
  %314 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %50, i32 noundef 1)
          to label %315 unwind label %426

315:                                              ; preds = %313
  %316 = load ptr, ptr %32, align 8, !tbaa !9
  %317 = load i32, ptr %6, align 4, !tbaa !11
  %318 = invoke noundef i32 @_Z7bytesOf8DataType(i32 noundef %317)
          to label %319 unwind label %426

319:                                              ; preds = %315
  %320 = load i32, ptr %8, align 4, !tbaa !5
  %321 = mul i32 %318, %320
  %322 = load i32, ptr %9, align 4, !tbaa !5
  %323 = mul i32 %321, %322
  %324 = load i32, ptr %10, align 4, !tbaa !5
  %325 = mul i32 %323, %324
  %326 = load i32, ptr %11, align 4, !tbaa !5
  %327 = mul i32 %325, %326
  %328 = zext i32 %327 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %314, ptr noundef %316, i64 noundef %328)
          to label %329 unwind label %426

329:                                              ; preds = %319
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull align 8 dereferenceable(32) %39) #11
  %330 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %51, i32 noundef 1)
          to label %331 unwind label %430

331:                                              ; preds = %329
  %332 = load ptr, ptr %33, align 8, !tbaa !9
  %333 = load i32, ptr %6, align 4, !tbaa !11
  %334 = invoke noundef i32 @_Z7bytesOf8DataType(i32 noundef %333)
          to label %335 unwind label %430

335:                                              ; preds = %331
  %336 = load i32, ptr %12, align 4, !tbaa !5
  %337 = mul i32 %334, %336
  %338 = load i32, ptr %13, align 4, !tbaa !5
  %339 = mul i32 %337, %338
  %340 = load i32, ptr %14, align 4, !tbaa !5
  %341 = mul i32 %339, %340
  %342 = load i32, ptr %15, align 4, !tbaa !5
  %343 = mul i32 %341, %342
  %344 = zext i32 %343 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %330, ptr noundef %332, i64 noundef %344)
          to label %345 unwind label %430

345:                                              ; preds = %335
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull align 8 dereferenceable(32) %40) #11
  %346 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %52, i32 noundef 1)
          to label %347 unwind label %434

347:                                              ; preds = %345
  %348 = load ptr, ptr %33, align 8, !tbaa !9
  %349 = load i32, ptr %6, align 4, !tbaa !11
  %350 = invoke noundef i32 @_Z7bytesOf8DataType(i32 noundef %349)
          to label %351 unwind label %434

351:                                              ; preds = %347
  %352 = load i32, ptr %12, align 4, !tbaa !5
  %353 = mul i32 %350, %352
  %354 = load i32, ptr %13, align 4, !tbaa !5
  %355 = mul i32 %353, %354
  %356 = load i32, ptr %14, align 4, !tbaa !5
  %357 = mul i32 %355, %356
  %358 = load i32, ptr %15, align 4, !tbaa !5
  %359 = mul i32 %357, %358
  %360 = zext i32 %359 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %346, ptr noundef %348, i64 noundef %360)
          to label %361 unwind label %434

361:                                              ; preds = %351
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %43) #11
  %362 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %53, i32 noundef 1)
          to label %363 unwind label %438

363:                                              ; preds = %361
  %364 = load ptr, ptr %34, align 8, !tbaa !9
  %365 = load i32, ptr %6, align 4, !tbaa !11
  %366 = invoke noundef i32 @_Z7bytesOf8DataType(i32 noundef %365)
          to label %367 unwind label %438

367:                                              ; preds = %363
  %368 = load i32, ptr %20, align 4, !tbaa !5
  %369 = mul i32 %366, %368
  %370 = zext i32 %369 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %362, ptr noundef %364, i64 noundef %370)
          to label %371 unwind label %438

371:                                              ; preds = %367
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull align 8 dereferenceable(32) %39) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %56, ptr align 4 %31, i64 108, i1 false), !tbaa.struct !22
  %372 = load i32, ptr %6, align 4, !tbaa !11
  %373 = invoke noundef i32 @_Z29convolution_infer_output_sizeP6TensorS_20ConvolutionParamSpecS0_8DataTypeP8ArchInfo(ptr noundef %35, ptr noundef %55, ptr noundef byval(%struct.ConvolutionParamSpec) align 8 %56, ptr noundef %41, i32 noundef %372, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %374 unwind label %442

374:                                              ; preds = %371
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #11
  store i32 %373, ptr %54, align 4, !tbaa !28
  %375 = load i32, ptr %54, align 4, !tbaa !28
  %376 = icmp ne i32 %375, 0
  br i1 %376, label %377, label %450

377:                                              ; preds = %374
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #11
  %378 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %379 = trunc i64 %378 to i32
  store i32 %379, ptr %57, align 4, !tbaa !5
  %380 = load i32, ptr %57, align 4, !tbaa !5
  %381 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %380)
          to label %382 unwind label %446

382:                                              ; preds = %377
  %383 = load ptr, ptr @stdout, align 8, !tbaa !9
  %384 = invoke i32 @fflush(ptr noundef %383)
          to label %385 unwind label %446

385:                                              ; preds = %382
  %386 = load i32, ptr %54, align 4, !tbaa !28
  %387 = invoke ptr @ee2str(i32 noundef %386)
          to label %388 unwind label %446

388:                                              ; preds = %385
  %389 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %387)
          to label %390 unwind label %446

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

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

394:                                              ; preds = %243
  %395 = landingpad { ptr, i32 }
          cleanup
  %396 = extractvalue { ptr, i32 } %395, 0
  store ptr %396, ptr %37, align 8
  %397 = extractvalue { ptr, i32 } %395, 1
  store i32 %397, ptr %38, align 4
  br label %910

398:                                              ; preds = %282
  %399 = landingpad { ptr, i32 }
          cleanup
  %400 = extractvalue { ptr, i32 } %399, 0
  store ptr %400, ptr %37, align 8
  %401 = extractvalue { ptr, i32 } %399, 1
  store i32 %401, ptr %38, align 4
  br label %909

402:                                              ; preds = %283
  %403 = landingpad { ptr, i32 }
          cleanup
  %404 = extractvalue { ptr, i32 } %403, 0
  store ptr %404, ptr %37, align 8
  %405 = extractvalue { ptr, i32 } %403, 1
  store i32 %405, ptr %38, align 4
  br label %908

406:                                              ; preds = %284
  %407 = landingpad { ptr, i32 }
          cleanup
  %408 = extractvalue { ptr, i32 } %407, 0
  store ptr %408, ptr %37, align 8
  %409 = extractvalue { ptr, i32 } %407, 1
  store i32 %409, ptr %38, align 4
  br label %907

410:                                              ; preds = %285
  %411 = landingpad { ptr, i32 }
          cleanup
  %412 = extractvalue { ptr, i32 } %411, 0
  store ptr %412, ptr %37, align 8
  %413 = extractvalue { ptr, i32 } %411, 1
  store i32 %413, ptr %38, align 4
  br label %906

414:                                              ; preds = %286
  %415 = landingpad { ptr, i32 }
          cleanup
  %416 = extractvalue { ptr, i32 } %415, 0
  store ptr %416, ptr %37, align 8
  %417 = extractvalue { ptr, i32 } %415, 1
  store i32 %417, ptr %38, align 4
  br label %905

418:                                              ; preds = %454, %453, %452, %451, %296, %295, %294, %293, %292, %291, %290, %289, %288, %287
  %419 = landingpad { ptr, i32 }
          cleanup
  %420 = extractvalue { ptr, i32 } %419, 0
  store ptr %420, ptr %37, align 8
  %421 = extractvalue { ptr, i32 } %419, 1
  store i32 %421, ptr %38, align 4
  br label %904

422:                                              ; preds = %303, %299, %297
  %423 = landingpad { ptr, i32 }
          cleanup
  %424 = extractvalue { ptr, i32 } %423, 0
  store ptr %424, ptr %37, align 8
  %425 = extractvalue { ptr, i32 } %423, 1
  store i32 %425, ptr %38, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #11
  br label %904

426:                                              ; preds = %319, %315, %313
  %427 = landingpad { ptr, i32 }
          cleanup
  %428 = extractvalue { ptr, i32 } %427, 0
  store ptr %428, ptr %37, align 8
  %429 = extractvalue { ptr, i32 } %427, 1
  store i32 %429, ptr %38, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #11
  br label %904

430:                                              ; preds = %335, %331, %329
  %431 = landingpad { ptr, i32 }
          cleanup
  %432 = extractvalue { ptr, i32 } %431, 0
  store ptr %432, ptr %37, align 8
  %433 = extractvalue { ptr, i32 } %431, 1
  store i32 %433, ptr %38, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #11
  br label %904

434:                                              ; preds = %351, %347, %345
  %435 = landingpad { ptr, i32 }
          cleanup
  %436 = extractvalue { ptr, i32 } %435, 0
  store ptr %436, ptr %37, align 8
  %437 = extractvalue { ptr, i32 } %435, 1
  store i32 %437, ptr %38, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #11
  br label %904

438:                                              ; preds = %367, %363, %361
  %439 = landingpad { ptr, i32 }
          cleanup
  %440 = extractvalue { ptr, i32 } %439, 0
  store ptr %440, ptr %37, align 8
  %441 = extractvalue { ptr, i32 } %439, 1
  store i32 %441, ptr %38, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #11
  br label %904

442:                                              ; preds = %371
  %443 = landingpad { ptr, i32 }
          cleanup
  %444 = extractvalue { ptr, i32 } %443, 0
  store ptr %444, ptr %37, align 8
  %445 = extractvalue { ptr, i32 } %443, 1
  store i32 %445, ptr %38, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #11
  br label %479

446:                                              ; preds = %390, %388, %385, %382, %377
  %447 = landingpad { ptr, i32 }
          cleanup
  %448 = extractvalue { ptr, i32 } %447, 0
  store ptr %448, ptr %37, align 8
  %449 = extractvalue { ptr, i32 } %447, 1
  store i32 %449, ptr %38, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #11
  br label %479

450:                                              ; preds = %374
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #11
  call void @llvm.lifetime.start.p0(i64 92, ptr %58) #11
  invoke void @_ZN6Tensor8get_descEv(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %58, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %451 unwind label %480

451:                                              ; preds = %450
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %26, ptr align 4 %58, i64 92, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 92, ptr %58) #11
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %452 unwind label %418

452:                                              ; preds = %451
  invoke void @_ZN6Tensor8get_descEv(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %59, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %453 unwind label %418

453:                                              ; preds = %452
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef byval(%struct.TensorDesc) align 8 %59)
          to label %454 unwind label %418

454:                                              ; preds = %453
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %42)
          to label %455 unwind label %418

455:                                              ; preds = %454
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #11
  store i32 1, ptr %60, align 4, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #11
  store i32 9, ptr %61, align 4, !tbaa !32
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull align 8 dereferenceable(32) %35) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull align 8 dereferenceable(32) %39) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef nonnull align 8 dereferenceable(32) %41) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %66, ptr align 4 %31, i64 108, i1 false), !tbaa.struct !22
  %456 = load i32, ptr %60, align 4, !tbaa !30
  %457 = load i32, ptr %6, align 4, !tbaa !11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %67, ptr align 4 %24, i64 20, i1 false), !tbaa.struct !34
  %458 = 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 %456, ptr noundef %61, i32 noundef %457, ptr noundef byval(%struct.ActivationParamSpec) align 8 %67, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %459 unwind label %484

459:                                              ; preds = %455
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #11
  store i32 %458, ptr %62, align 4, !tbaa !28
  %460 = load i32, ptr %62, align 4, !tbaa !28
  %461 = icmp ne i32 %460, 0
  br i1 %461, label %462, label %492

462:                                              ; preds = %459
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #11
  %463 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %464 = trunc i64 %463 to i32
  store i32 %464, ptr %68, align 4, !tbaa !5
  %465 = load i32, ptr %68, align 4, !tbaa !5
  %466 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %465)
          to label %467 unwind label %488

467:                                              ; preds = %462
  %468 = load ptr, ptr @stdout, align 8, !tbaa !9
  %469 = invoke i32 @fflush(ptr noundef %468)
          to label %470 unwind label %488

470:                                              ; preds = %467
  %471 = load i32, ptr %62, align 4, !tbaa !28
  %472 = invoke ptr @ee2str(i32 noundef %471)
          to label %473 unwind label %488

473:                                              ; preds = %470
  %474 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %472)
          to label %475 unwind label %488

475:                                              ; preds = %473
  %476 = load ptr, ptr @stdout, align 8, !tbaa !9
  %477 = invoke i32 @fflush(ptr noundef %476)
          to label %478 unwind label %488

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

479:                                              ; preds = %446, %442
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #11
  br label %904

480:                                              ; preds = %450
  %481 = landingpad { ptr, i32 }
          cleanup
  %482 = extractvalue { ptr, i32 } %481, 0
  store ptr %482, ptr %37, align 8
  %483 = extractvalue { ptr, i32 } %481, 1
  store i32 %483, ptr %38, align 4
  call void @llvm.lifetime.end.p0(i64 92, ptr %58) #11
  br label %904

484:                                              ; preds = %455
  %485 = landingpad { ptr, i32 }
          cleanup
  %486 = extractvalue { ptr, i32 } %485, 0
  store ptr %486, ptr %37, align 8
  %487 = extractvalue { ptr, i32 } %485, 1
  store i32 %487, ptr %38, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #11
  br label %515

488:                                              ; preds = %475, %473, %470, %467, %462
  %489 = landingpad { ptr, i32 }
          cleanup
  %490 = extractvalue { ptr, i32 } %489, 0
  store ptr %490, ptr %37, align 8
  %491 = extractvalue { ptr, i32 } %489, 1
  store i32 %491, ptr %38, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #11
  br label %515

492:                                              ; preds = %459
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef nonnull align 8 dereferenceable(32) %35) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef nonnull align 8 dereferenceable(32) %39) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull align 8 dereferenceable(32) %41) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %74, ptr align 4 %31, i64 108, i1 false), !tbaa.struct !22
  %493 = load i32, ptr %61, align 4, !tbaa !32
  %494 = invoke noundef i32 @_Z35convolution_infer_forward_tmp_bytes6TensorS_S_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPjP8ArchInfo(ptr noundef %71, ptr noundef %72, ptr noundef %73, ptr noundef byval(%struct.ConvolutionParamSpec) align 8 %74, i32 noundef %493, ptr noundef %69, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %495 unwind label %516

495:                                              ; preds = %492
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #11
  store i32 %494, ptr %70, align 4, !tbaa !28
  %496 = load i32, ptr %70, align 4, !tbaa !28
  %497 = icmp ne i32 %496, 0
  br i1 %497, label %498, label %524

498:                                              ; preds = %495
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #11
  %499 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %500 = trunc i64 %499 to i32
  store i32 %500, ptr %75, align 4, !tbaa !5
  %501 = load i32, ptr %75, align 4, !tbaa !5
  %502 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %501)
          to label %503 unwind label %520

503:                                              ; preds = %498
  %504 = load ptr, ptr @stdout, align 8, !tbaa !9
  %505 = invoke i32 @fflush(ptr noundef %504)
          to label %506 unwind label %520

506:                                              ; preds = %503
  %507 = load i32, ptr %70, align 4, !tbaa !28
  %508 = invoke ptr @ee2str(i32 noundef %507)
          to label %509 unwind label %520

509:                                              ; preds = %506
  %510 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %508)
          to label %511 unwind label %520

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

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

515:                                              ; preds = %488, %484
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #11
  br label %903

516:                                              ; preds = %492
  %517 = landingpad { ptr, i32 }
          cleanup
  %518 = extractvalue { ptr, i32 } %517, 0
  store ptr %518, ptr %37, align 8
  %519 = extractvalue { ptr, i32 } %517, 1
  store i32 %519, ptr %38, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #11
  br label %552

520:                                              ; preds = %511, %509, %506, %503, %498
  %521 = landingpad { ptr, i32 }
          cleanup
  %522 = extractvalue { ptr, i32 } %521, 0
  store ptr %522, ptr %37, align 8
  %523 = extractvalue { ptr, i32 } %521, 1
  store i32 %523, ptr %38, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #11
  br label %552

524:                                              ; preds = %495
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #11
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %76, i32 noundef 1)
          to label %525 unwind label %553

525:                                              ; preds = %524
  %526 = load i32, ptr %69, align 4, !tbaa !5
  invoke void @_Z8tensor1d8DataTypej(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %77, i32 noundef 0, i32 noundef %526)
          to label %527 unwind label %557

527:                                              ; preds = %525
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef byval(%struct.TensorDesc) align 8 %77)
          to label %528 unwind label %557

528:                                              ; preds = %527
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %76)
          to label %529 unwind label %557

529:                                              ; preds = %528
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %80, ptr noundef nonnull align 8 dereferenceable(32) %39) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %81, ptr align 4 %31, i64 108, i1 false), !tbaa.struct !22
  %530 = load i32, ptr %61, align 4, !tbaa !32
  %531 = invoke noundef i32 @_Z34convolution_transform_filter_bytes6Tensor20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvP8ArchInfo(ptr noundef %80, ptr noundef byval(%struct.ConvolutionParamSpec) align 8 %81, i32 noundef %530, ptr noundef %78, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %532 unwind label %561

532:                                              ; preds = %529
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #11
  store i32 %531, ptr %79, align 4, !tbaa !28
  %533 = load i32, ptr %79, align 4, !tbaa !28
  %534 = icmp ne i32 %533, 0
  br i1 %534, label %535, label %569

535:                                              ; preds = %532
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #11
  %536 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %537 = trunc i64 %536 to i32
  store i32 %537, ptr %82, align 4, !tbaa !5
  %538 = load i32, ptr %82, align 4, !tbaa !5
  %539 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %538)
          to label %540 unwind label %565

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

543:                                              ; preds = %540
  %544 = load i32, ptr %79, align 4, !tbaa !28
  %545 = invoke ptr @ee2str(i32 noundef %544)
          to label %546 unwind label %565

546:                                              ; preds = %543
  %547 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %545)
          to label %548 unwind label %565

548:                                              ; preds = %546
  %549 = load ptr, ptr @stdout, align 8, !tbaa !9
  %550 = invoke i32 @fflush(ptr noundef %549)
          to label %551 unwind label %565

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

552:                                              ; preds = %520, %516
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #11
  br label %902

553:                                              ; preds = %524
  %554 = landingpad { ptr, i32 }
          cleanup
  %555 = extractvalue { ptr, i32 } %554, 0
  store ptr %555, ptr %37, align 8
  %556 = extractvalue { ptr, i32 } %554, 1
  store i32 %556, ptr %38, align 4
  br label %901

557:                                              ; preds = %528, %527, %525
  %558 = landingpad { ptr, i32 }
          cleanup
  %559 = extractvalue { ptr, i32 } %558, 0
  store ptr %559, ptr %37, align 8
  %560 = extractvalue { ptr, i32 } %558, 1
  store i32 %560, ptr %38, align 4
  br label %900

561:                                              ; preds = %529
  %562 = landingpad { ptr, i32 }
          cleanup
  %563 = extractvalue { ptr, i32 } %562, 0
  store ptr %563, ptr %37, align 8
  %564 = extractvalue { ptr, i32 } %562, 1
  store i32 %564, ptr %38, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #11
  br label %597

565:                                              ; preds = %548, %546, %543, %540, %535
  %566 = landingpad { ptr, i32 }
          cleanup
  %567 = extractvalue { ptr, i32 } %566, 0
  store ptr %567, ptr %37, align 8
  %568 = extractvalue { ptr, i32 } %566, 1
  store i32 %568, ptr %38, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #11
  br label %597

569:                                              ; preds = %532
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %83) #11
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %83, i32 noundef 1)
          to label %570 unwind label %598

570:                                              ; preds = %569
  %571 = load i32, ptr %78, align 4, !tbaa !5
  invoke void @_Z8tensor1d8DataTypej(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %84, i32 noundef 0, i32 noundef %571)
          to label %572 unwind label %602

572:                                              ; preds = %570
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef byval(%struct.TensorDesc) align 8 %84)
          to label %573 unwind label %602

573:                                              ; preds = %572
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %83)
          to label %574 unwind label %602

574:                                              ; preds = %573
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef nonnull align 8 dereferenceable(32) %39) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %87, ptr align 4 %31, i64 108, i1 false), !tbaa.struct !22
  %575 = load i32, ptr %61, align 4, !tbaa !32
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %88, ptr noundef nonnull align 8 dereferenceable(32) %76) #11
  %576 = invoke noundef i32 @_Z28convolution_transform_filter6Tensor20ConvolutionParamSpec27ConvolutionForwardAlgorithmS_PS_P8ArchInfo(ptr noundef %86, ptr noundef byval(%struct.ConvolutionParamSpec) align 8 %87, i32 noundef %575, ptr noundef %88, ptr noundef %83, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %577 unwind label %606

577:                                              ; preds = %574
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #11
  store i32 %576, ptr %85, align 4, !tbaa !28
  %578 = load i32, ptr %85, align 4, !tbaa !28
  %579 = icmp ne i32 %578, 0
  br i1 %579, label %580, label %614

580:                                              ; preds = %577
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #11
  %581 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %582 = trunc i64 %581 to i32
  store i32 %582, ptr %89, align 4, !tbaa !5
  %583 = load i32, ptr %89, align 4, !tbaa !5
  %584 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %583)
          to label %585 unwind label %610

585:                                              ; preds = %580
  %586 = load ptr, ptr @stdout, align 8, !tbaa !9
  %587 = invoke i32 @fflush(ptr noundef %586)
          to label %588 unwind label %610

588:                                              ; preds = %585
  %589 = load i32, ptr %85, align 4, !tbaa !28
  %590 = invoke ptr @ee2str(i32 noundef %589)
          to label %591 unwind label %610

591:                                              ; preds = %588
  %592 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %590)
          to label %593 unwind label %610

593:                                              ; preds = %591
  %594 = load ptr, ptr @stdout, align 8, !tbaa !9
  %595 = invoke i32 @fflush(ptr noundef %594)
          to label %596 unwind label %610

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

597:                                              ; preds = %565, %561
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #11
  br label %899

598:                                              ; preds = %569
  %599 = landingpad { ptr, i32 }
          cleanup
  %600 = extractvalue { ptr, i32 } %599, 0
  store ptr %600, ptr %37, align 8
  %601 = extractvalue { ptr, i32 } %599, 1
  store i32 %601, ptr %38, align 4
  br label %898

602:                                              ; preds = %573, %572, %570
  %603 = landingpad { ptr, i32 }
          cleanup
  %604 = extractvalue { ptr, i32 } %603, 0
  store ptr %604, ptr %37, align 8
  %605 = extractvalue { ptr, i32 } %603, 1
  store i32 %605, ptr %38, align 4
  br label %897

606:                                              ; preds = %574
  %607 = landingpad { ptr, i32 }
          cleanup
  %608 = extractvalue { ptr, i32 } %607, 0
  store ptr %608, ptr %37, align 8
  %609 = extractvalue { ptr, i32 } %607, 1
  store i32 %609, ptr %38, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #11
  br label %642

610:                                              ; preds = %593, %591, %588, %585, %580
  %611 = landingpad { ptr, i32 }
          cleanup
  %612 = extractvalue { ptr, i32 } %611, 0
  store ptr %612, ptr %37, align 8
  %613 = extractvalue { ptr, i32 } %611, 1
  store i32 %613, ptr %38, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #11
  br label %642

614:                                              ; preds = %577
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %90) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %91) #11
  call void @_ZNSaI6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2EmRKS0_RKS1_(ptr noundef nonnull align 8 dereferenceable(24) %90, i64 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull align 1 dereferenceable(1) %91)
          to label %615 unwind label %643

615:                                              ; preds = %614
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %92) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %93) #11
  call void @_ZNSaI6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2EmRKS0_RKS1_(ptr noundef nonnull align 8 dereferenceable(24) %92, i64 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull align 1 dereferenceable(1) %93)
          to label %616 unwind label %647

616:                                              ; preds = %615
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %93) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %94) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %95) #11
  call void @_ZNSaI6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2EmRKS0_RKS1_(ptr noundef nonnull align 8 dereferenceable(24) %94, i64 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull align 1 dereferenceable(1) %95)
          to label %617 unwind label %651

617:                                              ; preds = %616
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %95) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %97, ptr noundef nonnull align 8 dereferenceable(24) %90)
          to label %618 unwind label %655

618:                                              ; preds = %617
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %98, ptr noundef nonnull align 8 dereferenceable(32) %83) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %99, ptr align 4 %31, i64 108, i1 false), !tbaa.struct !22
  %619 = load i32, ptr %61, align 4, !tbaa !32
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %100, ptr noundef nonnull align 8 dereferenceable(32) %43) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %101, ptr noundef nonnull align 8 dereferenceable(24) %94)
          to label %620 unwind label %659

620:                                              ; preds = %618
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %102, ptr noundef nonnull align 8 dereferenceable(32) %41) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %103, ptr align 4 %24, i64 20, i1 false), !tbaa.struct !34
  %621 = invoke noundef i32 @_Z11convolutionSt6vectorI6TensorSaIS0_EES0_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS0_S2_S0_19ActivationParamSpecP8ArchInfo(ptr noundef %97, ptr noundef %98, ptr noundef byval(%struct.ConvolutionParamSpec) align 8 %99, i32 noundef %619, ptr noundef null, ptr noundef %100, ptr noundef %101, ptr noundef %102, ptr noundef byval(%struct.ActivationParamSpec) align 8 %103, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %622 unwind label %663

622:                                              ; preds = %620
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %101) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %97) #11
  store i32 %621, ptr %96, align 4, !tbaa !28
  %623 = load i32, ptr %96, align 4, !tbaa !28
  %624 = icmp ne i32 %623, 0
  br i1 %624, label %625, label %672

625:                                              ; preds = %622
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #11
  %626 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %627 = trunc i64 %626 to i32
  store i32 %627, ptr %104, align 4, !tbaa !5
  %628 = load i32, ptr %104, align 4, !tbaa !5
  %629 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %628)
          to label %630 unwind label %668

630:                                              ; preds = %625
  %631 = load ptr, ptr @stdout, align 8, !tbaa !9
  %632 = invoke i32 @fflush(ptr noundef %631)
          to label %633 unwind label %668

633:                                              ; preds = %630
  %634 = load i32, ptr %96, align 4, !tbaa !28
  %635 = invoke ptr @ee2str(i32 noundef %634)
          to label %636 unwind label %668

636:                                              ; preds = %633
  %637 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %635)
          to label %638 unwind label %668

638:                                              ; preds = %636
  %639 = load ptr, ptr @stdout, align 8, !tbaa !9
  %640 = invoke i32 @fflush(ptr noundef %639)
          to label %641 unwind label %668

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

642:                                              ; preds = %610, %606
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #11
  br label %897

643:                                              ; preds = %614
  %644 = landingpad { ptr, i32 }
          cleanup
  %645 = extractvalue { ptr, i32 } %644, 0
  store ptr %645, ptr %37, align 8
  %646 = extractvalue { ptr, i32 } %644, 1
  store i32 %646, ptr %38, align 4
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #11
  br label %896

647:                                              ; preds = %615
  %648 = landingpad { ptr, i32 }
          cleanup
  %649 = extractvalue { ptr, i32 } %648, 0
  store ptr %649, ptr %37, align 8
  %650 = extractvalue { ptr, i32 } %648, 1
  store i32 %650, ptr %38, align 4
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %93) #11
  br label %895

651:                                              ; preds = %616
  %652 = landingpad { ptr, i32 }
          cleanup
  %653 = extractvalue { ptr, i32 } %652, 0
  store ptr %653, ptr %37, align 8
  %654 = extractvalue { ptr, i32 } %652, 1
  store i32 %654, ptr %38, align 4
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %95) #11
  br label %894

655:                                              ; preds = %617
  %656 = landingpad { ptr, i32 }
          cleanup
  %657 = extractvalue { ptr, i32 } %656, 0
  store ptr %657, ptr %37, align 8
  %658 = extractvalue { ptr, i32 } %656, 1
  store i32 %658, ptr %38, align 4
  br label %697

659:                                              ; preds = %618
  %660 = landingpad { ptr, i32 }
          cleanup
  %661 = extractvalue { ptr, i32 } %660, 0
  store ptr %661, ptr %37, align 8
  %662 = extractvalue { ptr, i32 } %660, 1
  store i32 %662, ptr %38, align 4
  br label %667

663:                                              ; preds = %620
  %664 = landingpad { ptr, i32 }
          cleanup
  %665 = extractvalue { ptr, i32 } %664, 0
  store ptr %665, ptr %37, align 8
  %666 = extractvalue { ptr, i32 } %664, 1
  store i32 %666, ptr %38, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %101) #11
  br label %667

667:                                              ; preds = %663, %659
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %97) #11
  br label %697

668:                                              ; preds = %638, %636, %633, %630, %625
  %669 = landingpad { ptr, i32 }
          cleanup
  %670 = extractvalue { ptr, i32 } %669, 0
  store ptr %670, ptr %37, align 8
  %671 = extractvalue { ptr, i32 } %669, 1
  store i32 %671, ptr %38, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #11
  br label %697

672:                                              ; preds = %622
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %106, ptr noundef nonnull align 8 dereferenceable(24) %92)
          to label %673 unwind label %698

673:                                              ; preds = %672
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %107, ptr noundef nonnull align 8 dereferenceable(32) %40) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %108, ptr align 4 %31, i64 108, i1 false), !tbaa.struct !22
  %674 = load i32, ptr %61, align 4, !tbaa !32
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull align 8 dereferenceable(32) %43) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %110, ptr noundef nonnull align 8 dereferenceable(24) %94)
          to label %675 unwind label %702

675:                                              ; preds = %673
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %111, ptr noundef nonnull align 8 dereferenceable(32) %42) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %112, ptr align 4 %24, i64 20, i1 false), !tbaa.struct !34
  %676 = invoke noundef i32 @_Z11convolutionSt6vectorI6TensorSaIS0_EES0_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS0_S2_S0_19ActivationParamSpecP8ArchInfo(ptr noundef %106, ptr noundef %107, ptr noundef byval(%struct.ConvolutionParamSpec) align 8 %108, i32 noundef %674, ptr noundef null, ptr noundef %109, ptr noundef %110, ptr noundef %111, ptr noundef byval(%struct.ActivationParamSpec) align 8 %112, ptr noundef @_ZL18UT_SERIAL_ARCHINFO)
          to label %677 unwind label %706

677:                                              ; preds = %675
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %110) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %106) #11
  store i32 %676, ptr %105, align 4, !tbaa !28
  %678 = load i32, ptr %105, align 4, !tbaa !28
  %679 = icmp ne i32 %678, 0
  br i1 %679, label %680, label %715

680:                                              ; preds = %677
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #11
  %681 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %682 = trunc i64 %681 to i32
  store i32 %682, ptr %113, align 4, !tbaa !5
  %683 = load i32, ptr %113, align 4, !tbaa !5
  %684 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %683)
          to label %685 unwind label %711

685:                                              ; preds = %680
  %686 = load ptr, ptr @stdout, align 8, !tbaa !9
  %687 = invoke i32 @fflush(ptr noundef %686)
          to label %688 unwind label %711

688:                                              ; preds = %685
  %689 = load i32, ptr %105, align 4, !tbaa !28
  %690 = invoke ptr @ee2str(i32 noundef %689)
          to label %691 unwind label %711

691:                                              ; preds = %688
  %692 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %690)
          to label %693 unwind label %711

693:                                              ; preds = %691
  %694 = load ptr, ptr @stdout, align 8, !tbaa !9
  %695 = invoke i32 @fflush(ptr noundef %694)
          to label %696 unwind label %711

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

697:                                              ; preds = %668, %667, %655
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #11
  br label %893

698:                                              ; preds = %672
  %699 = landingpad { ptr, i32 }
          cleanup
  %700 = extractvalue { ptr, i32 } %699, 0
  store ptr %700, ptr %37, align 8
  %701 = extractvalue { ptr, i32 } %699, 1
  store i32 %701, ptr %38, align 4
  br label %730

702:                                              ; preds = %673
  %703 = landingpad { ptr, i32 }
          cleanup
  %704 = extractvalue { ptr, i32 } %703, 0
  store ptr %704, ptr %37, align 8
  %705 = extractvalue { ptr, i32 } %703, 1
  store i32 %705, ptr %38, align 4
  br label %710

706:                                              ; preds = %675
  %707 = landingpad { ptr, i32 }
          cleanup
  %708 = extractvalue { ptr, i32 } %707, 0
  store ptr %708, ptr %37, align 8
  %709 = extractvalue { ptr, i32 } %707, 1
  store i32 %709, ptr %38, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %110) #11
  br label %710

710:                                              ; preds = %706, %702
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %106) #11
  br label %730

711:                                              ; preds = %693, %691, %688, %685, %680
  %712 = landingpad { ptr, i32 }
          cleanup
  %713 = extractvalue { ptr, i32 } %712, 0
  store ptr %713, ptr %37, align 8
  %714 = extractvalue { ptr, i32 } %712, 1
  store i32 %714, ptr %38, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #11
  br label %730

715:                                              ; preds = %677
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %114, ptr noundef nonnull align 8 dereferenceable(32) %41) #11
  %716 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %114, i32 noundef 1)
          to label %717 unwind label %731

717:                                              ; preds = %715
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef nonnull align 8 dereferenceable(32) %42) #11
  %718 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %115, i32 noundef 1)
          to label %719 unwind label %735

719:                                              ; preds = %717
  %720 = invoke noundef i32 @_ZN6Tensor6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %721 unwind label %735

721:                                              ; preds = %719
  %722 = load i32, ptr %6, align 4, !tbaa !11
  invoke void @_Z10ut_check_vPvS_j8DataTypef(ptr noundef %716, ptr noundef %718, i32 noundef %720, i32 noundef %722, float noundef 5.000000e+00)
          to label %723 unwind label %735

723:                                              ; preds = %721
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %116) #11
  %724 = invoke noundef double @_Z10ut_time_msv()
          to label %725 unwind label %740

725:                                              ; preds = %723
  store double %724, ptr %116, align 8, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #11
  store i32 0, ptr %117, align 4, !tbaa !5
  br label %726

726:                                              ; preds = %787, %725
  %727 = load i32, ptr %117, align 4, !tbaa !5
  %728 = icmp slt i32 %727, 6
  br i1 %728, label %744, label %729

729:                                              ; preds = %726
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #11
  br label %791

730:                                              ; preds = %711, %710, %698
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #11
  br label %893

731:                                              ; preds = %715
  %732 = landingpad { ptr, i32 }
          cleanup
  %733 = extractvalue { ptr, i32 } %732, 0
  store ptr %733, ptr %37, align 8
  %734 = extractvalue { ptr, i32 } %732, 1
  store i32 %734, ptr %38, align 4
  br label %739

735:                                              ; preds = %721, %719, %717
  %736 = landingpad { ptr, i32 }
          cleanup
  %737 = extractvalue { ptr, i32 } %736, 0
  store ptr %737, ptr %37, align 8
  %738 = extractvalue { ptr, i32 } %736, 1
  store i32 %738, ptr %38, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #11
  br label %739

739:                                              ; preds = %735, %731
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #11
  br label %893

740:                                              ; preds = %723
  %741 = landingpad { ptr, i32 }
          cleanup
  %742 = extractvalue { ptr, i32 } %741, 0
  store ptr %742, ptr %37, align 8
  %743 = extractvalue { ptr, i32 } %741, 1
  store i32 %743, ptr %38, align 4
  br label %892

744:                                              ; preds = %726
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %119, ptr noundef nonnull align 8 dereferenceable(24) %90)
          to label %745 unwind label %769

745:                                              ; preds = %744
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %120, ptr noundef nonnull align 8 dereferenceable(32) %83) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %121, ptr align 4 %31, i64 108, i1 false), !tbaa.struct !22
  %746 = load i32, ptr %61, align 4, !tbaa !32
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %122, ptr noundef nonnull align 8 dereferenceable(32) %43) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %123, ptr noundef nonnull align 8 dereferenceable(24) %94)
          to label %747 unwind label %773

747:                                              ; preds = %745
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %124, ptr noundef nonnull align 8 dereferenceable(32) %41) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %125, ptr align 4 %24, i64 20, i1 false), !tbaa.struct !34
  %748 = invoke noundef i32 @_Z11convolutionSt6vectorI6TensorSaIS0_EES0_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS0_S2_S0_19ActivationParamSpecP8ArchInfo(ptr noundef %119, ptr noundef %120, ptr noundef byval(%struct.ConvolutionParamSpec) align 8 %121, i32 noundef %746, ptr noundef null, ptr noundef %122, ptr noundef %123, ptr noundef %124, ptr noundef byval(%struct.ActivationParamSpec) align 8 %125, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %749 unwind label %777

749:                                              ; preds = %747
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %123) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %119) #11
  store i32 %748, ptr %118, align 4, !tbaa !28
  %750 = load i32, ptr %118, align 4, !tbaa !28
  %751 = icmp ne i32 %750, 0
  br i1 %751, label %752, label %786

752:                                              ; preds = %749
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #11
  %753 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %754 = trunc i64 %753 to i32
  store i32 %754, ptr %126, align 4, !tbaa !5
  %755 = load i32, ptr %126, align 4, !tbaa !5
  %756 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %755)
          to label %757 unwind label %782

757:                                              ; preds = %752
  %758 = load ptr, ptr @stdout, align 8, !tbaa !9
  %759 = invoke i32 @fflush(ptr noundef %758)
          to label %760 unwind label %782

760:                                              ; preds = %757
  %761 = load i32, ptr %118, align 4, !tbaa !28
  %762 = invoke ptr @ee2str(i32 noundef %761)
          to label %763 unwind label %782

763:                                              ; preds = %760
  %764 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %762)
          to label %765 unwind label %782

765:                                              ; preds = %763
  %766 = load ptr, ptr @stdout, align 8, !tbaa !9
  %767 = invoke i32 @fflush(ptr noundef %766)
          to label %768 unwind label %782

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

769:                                              ; preds = %744
  %770 = landingpad { ptr, i32 }
          cleanup
  %771 = extractvalue { ptr, i32 } %770, 0
  store ptr %771, ptr %37, align 8
  %772 = extractvalue { ptr, i32 } %770, 1
  store i32 %772, ptr %38, align 4
  br label %790

773:                                              ; preds = %745
  %774 = landingpad { ptr, i32 }
          cleanup
  %775 = extractvalue { ptr, i32 } %774, 0
  store ptr %775, ptr %37, align 8
  %776 = extractvalue { ptr, i32 } %774, 1
  store i32 %776, ptr %38, align 4
  br label %781

777:                                              ; preds = %747
  %778 = landingpad { ptr, i32 }
          cleanup
  %779 = extractvalue { ptr, i32 } %778, 0
  store ptr %779, ptr %37, align 8
  %780 = extractvalue { ptr, i32 } %778, 1
  store i32 %780, ptr %38, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %123) #11
  br label %781

781:                                              ; preds = %777, %773
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %119) #11
  br label %790

782:                                              ; preds = %765, %763, %760, %757, %752
  %783 = landingpad { ptr, i32 }
          cleanup
  %784 = extractvalue { ptr, i32 } %783, 0
  store ptr %784, ptr %37, align 8
  %785 = extractvalue { ptr, i32 } %783, 1
  store i32 %785, ptr %38, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #11
  br label %790

786:                                              ; preds = %749
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #11
  br label %787

787:                                              ; preds = %786
  %788 = load i32, ptr %117, align 4, !tbaa !5
  %789 = add nsw i32 %788, 1
  store i32 %789, ptr %117, align 4, !tbaa !5
  br label %726, !llvm.loop !37

790:                                              ; preds = %782, %781, %769
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #11
  br label %892

791:                                              ; preds = %729
  call void @llvm.lifetime.start.p0(i64 8, ptr %127) #11
  %792 = invoke noundef double @_Z10ut_time_msv()
          to label %793 unwind label %819

793:                                              ; preds = %791
  store double %792, ptr %127, align 8, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #11
  %794 = load double, ptr %127, align 8, !tbaa !35
  %795 = load double, ptr %116, align 8, !tbaa !35
  %796 = fsub double %794, %795
  %797 = fdiv double %796, 6.000000e+00
  store double %797, ptr %128, align 8, !tbaa !35
  call void @llvm.lifetime.start.p0(i64 150, ptr %129) #11
  call void @llvm.lifetime.start.p0(i64 120, ptr %130) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %133, ptr align 4 %26, i64 92, i1 false), !tbaa.struct !18
  %798 = invoke noundef i32 @_Z11tensor4dGet10TensorDescP8DataTypeP10DataFormatPjS4_S4_S4_(ptr noundef byval(%struct.TensorDesc) align 8 %133, ptr noundef %6, ptr noundef %131, ptr noundef %19, ptr noundef %20, ptr noundef %21, ptr noundef %22)
          to label %799 unwind label %823

799:                                              ; preds = %793
  store i32 %798, ptr %132, align 4, !tbaa !28
  %800 = load i32, ptr %132, align 4, !tbaa !28
  %801 = icmp ne i32 %800, 0
  br i1 %801, label %802, label %831

802:                                              ; preds = %799
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #11
  %803 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %804 = trunc i64 %803 to i32
  store i32 %804, ptr %134, align 4, !tbaa !5
  %805 = load i32, ptr %134, align 4, !tbaa !5
  %806 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %805)
          to label %807 unwind label %827

807:                                              ; preds = %802
  %808 = load ptr, ptr @stdout, align 8, !tbaa !9
  %809 = invoke i32 @fflush(ptr noundef %808)
          to label %810 unwind label %827

810:                                              ; preds = %807
  %811 = load i32, ptr %132, align 4, !tbaa !28
  %812 = invoke ptr @ee2str(i32 noundef %811)
          to label %813 unwind label %827

813:                                              ; preds = %810
  %814 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %812)
          to label %815 unwind label %827

815:                                              ; preds = %813
  %816 = load ptr, ptr @stdout, align 8, !tbaa !9
  %817 = invoke i32 @fflush(ptr noundef %816)
          to label %818 unwind label %827

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

819:                                              ; preds = %791
  %820 = landingpad { ptr, i32 }
          cleanup
  %821 = extractvalue { ptr, i32 } %820, 0
  store ptr %821, ptr %37, align 8
  %822 = extractvalue { ptr, i32 } %820, 1
  store i32 %822, ptr %38, align 4
  br label %891

823:                                              ; preds = %793
  %824 = landingpad { ptr, i32 }
          cleanup
  %825 = extractvalue { ptr, i32 } %824, 0
  store ptr %825, ptr %37, align 8
  %826 = extractvalue { ptr, i32 } %824, 1
  store i32 %826, ptr %38, align 4
  br label %885

827:                                              ; preds = %815, %813, %810, %807, %802
  %828 = landingpad { ptr, i32 }
          cleanup
  %829 = extractvalue { ptr, i32 } %828, 0
  store ptr %829, ptr %37, align 8
  %830 = extractvalue { ptr, i32 } %828, 1
  store i32 %830, ptr %38, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #11
  br label %885

831:                                              ; preds = %799
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #11
  %832 = getelementptr inbounds [120 x i8], ptr %130, i64 0, i64 0
  %833 = load i32, ptr %8, align 4, !tbaa !5
  %834 = load i32, ptr %9, align 4, !tbaa !5
  %835 = load i32, ptr %10, align 4, !tbaa !5
  %836 = load i32, ptr %11, align 4, !tbaa !5
  %837 = load i32, ptr %12, align 4, !tbaa !5
  %838 = load i32, ptr %13, align 4, !tbaa !5
  %839 = load i32, ptr %14, align 4, !tbaa !5
  %840 = load i32, ptr %15, align 4, !tbaa !5
  %841 = load i32, ptr %16, align 4, !tbaa !5
  %842 = load i32, ptr %17, align 4, !tbaa !5
  %843 = load i32, ptr %18, align 4, !tbaa !5
  %844 = load i32, ptr %19, align 4, !tbaa !5
  %845 = load i32, ptr %20, align 4, !tbaa !5
  %846 = load i32, ptr %21, align 4, !tbaa !5
  %847 = load i32, ptr %22, align 4, !tbaa !5
  %848 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %832, ptr noundef @.str.3, i32 noundef %833, i32 noundef %834, i32 noundef %835, i32 noundef %836, i32 noundef %837, i32 noundef %838, i32 noundef %839, i32 noundef %840, i32 noundef %841, i32 noundef %842, i32 noundef %843, i32 noundef %844, i32 noundef %845, i32 noundef %846, i32 noundef %847) #11
  %849 = getelementptr inbounds [150 x i8], ptr %129, i64 0, i64 0
  %850 = getelementptr inbounds [120 x i8], ptr %130, i64 0, i64 0
  %851 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %849, ptr noundef @.str.4, ptr noundef @.str.5, ptr noundef %850) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #11
  %852 = load i32, ptr %19, align 4, !tbaa !5
  %853 = uitofp i32 %852 to double
  %854 = fmul double 1.000000e+00, %853
  %855 = load i32, ptr %20, align 4, !tbaa !5
  %856 = uitofp i32 %855 to double
  %857 = fmul double %854, %856
  %858 = load i32, ptr %21, align 4, !tbaa !5
  %859 = uitofp i32 %858 to double
  %860 = fmul double %857, %859
  %861 = load i32, ptr %22, align 4, !tbaa !5
  %862 = uitofp i32 %861 to double
  %863 = fmul double %860, %862
  %864 = load i32, ptr %9, align 4, !tbaa !5
  %865 = uitofp i32 %864 to double
  %866 = fmul double 2.000000e+00, %865
  %867 = load i32, ptr %16, align 4, !tbaa !5
  %868 = uitofp i32 %867 to double
  %869 = fdiv double %866, %868
  %870 = load i32, ptr %14, align 4, !tbaa !5
  %871 = uitofp i32 %870 to double
  %872 = fmul double %869, %871
  %873 = load i32, ptr %15, align 4, !tbaa !5
  %874 = uitofp i32 %873 to double
  %875 = call double @llvm.fmuladd.f64(double %872, double %874, double 1.000000e+00)
  %876 = fmul double %863, %875
  store double %876, ptr %135, align 8, !tbaa !35
  %877 = load i32, ptr %6, align 4, !tbaa !11
  %878 = getelementptr inbounds [150 x i8], ptr %129, i64 0, i64 0
  %879 = load double, ptr %135, align 8, !tbaa !35
  %880 = load double, ptr %128, align 8, !tbaa !35
  invoke void @_Z6ut_log8DataTypePcdd(i32 noundef %877, ptr noundef %878, double noundef %879, double noundef %880)
          to label %881 unwind label %886

881:                                              ; preds = %831
  %882 = load ptr, ptr %32, align 8, !tbaa !9
  call void @free(ptr noundef %882) #11
  %883 = load ptr, ptr %33, align 8, !tbaa !9
  call void @free(ptr noundef %883) #11
  %884 = load ptr, ptr %34, align 8, !tbaa !9
  call void @free(ptr noundef %884) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #11
  call void @llvm.lifetime.end.p0(i64 120, ptr %130) #11
  call void @llvm.lifetime.end.p0(i64 150, ptr %129) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %94) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %94) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %92) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %92) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %90) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %90) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %83) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #11
  call void @llvm.lifetime.end.p0(i64 108, ptr %31) #11
  call void @llvm.lifetime.end.p0(i64 92, ptr %30) #11
  call void @llvm.lifetime.end.p0(i64 92, ptr %29) #11
  call void @llvm.lifetime.end.p0(i64 92, ptr %26) #11
  call void @llvm.lifetime.end.p0(i64 92, ptr %25) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %24) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #11
  ret i32 0

885:                                              ; preds = %827, %823
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #11
  br label %890

886:                                              ; preds = %831
  %887 = landingpad { ptr, i32 }
          cleanup
  %888 = extractvalue { ptr, i32 } %887, 0
  store ptr %888, ptr %37, align 8
  %889 = extractvalue { ptr, i32 } %887, 1
  store i32 %889, ptr %38, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #11
  br label %890

890:                                              ; preds = %886, %885
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #11
  call void @llvm.lifetime.end.p0(i64 120, ptr %130) #11
  call void @llvm.lifetime.end.p0(i64 150, ptr %129) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #11
  br label %891

891:                                              ; preds = %890, %819
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #11
  br label %892

892:                                              ; preds = %891, %790, %740
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #11
  br label %893

893:                                              ; preds = %892, %739, %730, %697
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %94) #11
  br label %894

894:                                              ; preds = %893, %651
  call void @llvm.lifetime.end.p0(i64 24, ptr %94) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %92) #11
  br label %895

895:                                              ; preds = %894, %647
  call void @llvm.lifetime.end.p0(i64 24, ptr %92) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %90) #11
  br label %896

896:                                              ; preds = %895, %643
  call void @llvm.lifetime.end.p0(i64 24, ptr %90) #11
  br label %897

897:                                              ; preds = %896, %642, %602
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #11
  br label %898

898:                                              ; preds = %897, %598
  call void @llvm.lifetime.end.p0(i64 32, ptr %83) #11
  br label %899

899:                                              ; preds = %898, %597
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #11
  br label %900

900:                                              ; preds = %899, %557
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #11
  br label %901

901:                                              ; preds = %900, %553
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #11
  br label %902

902:                                              ; preds = %901, %552
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #11
  br label %903

903:                                              ; preds = %902, %515
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #11
  br label %904

904:                                              ; preds = %903, %480, %479, %438, %434, %430, %426, %422, %418
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #11
  br label %905

905:                                              ; preds = %904, %414
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #11
  br label %906

906:                                              ; preds = %905, %410
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #11
  br label %907

907:                                              ; preds = %906, %406
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #11
  br label %908

908:                                              ; preds = %907, %402
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #11
  br label %909

909:                                              ; preds = %908, %398
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #11
  br label %910

910:                                              ; preds = %909, %394
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #11
  call void @llvm.lifetime.end.p0(i64 108, ptr %31) #11
  call void @llvm.lifetime.end.p0(i64 92, ptr %30) #11
  call void @llvm.lifetime.end.p0(i64 92, ptr %29) #11
  call void @llvm.lifetime.end.p0(i64 92, ptr %26) #11
  call void @llvm.lifetime.end.p0(i64 92, ptr %25) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %24) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #11
  br label %911

911:                                              ; preds = %910
  %912 = load ptr, ptr %37, align 8
  %913 = load i32, ptr %38, align 4
  %914 = insertvalue { ptr, i32 } poison, ptr %912, 0
  %915 = insertvalue { ptr, i32 } %914, i32 %913, 1
  resume { ptr, i32 } %915
}

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

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

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

declare i32 @fflush(ptr noundef) #3

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

; Function Attrs: inlinehint mustprogress nounwind willreturn memory(read) uwtable
declare i32 @atoi(ptr noundef nonnull) #5

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN10TensorDescC2Ev(ptr noundef nonnull align 4 dereferenceable(92)) unnamed_addr #6 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) #6

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef, i32 noundef, i32 noundef) #8

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

declare i32 @__gxx_personality_v0(...)

; 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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z10UNI_MEMCPYPvPKvm(ptr noundef, ptr noundef, i64 noundef) #8

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef, i32 noundef) #8

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_Z7bytesOf8DataType(i32 noundef) #8

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #6 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) #3

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Tensor8get_descEv(ptr dead_on_unwind noalias writable sret(%struct.TensorDesc) align 4, ptr noundef nonnull align 8 dereferenceable(32)) #0 align 2

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z10ut_check_vPvS_j8DataTypef(ptr noundef, ptr noundef, i32 noundef, i32 noundef, float noundef) #8

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

declare noundef double @_Z10ut_time_msv() #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z11tensor4dGet10TensorDescP8DataTypeP10DataFormatPjS4_S4_S4_(ptr noundef byval(%struct.TensorDesc) align 8, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #6

; Function Attrs: nounwind
declare i32 @sprintf(ptr noundef, ptr noundef, ...) #2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #10

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z6ut_log8DataTypePcdd(i32 noundef, ptr noundef, double noundef, double noundef) #8

; Function Attrs: nounwind
declare void @free(ptr noundef) #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #9 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 = { 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 #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 #5 = { inlinehint mustprogress nounwind willreturn memory(read) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #8 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { 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 #10 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #11 = { nounwind }
attributes #12 = { noreturn nounwind }
attributes #13 = { nounwind willreturn memory(read) }

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

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


; 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.ArchInfo = type { i32, ptr }
%struct.ActivationParamSpec = type { i32, [4 x float] }
%struct.TensorDesc = type { i32, i32, i32, [20 x i32] }
%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 }
%class.Tensor = type { %"class.std::shared_ptr", %"class.std::shared_ptr.0" }
%"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.0" = type { %"class.std::__shared_ptr.1" }
%"class.std::__shared_ptr.1" = type { ptr, %"class.std::__shared_count" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<Tensor, std::allocator<Tensor>>::_Vector_impl" }
%"struct.std::_Vector_base<Tensor, std::allocator<Tensor>>::_Vector_impl" = type { %"struct.std::_Vector_base<Tensor, std::allocator<Tensor>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Tensor, std::allocator<Tensor>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator" = type { i8 }

@.str = external hidden unnamed_addr constant [20 x i8], align 1
@stdout = external local_unnamed_addr global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [23 x i8], align 1
@_ZL15UT_CPU_ARCHINFO = external hidden global %struct.ArchInfo, align 8
@.str.2 = external hidden unnamed_addr constant [18 x i8], align 1
@_ZL18UT_SERIAL_ARCHINFO = external hidden global %struct.ArchInfo, align 8
@.str.3 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [12 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_Z15convolutionTestiPPc8DataType(i32 noundef %0, ptr nocapture noundef readonly %1, i32 noundef %2) local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca %struct.ActivationParamSpec, align 8
  %10 = alloca %struct.TensorDesc, align 8
  %11 = alloca %struct.TensorDesc, align 8
  %12 = alloca %struct.TensorDesc, align 4
  %13 = alloca %struct.TensorDesc, align 4
  %14 = alloca %struct.TensorDesc, align 8
  %15 = alloca %struct.TensorDesc, align 8
  %16 = alloca %struct.ConvolutionParamSpec, align 8
  %17 = alloca %class.Tensor, align 8
  %18 = alloca %class.Tensor, align 8
  %19 = alloca %class.Tensor, align 8
  %20 = alloca %class.Tensor, align 8
  %21 = alloca %class.Tensor, align 8
  %22 = alloca %class.Tensor, align 8
  %23 = alloca %class.Tensor, align 8
  %24 = alloca %class.Tensor, align 8
  %25 = alloca %class.Tensor, align 8
  %26 = alloca %class.Tensor, align 8
  %27 = alloca %class.Tensor, align 8
  %28 = alloca %class.Tensor, align 8
  %29 = alloca %class.Tensor, align 8
  %30 = alloca %struct.TensorDesc, align 4
  %31 = alloca %struct.TensorDesc, align 8
  %32 = alloca i32, align 4
  %33 = alloca %class.Tensor, align 8
  %34 = alloca %class.Tensor, align 8
  %35 = alloca %class.Tensor, align 8
  %36 = alloca i32, align 4
  %37 = alloca %class.Tensor, align 8
  %38 = alloca %class.Tensor, align 8
  %39 = alloca %class.Tensor, align 8
  %40 = alloca %class.Tensor, align 8
  %41 = alloca %struct.TensorDesc, align 8
  %42 = alloca i32, align 4
  %43 = alloca %class.Tensor, align 8
  %44 = alloca %class.Tensor, align 8
  %45 = alloca %struct.TensorDesc, align 8
  %46 = alloca %class.Tensor, align 8
  %47 = alloca %struct.ConvolutionParamSpec, align 8
  %48 = alloca %class.Tensor, align 8
  %49 = alloca %"class.std::vector", align 8
  %50 = alloca %"class.std::allocator", align 1
  %51 = alloca %"class.std::vector", align 8
  %52 = alloca %"class.std::allocator", align 1
  %53 = alloca %"class.std::vector", align 8
  %54 = alloca %"class.std::allocator", align 1
  %55 = alloca %"class.std::vector", align 8
  %56 = alloca %class.Tensor, align 8
  %57 = alloca %struct.ConvolutionParamSpec, align 8
  %58 = alloca %class.Tensor, align 8
  %59 = alloca %"class.std::vector", align 8
  %60 = alloca %class.Tensor, align 8
  %61 = alloca %"class.std::vector", align 8
  %62 = alloca %class.Tensor, align 8
  %63 = alloca %struct.ConvolutionParamSpec, align 8
  %64 = alloca %class.Tensor, align 8
  %65 = alloca %"class.std::vector", align 8
  %66 = alloca %class.Tensor, align 8
  %67 = alloca %class.Tensor, align 8
  %68 = alloca %class.Tensor, align 8
  %69 = alloca %"class.std::vector", align 8
  %70 = alloca %class.Tensor, align 8
  %71 = alloca %struct.ConvolutionParamSpec, align 8
  %72 = alloca %class.Tensor, align 8
  %73 = alloca %"class.std::vector", align 8
  %74 = alloca %class.Tensor, align 8
  %75 = alloca [150 x i8], align 16
  %76 = alloca [120 x i8], align 16
  %77 = alloca i32, align 4
  store i32 %2, ptr %4, align 4, !tbaa !5
  %78 = icmp eq i32 %0, 16
  br i1 %78, label %88, label %79

79:                                               ; preds = %3
  %80 = tail call i64 (i64, ...) @syscall(i64 noundef 186) #13
  %81 = trunc i64 %80 to i32
  %82 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %81)
  %83 = load ptr, ptr @stdout, align 8, !tbaa !9
  %84 = tail call i32 @fflush(ptr noundef %83)
  %85 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.1)
  %86 = load ptr, ptr @stdout, align 8, !tbaa !9
  %87 = tail call i32 @fflush(ptr noundef %86)
  tail call void @exit(i32 noundef 1) #14
  unreachable

88:                                               ; preds = %3
  %89 = getelementptr inbounds i8, ptr %1, i64 8
  %90 = load ptr, ptr %89, align 8, !tbaa !9
  %91 = tail call i32 @atoi(ptr nocapture noundef %90) #15
  %92 = getelementptr inbounds i8, ptr %1, i64 16
  %93 = load ptr, ptr %92, align 8, !tbaa !9
  %94 = tail call i32 @atoi(ptr nocapture noundef %93) #15
  %95 = getelementptr inbounds i8, ptr %1, i64 24
  %96 = load ptr, ptr %95, align 8, !tbaa !9
  %97 = tail call i32 @atoi(ptr nocapture noundef %96) #15
  %98 = getelementptr inbounds i8, ptr %1, i64 32
  %99 = load ptr, ptr %98, align 8, !tbaa !9
  %100 = tail call i32 @atoi(ptr nocapture noundef %99) #15
  %101 = getelementptr inbounds i8, ptr %1, i64 40
  %102 = load ptr, ptr %101, align 8, !tbaa !9
  %103 = tail call i32 @atoi(ptr nocapture noundef %102) #15
  %104 = getelementptr inbounds i8, ptr %1, i64 48
  %105 = load ptr, ptr %104, align 8, !tbaa !9
  %106 = tail call i32 @atoi(ptr nocapture noundef %105) #15
  %107 = getelementptr inbounds i8, ptr %1, i64 56
  %108 = load ptr, ptr %107, align 8, !tbaa !9
  %109 = tail call i32 @atoi(ptr nocapture noundef %108) #15
  %110 = getelementptr inbounds i8, ptr %1, i64 64
  %111 = load ptr, ptr %110, align 8, !tbaa !9
  %112 = tail call i32 @atoi(ptr nocapture noundef %111) #15
  %113 = getelementptr inbounds i8, ptr %1, i64 72
  %114 = load ptr, ptr %113, align 8, !tbaa !9
  %115 = tail call i32 @atoi(ptr nocapture noundef %114) #15
  %116 = getelementptr inbounds i8, ptr %1, i64 80
  %117 = load ptr, ptr %116, align 8, !tbaa !9
  %118 = tail call i32 @atoi(ptr nocapture noundef %117) #15
  %119 = getelementptr inbounds i8, ptr %1, i64 88
  %120 = load ptr, ptr %119, align 8, !tbaa !9
  %121 = tail call i32 @atoi(ptr nocapture noundef %120) #15
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #13
  %122 = getelementptr inbounds i8, ptr %1, i64 96
  %123 = load ptr, ptr %122, align 8, !tbaa !9
  %124 = tail call i32 @atoi(ptr nocapture noundef %123) #15
  store i32 %124, ptr %5, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #13
  %125 = getelementptr inbounds i8, ptr %1, i64 104
  %126 = load ptr, ptr %125, align 8, !tbaa !9
  %127 = tail call i32 @atoi(ptr nocapture noundef %126) #15
  store i32 %127, ptr %6, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #13
  %128 = getelementptr inbounds i8, ptr %1, i64 112
  %129 = load ptr, ptr %128, align 8, !tbaa !9
  %130 = tail call i32 @atoi(ptr nocapture noundef %129) #15
  store i32 %130, ptr %7, align 4, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #13
  %131 = getelementptr inbounds i8, ptr %1, i64 120
  %132 = load ptr, ptr %131, align 8, !tbaa !9
  %133 = tail call i32 @atoi(ptr nocapture noundef %132) #15
  store i32 %133, ptr %8, align 4, !tbaa !11
  %134 = icmp eq i32 %91, 1
  %135 = icmp eq i32 %124, 1
  %or.cond = select i1 %134, i1 %135, i1 false
  br i1 %or.cond, label %145, label %136

136:                                              ; preds = %88
  %137 = tail call i64 (i64, ...) @syscall(i64 noundef 186) #13
  %138 = trunc i64 %137 to i32
  %139 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %138)
  %140 = load ptr, ptr @stdout, align 8, !tbaa !9
  %141 = tail call i32 @fflush(ptr noundef %140)
  %142 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.1)
  %143 = load ptr, ptr @stdout, align 8, !tbaa !9
  %144 = tail call i32 @fflush(ptr noundef %143)
  tail call void @exit(i32 noundef 1) #14
  unreachable

145:                                              ; preds = %88
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %9) #13
  call void @_ZN19ActivationParamSpecC2Ev(ptr noundef nonnull align 4 dereferenceable(20) %9) #13
  store i32 1, ptr %9, align 8, !tbaa !13
  %146 = getelementptr inbounds i8, ptr %9, i64 4
  store float 0.000000e+00, ptr %146, align 4, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %10) #13
  call void @_ZN10TensorDescC2Ev(ptr noundef nonnull align 4 dereferenceable(92) %10) #13
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %11) #13
  call void @_ZN10TensorDescC2Ev(ptr noundef nonnull align 4 dereferenceable(92) %11) #13
  %147 = and i32 %94, 7
  %.not = icmp eq i32 %147, 0
  br i1 %.not, label %149, label %148

148:                                              ; preds = %145
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %12) #13
  call void @_Z9tensor4df8DataType10DataFormatjjjj(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %12, i32 noundef %2, i32 noundef 0, i32 noundef 1, i32 noundef %94, i32 noundef %97, i32 noundef %100)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(92) %10, ptr noundef nonnull align 4 dereferenceable(92) %12, i64 92, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %12) #13
  br label %150

149:                                              ; preds = %145
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %13) #13
  call void @_Z9tensor4df8DataType10DataFormatjjjj(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %13, i32 noundef %2, i32 noundef 2, i32 noundef 1, i32 noundef %94, i32 noundef %97, i32 noundef %100)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(92) %10, ptr noundef nonnull align 4 dereferenceable(92) %13, i64 92, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %13) #13
  br label %150

150:                                              ; preds = %149, %148
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %14) #13
  call void @_Z9tensor4df8DataType10DataFormatjjjj(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %14, i32 noundef %2, i32 noundef 0, i32 noundef %103, i32 noundef %106, i32 noundef %109, i32 noundef %112)
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %15) #13
  call void @_Z8tensor1d8DataTypej(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %15, i32 noundef %2, i32 noundef %127)
  call void @llvm.lifetime.start.p0(i64 108, ptr nonnull %16) #13
  call void @_Z26createConvolutionParamSpecjjjjjjjjjjjjjjjjj15ConvolutionMode(ptr dead_on_unwind nonnull writable sret(%struct.ConvolutionParamSpec) align 4 %16, i32 noundef %115, i32 noundef 1, i32 noundef %109, i32 noundef %112, i32 noundef 1, i32 noundef %118, i32 noundef %118, i32 noundef 0, i32 noundef 0, i32 noundef %121, i32 noundef %121, i32 noundef %121, i32 noundef %121, i32 noundef 1, i32 noundef 1, i32 noundef 1, i32 noundef %103, i32 noundef 3)
  %151 = mul i32 %97, %94
  %152 = mul i32 %151, %100
  %153 = call noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef %152, i32 noundef %2, i32 noundef 0)
  %154 = mul i32 %106, %103
  %155 = mul i32 %154, %109
  %156 = mul i32 %155, %112
  %157 = call noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef %156, i32 noundef %2, i32 noundef 0)
  %158 = call noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef %127, i32 noundef %2, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #13
  call void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %17, i32 noundef 1)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #13
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %18, i32 noundef 1)
          to label %159 unwind label %222

159:                                              ; preds = %150
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #13
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %19, i32 noundef 1)
          to label %160 unwind label %224

160:                                              ; preds = %159
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #13
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %20, i32 noundef 1)
          to label %161 unwind label %226

161:                                              ; preds = %160
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #13
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %21, i32 noundef 1)
          to label %162 unwind label %228

162:                                              ; preds = %161
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #13
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %22, i32 noundef 1)
          to label %163 unwind label %230

163:                                              ; preds = %162
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #13
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %23, i32 noundef 1)
          to label %164 unwind label %232

164:                                              ; preds = %163
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %10)
          to label %165 unwind label %234

165:                                              ; preds = %164
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %10)
          to label %166 unwind label %234

166:                                              ; preds = %165
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %14)
          to label %167 unwind label %234

167:                                              ; preds = %166
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %14)
          to label %168 unwind label %234

168:                                              ; preds = %167
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %15)
          to label %169 unwind label %234

169:                                              ; preds = %168
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %170 unwind label %234

170:                                              ; preds = %169
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %171 unwind label %234

171:                                              ; preds = %170
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %172 unwind label %234

172:                                              ; preds = %171
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %173 unwind label %234

173:                                              ; preds = %172
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %174 unwind label %234

174:                                              ; preds = %173
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull align 8 dereferenceable(32) %17) #13
  %175 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %24, i32 noundef 1)
          to label %176 unwind label %236

176:                                              ; preds = %174
  %177 = invoke noundef i32 @_Z7bytesOf8DataType(i32 noundef %2)
          to label %178 unwind label %236

178:                                              ; preds = %176
  %179 = mul i32 %152, %177
  %180 = zext i32 %179 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %175, ptr noundef %153, i64 noundef %180)
          to label %181 unwind label %236

181:                                              ; preds = %178
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #13
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %18) #13
  %182 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %25, i32 noundef 1)
          to label %183 unwind label %238

183:                                              ; preds = %181
  %184 = invoke noundef i32 @_Z7bytesOf8DataType(i32 noundef %2)
          to label %185 unwind label %238

185:                                              ; preds = %183
  %186 = mul i32 %152, %184
  %187 = zext i32 %186 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %182, ptr noundef %153, i64 noundef %187)
          to label %188 unwind label %238

188:                                              ; preds = %185
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #13
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(32) %19) #13
  %189 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %26, i32 noundef 1)
          to label %190 unwind label %240

190:                                              ; preds = %188
  %191 = invoke noundef i32 @_Z7bytesOf8DataType(i32 noundef %2)
          to label %192 unwind label %240

192:                                              ; preds = %190
  %193 = mul i32 %156, %191
  %194 = zext i32 %193 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %189, ptr noundef %157, i64 noundef %194)
          to label %195 unwind label %240

195:                                              ; preds = %192
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #13
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull align 8 dereferenceable(32) %20) #13
  %196 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %27, i32 noundef 1)
          to label %197 unwind label %242

197:                                              ; preds = %195
  %198 = invoke noundef i32 @_Z7bytesOf8DataType(i32 noundef %2)
          to label %199 unwind label %242

199:                                              ; preds = %197
  %200 = mul i32 %156, %198
  %201 = zext i32 %200 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %196, ptr noundef %157, i64 noundef %201)
          to label %202 unwind label %242

202:                                              ; preds = %199
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #13
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull align 8 dereferenceable(32) %23) #13
  %203 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %28, i32 noundef 1)
          to label %204 unwind label %244

204:                                              ; preds = %202
  %205 = invoke noundef i32 @_Z7bytesOf8DataType(i32 noundef %2)
          to label %206 unwind label %244

206:                                              ; preds = %204
  %207 = mul i32 %127, %205
  %208 = zext i32 %207 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %203, ptr noundef %158, i64 noundef %208)
          to label %209 unwind label %244

209:                                              ; preds = %206
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #13
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(32) %19) #13
  %210 = invoke noundef i32 @_Z29convolution_infer_output_sizeP6TensorS_20ConvolutionParamSpecS0_8DataTypeP8ArchInfo(ptr noundef nonnull %17, ptr noundef nonnull %29, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %16, ptr noundef nonnull %21, i32 noundef %2, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %211 unwind label %246

211:                                              ; preds = %209
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #13
  %.not163 = icmp eq i32 %210, 0
  br i1 %.not163, label %248, label %212

212:                                              ; preds = %211
  %213 = call i64 (i64, ...) @syscall(i64 noundef 186) #13
  %214 = trunc i64 %213 to i32
  %215 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %214)
  %216 = load ptr, ptr @stdout, align 8, !tbaa !9
  %217 = call i32 @fflush(ptr noundef %216)
  %218 = call ptr @ee2str(i32 noundef %210)
  %219 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %218)
  %220 = load ptr, ptr @stdout, align 8, !tbaa !9
  %221 = call i32 @fflush(ptr noundef %220)
  call void @exit(i32 noundef 1) #14
  unreachable

222:                                              ; preds = %150
  %223 = landingpad { ptr, i32 }
          cleanup
  br label %520

224:                                              ; preds = %159
  %225 = landingpad { ptr, i32 }
          cleanup
  br label %519

226:                                              ; preds = %160
  %227 = landingpad { ptr, i32 }
          cleanup
  br label %518

228:                                              ; preds = %161
  %229 = landingpad { ptr, i32 }
          cleanup
  br label %517

230:                                              ; preds = %162
  %231 = landingpad { ptr, i32 }
          cleanup
  br label %516

232:                                              ; preds = %163
  %233 = landingpad { ptr, i32 }
          cleanup
  br label %515

234:                                              ; preds = %252, %251, %250, %249, %173, %172, %171, %170, %169, %168, %167, %166, %165, %164
  %235 = landingpad { ptr, i32 }
          cleanup
  br label %514

236:                                              ; preds = %178, %176, %174
  %237 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #13
  br label %514

238:                                              ; preds = %185, %183, %181
  %239 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #13
  br label %514

240:                                              ; preds = %192, %190, %188
  %241 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #13
  br label %514

242:                                              ; preds = %199, %197, %195
  %243 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #13
  br label %514

244:                                              ; preds = %206, %204, %202
  %245 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #13
  br label %514

246:                                              ; preds = %209
  %247 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #13
  br label %514

248:                                              ; preds = %211
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %30) #13
  invoke void @_ZN6Tensor8get_descEv(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %30, ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %249 unwind label %266

249:                                              ; preds = %248
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(92) %11, ptr noundef nonnull align 4 dereferenceable(92) %30, i64 92, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %30) #13
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %250 unwind label %234

250:                                              ; preds = %249
  invoke void @_ZN6Tensor8get_descEv(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %31, ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %251 unwind label %234

251:                                              ; preds = %250
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %31)
          to label %252 unwind label %234

252:                                              ; preds = %251
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %253 unwind label %234

253:                                              ; preds = %252
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #13
  store i32 9, ptr %32, align 4, !tbaa !22
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(32) %17) #13
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(32) %19) #13
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull align 8 dereferenceable(32) %21) #13
  %254 = invoke noundef i32 @_Z35convolution_infer_forward_algorithm6TensorS_S_20ConvolutionParamSpec17ConvolutionPolicyP27ConvolutionForwardAlgorithm8DataType19ActivationParamSpecP8ArchInfo(ptr noundef nonnull %33, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %16, i32 noundef 1, ptr noundef nonnull %32, i32 noundef %2, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %9, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %255 unwind label %268

255:                                              ; preds = %253
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #13
  %.not164 = icmp eq i32 %254, 0
  br i1 %.not164, label %270, label %256

256:                                              ; preds = %255
  %257 = call i64 (i64, ...) @syscall(i64 noundef 186) #13
  %258 = trunc i64 %257 to i32
  %259 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %258)
  %260 = load ptr, ptr @stdout, align 8, !tbaa !9
  %261 = call i32 @fflush(ptr noundef %260)
  %262 = call ptr @ee2str(i32 noundef %254)
  %263 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %262)
  %264 = load ptr, ptr @stdout, align 8, !tbaa !9
  %265 = call i32 @fflush(ptr noundef %264)
  call void @exit(i32 noundef 1) #14
  unreachable

266:                                              ; preds = %248
  %267 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %30) #13
  br label %514

268:                                              ; preds = %253
  %269 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #13
  br label %513

270:                                              ; preds = %255
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #13
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(32) %17) #13
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull align 8 dereferenceable(32) %19) #13
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull align 8 dereferenceable(32) %21) #13
  %271 = load i32, ptr %32, align 4, !tbaa !22
  %272 = invoke noundef i32 @_Z35convolution_infer_forward_tmp_bytes6TensorS_S_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPjP8ArchInfo(ptr noundef nonnull %37, ptr noundef nonnull %38, ptr noundef nonnull %39, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %16, i32 noundef %271, ptr noundef nonnull %36, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %273 unwind label %284

273:                                              ; preds = %270
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #13
  %.not165 = icmp eq i32 %272, 0
  br i1 %.not165, label %286, label %274

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

284:                                              ; preds = %270
  %285 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #13
  br label %512

286:                                              ; preds = %273
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %40) #13
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %40, i32 noundef 1)
          to label %287 unwind label %305

287:                                              ; preds = %286
  %288 = load i32, ptr %36, align 4, !tbaa !11
  invoke void @_Z8tensor1d8DataTypej(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %41, i32 noundef 0, i32 noundef %288)
          to label %289 unwind label %307

289:                                              ; preds = %287
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %41)
          to label %290 unwind label %307

290:                                              ; preds = %289
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %291 unwind label %307

291:                                              ; preds = %290
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #13
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull align 8 dereferenceable(32) %19) #13
  %292 = load i32, ptr %32, align 4, !tbaa !22
  %293 = invoke noundef i32 @_Z34convolution_transform_filter_bytes6Tensor20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvP8ArchInfo(ptr noundef nonnull %43, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %16, i32 noundef %292, ptr noundef nonnull %42, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %294 unwind label %309

294:                                              ; preds = %291
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #13
  %.not166 = icmp eq i32 %293, 0
  br i1 %.not166, label %311, label %295

295:                                              ; preds = %294
  %296 = call i64 (i64, ...) @syscall(i64 noundef 186) #13
  %297 = trunc i64 %296 to i32
  %298 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %297)
  %299 = load ptr, ptr @stdout, align 8, !tbaa !9
  %300 = call i32 @fflush(ptr noundef %299)
  %301 = call ptr @ee2str(i32 noundef %293)
  %302 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %301)
  %303 = load ptr, ptr @stdout, align 8, !tbaa !9
  %304 = call i32 @fflush(ptr noundef %303)
  call void @exit(i32 noundef 1) #14
  unreachable

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

307:                                              ; preds = %290, %289, %287
  %308 = landingpad { ptr, i32 }
          cleanup
  br label %510

309:                                              ; preds = %291
  %310 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #13
  br label %509

311:                                              ; preds = %294
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #13
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %44, i32 noundef 1)
          to label %312 unwind label %330

312:                                              ; preds = %311
  %313 = load i32, ptr %42, align 4, !tbaa !11
  invoke void @_Z8tensor1d8DataTypej(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %45, i32 noundef 0, i32 noundef %313)
          to label %314 unwind label %332

314:                                              ; preds = %312
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %45)
          to label %315 unwind label %332

315:                                              ; preds = %314
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %44)
          to label %316 unwind label %332

316:                                              ; preds = %315
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull align 8 dereferenceable(32) %19) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(108) %47, ptr noundef nonnull align 8 dereferenceable(108) %16, i64 108, i1 false), !tbaa.struct !24
  %317 = load i32, ptr %32, align 4, !tbaa !22
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull align 8 dereferenceable(32) %40) #13
  %318 = invoke noundef i32 @_Z28convolution_transform_filter6Tensor20ConvolutionParamSpec27ConvolutionForwardAlgorithmS_PS_P8ArchInfo(ptr noundef nonnull %46, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %47, i32 noundef %317, ptr noundef nonnull %48, ptr noundef nonnull %44, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %319 unwind label %334

319:                                              ; preds = %316
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #13
  %.not167 = icmp eq i32 %318, 0
  br i1 %.not167, label %336, label %320

320:                                              ; preds = %319
  %321 = call i64 (i64, ...) @syscall(i64 noundef 186) #13
  %322 = trunc i64 %321 to i32
  %323 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %322)
  %324 = load ptr, ptr @stdout, align 8, !tbaa !9
  %325 = call i32 @fflush(ptr noundef %324)
  %326 = call ptr @ee2str(i32 noundef %318)
  %327 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %326)
  %328 = load ptr, ptr @stdout, align 8, !tbaa !9
  %329 = call i32 @fflush(ptr noundef %328)
  call void @exit(i32 noundef 1) #14
  unreachable

330:                                              ; preds = %311
  %331 = landingpad { ptr, i32 }
          cleanup
  br label %508

332:                                              ; preds = %315, %314, %312
  %333 = landingpad { ptr, i32 }
          cleanup
  br label %507

334:                                              ; preds = %316
  %335 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #13
  br label %507

336:                                              ; preds = %319
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %49) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %50) #13
  call void @_ZNSaI6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #13
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2EmRKS0_RKS1_(ptr noundef nonnull align 8 dereferenceable(24) %49, i64 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 1 dereferenceable(1) %50)
          to label %337 unwind label %355

337:                                              ; preds = %336
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #13
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %51) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %52) #13
  call void @_ZNSaI6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #13
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2EmRKS0_RKS1_(ptr noundef nonnull align 8 dereferenceable(24) %51, i64 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %338 unwind label %357

338:                                              ; preds = %337
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #13
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %53) #13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %54) #13
  call void @_ZNSaI6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #13
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2EmRKS0_RKS1_(ptr noundef nonnull align 8 dereferenceable(24) %53, i64 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull align 1 dereferenceable(1) %54)
          to label %339 unwind label %359

339:                                              ; preds = %338
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %54) #13
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %55, ptr noundef nonnull align 8 dereferenceable(24) %49)
          to label %340 unwind label %361

340:                                              ; preds = %339
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull align 8 dereferenceable(32) %44) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(108) %57, ptr noundef nonnull align 8 dereferenceable(108) %16, i64 108, i1 false), !tbaa.struct !24
  %341 = load i32, ptr %32, align 4, !tbaa !22
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 8 dereferenceable(32) %23) #13
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %59, ptr noundef nonnull align 8 dereferenceable(24) %53)
          to label %342 unwind label %363

342:                                              ; preds = %340
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(32) %21) #13
  %343 = invoke noundef i32 @_Z11convolutionSt6vectorI6TensorSaIS0_EES0_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS0_S2_S0_19ActivationParamSpecP8ArchInfo(ptr noundef nonnull %55, ptr noundef nonnull %56, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %57, i32 noundef %341, ptr noundef null, ptr noundef nonnull %58, ptr noundef nonnull %59, ptr noundef nonnull %60, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %9, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %344 unwind label %365

344:                                              ; preds = %342
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %59) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %55) #13
  %.not170 = icmp eq i32 %343, 0
  br i1 %.not170, label %368, label %345

345:                                              ; preds = %344
  %346 = call i64 (i64, ...) @syscall(i64 noundef 186) #13
  %347 = trunc i64 %346 to i32
  %348 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %347)
  %349 = load ptr, ptr @stdout, align 8, !tbaa !9
  %350 = call i32 @fflush(ptr noundef %349)
  %351 = call ptr @ee2str(i32 noundef %343)
  %352 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %351)
  %353 = load ptr, ptr @stdout, align 8, !tbaa !9
  %354 = call i32 @fflush(ptr noundef %353)
  call void @exit(i32 noundef 1) #14
  unreachable

355:                                              ; preds = %336
  %356 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #13
  br label %506

357:                                              ; preds = %337
  %358 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #13
  br label %505

359:                                              ; preds = %338
  %360 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %54) #13
  br label %504

361:                                              ; preds = %339
  %362 = landingpad { ptr, i32 }
          cleanup
  br label %503

363:                                              ; preds = %340
  %364 = landingpad { ptr, i32 }
          cleanup
  br label %367

365:                                              ; preds = %342
  %366 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %59) #13
  br label %367

367:                                              ; preds = %365, %363
  %.pn = phi { ptr, i32 } [ %366, %365 ], [ %364, %363 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %55) #13
  br label %503

368:                                              ; preds = %344
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %61, ptr noundef nonnull align 8 dereferenceable(24) %51)
          to label %369 unwind label %384

369:                                              ; preds = %368
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull align 8 dereferenceable(32) %20) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(108) %63, ptr noundef nonnull align 8 dereferenceable(108) %16, i64 108, i1 false), !tbaa.struct !24
  %370 = load i32, ptr %32, align 4, !tbaa !22
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull align 8 dereferenceable(32) %23) #13
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %65, ptr noundef nonnull align 8 dereferenceable(24) %53)
          to label %371 unwind label %386

371:                                              ; preds = %369
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %22) #13
  %372 = invoke noundef i32 @_Z11convolutionSt6vectorI6TensorSaIS0_EES0_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS0_S2_S0_19ActivationParamSpecP8ArchInfo(ptr noundef nonnull %61, ptr noundef nonnull %62, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %63, i32 noundef %370, ptr noundef null, ptr noundef nonnull %64, ptr noundef nonnull %65, ptr noundef nonnull %66, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %9, ptr noundef nonnull @_ZL18UT_SERIAL_ARCHINFO)
          to label %373 unwind label %388

373:                                              ; preds = %371
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %65) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %61) #13
  %.not174 = icmp eq i32 %372, 0
  br i1 %.not174, label %391, label %374

374:                                              ; preds = %373
  %375 = call i64 (i64, ...) @syscall(i64 noundef 186) #13
  %376 = trunc i64 %375 to i32
  %377 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %376)
  %378 = load ptr, ptr @stdout, align 8, !tbaa !9
  %379 = call i32 @fflush(ptr noundef %378)
  %380 = call ptr @ee2str(i32 noundef %372)
  %381 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %380)
  %382 = load ptr, ptr @stdout, align 8, !tbaa !9
  %383 = call i32 @fflush(ptr noundef %382)
  call void @exit(i32 noundef 1) #14
  unreachable

384:                                              ; preds = %368
  %385 = landingpad { ptr, i32 }
          cleanup
  br label %503

386:                                              ; preds = %369
  %387 = landingpad { ptr, i32 }
          cleanup
  br label %390

388:                                              ; preds = %371
  %389 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %65) #13
  br label %390

390:                                              ; preds = %388, %386
  %.pn171 = phi { ptr, i32 } [ %389, %388 ], [ %387, %386 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %61) #13
  br label %503

391:                                              ; preds = %373
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull align 8 dereferenceable(32) %21) #13
  %392 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %67, i32 noundef 1)
          to label %393 unwind label %427

393:                                              ; preds = %391
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull align 8 dereferenceable(32) %22) #13
  %394 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %68, i32 noundef 1)
          to label %395 unwind label %429

395:                                              ; preds = %393
  %396 = invoke noundef i32 @_ZN6Tensor6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %397 unwind label %429

397:                                              ; preds = %395
  invoke void @_Z10ut_check_vPvS_j8DataTypef(ptr noundef %392, ptr noundef %394, i32 noundef %396, i32 noundef %2, float noundef 5.000000e+00)
          to label %398 unwind label %429

398:                                              ; preds = %397
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #13
  %399 = invoke noundef double @_Z10ut_time_msv()
          to label %.preheader.preheader unwind label %432

.preheader.preheader:                             ; preds = %398
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %69, ptr noundef nonnull align 8 dereferenceable(24) %49)
          to label %434 unwind label %449

.preheader.1:                                     ; preds = %438
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %69, ptr noundef nonnull align 8 dereferenceable(24) %49)
          to label %400 unwind label %449

400:                                              ; preds = %.preheader.1
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 8 dereferenceable(32) %44) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(108) %71, ptr noundef nonnull align 8 dereferenceable(108) %16, i64 108, i1 false), !tbaa.struct !24
  %401 = load i32, ptr %32, align 4, !tbaa !22
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef nonnull align 8 dereferenceable(32) %23) #13
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %73, ptr noundef nonnull align 8 dereferenceable(24) %53)
          to label %402 unwind label %451

402:                                              ; preds = %400
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 8 dereferenceable(32) %21) #13
  %403 = invoke noundef i32 @_Z11convolutionSt6vectorI6TensorSaIS0_EES0_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS0_S2_S0_19ActivationParamSpecP8ArchInfo(ptr noundef nonnull %69, ptr noundef nonnull %70, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %71, i32 noundef %401, ptr noundef null, ptr noundef nonnull %72, ptr noundef nonnull %73, ptr noundef nonnull %74, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %9, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %404 unwind label %453

404:                                              ; preds = %402
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %73) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %69) #13
  %.not202.1 = icmp eq i32 %403, 0
  br i1 %.not202.1, label %.preheader.2, label %439

.preheader.2:                                     ; preds = %404
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %69, ptr noundef nonnull align 8 dereferenceable(24) %49)
          to label %405 unwind label %449

405:                                              ; preds = %.preheader.2
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 8 dereferenceable(32) %44) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(108) %71, ptr noundef nonnull align 8 dereferenceable(108) %16, i64 108, i1 false), !tbaa.struct !24
  %406 = load i32, ptr %32, align 4, !tbaa !22
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef nonnull align 8 dereferenceable(32) %23) #13
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %73, ptr noundef nonnull align 8 dereferenceable(24) %53)
          to label %407 unwind label %451

407:                                              ; preds = %405
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 8 dereferenceable(32) %21) #13
  %408 = invoke noundef i32 @_Z11convolutionSt6vectorI6TensorSaIS0_EES0_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS0_S2_S0_19ActivationParamSpecP8ArchInfo(ptr noundef nonnull %69, ptr noundef nonnull %70, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %71, i32 noundef %406, ptr noundef null, ptr noundef nonnull %72, ptr noundef nonnull %73, ptr noundef nonnull %74, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %9, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %409 unwind label %453

409:                                              ; preds = %407
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %73) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %69) #13
  %.not202.2 = icmp eq i32 %408, 0
  br i1 %.not202.2, label %.preheader.3, label %439

.preheader.3:                                     ; preds = %409
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %69, ptr noundef nonnull align 8 dereferenceable(24) %49)
          to label %410 unwind label %449

410:                                              ; preds = %.preheader.3
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 8 dereferenceable(32) %44) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(108) %71, ptr noundef nonnull align 8 dereferenceable(108) %16, i64 108, i1 false), !tbaa.struct !24
  %411 = load i32, ptr %32, align 4, !tbaa !22
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef nonnull align 8 dereferenceable(32) %23) #13
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %73, ptr noundef nonnull align 8 dereferenceable(24) %53)
          to label %412 unwind label %451

412:                                              ; preds = %410
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 8 dereferenceable(32) %21) #13
  %413 = invoke noundef i32 @_Z11convolutionSt6vectorI6TensorSaIS0_EES0_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS0_S2_S0_19ActivationParamSpecP8ArchInfo(ptr noundef nonnull %69, ptr noundef nonnull %70, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %71, i32 noundef %411, ptr noundef null, ptr noundef nonnull %72, ptr noundef nonnull %73, ptr noundef nonnull %74, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %9, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %414 unwind label %453

414:                                              ; preds = %412
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %73) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %69) #13
  %.not202.3 = icmp eq i32 %413, 0
  br i1 %.not202.3, label %.preheader.4, label %439

.preheader.4:                                     ; preds = %414
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %69, ptr noundef nonnull align 8 dereferenceable(24) %49)
          to label %415 unwind label %449

415:                                              ; preds = %.preheader.4
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 8 dereferenceable(32) %44) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(108) %71, ptr noundef nonnull align 8 dereferenceable(108) %16, i64 108, i1 false), !tbaa.struct !24
  %416 = load i32, ptr %32, align 4, !tbaa !22
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef nonnull align 8 dereferenceable(32) %23) #13
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %73, ptr noundef nonnull align 8 dereferenceable(24) %53)
          to label %417 unwind label %451

417:                                              ; preds = %415
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 8 dereferenceable(32) %21) #13
  %418 = invoke noundef i32 @_Z11convolutionSt6vectorI6TensorSaIS0_EES0_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS0_S2_S0_19ActivationParamSpecP8ArchInfo(ptr noundef nonnull %69, ptr noundef nonnull %70, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %71, i32 noundef %416, ptr noundef null, ptr noundef nonnull %72, ptr noundef nonnull %73, ptr noundef nonnull %74, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %9, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %419 unwind label %453

419:                                              ; preds = %417
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %73) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %69) #13
  %.not202.4 = icmp eq i32 %418, 0
  br i1 %.not202.4, label %.preheader.5, label %439

.preheader.5:                                     ; preds = %419
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %69, ptr noundef nonnull align 8 dereferenceable(24) %49)
          to label %420 unwind label %449

420:                                              ; preds = %.preheader.5
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 8 dereferenceable(32) %44) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(108) %71, ptr noundef nonnull align 8 dereferenceable(108) %16, i64 108, i1 false), !tbaa.struct !24
  %421 = load i32, ptr %32, align 4, !tbaa !22
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef nonnull align 8 dereferenceable(32) %23) #13
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %73, ptr noundef nonnull align 8 dereferenceable(24) %53)
          to label %422 unwind label %451

422:                                              ; preds = %420
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 8 dereferenceable(32) %21) #13
  %423 = invoke noundef i32 @_Z11convolutionSt6vectorI6TensorSaIS0_EES0_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS0_S2_S0_19ActivationParamSpecP8ArchInfo(ptr noundef nonnull %69, ptr noundef nonnull %70, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %71, i32 noundef %421, ptr noundef null, ptr noundef nonnull %72, ptr noundef nonnull %73, ptr noundef nonnull %74, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %9, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %424 unwind label %453

424:                                              ; preds = %422
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %73) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %69) #13
  %.not202.5 = icmp eq i32 %423, 0
  br i1 %.not202.5, label %425, label %439

425:                                              ; preds = %424
  %426 = invoke noundef double @_Z10ut_time_msv()
          to label %456 unwind label %468

427:                                              ; preds = %391
  %428 = landingpad { ptr, i32 }
          cleanup
  br label %431

429:                                              ; preds = %397, %395, %393
  %430 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #13
  br label %431

431:                                              ; preds = %429, %427
  %.pn175 = phi { ptr, i32 } [ %430, %429 ], [ %428, %427 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #13
  br label %503

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

434:                                              ; preds = %.preheader.preheader
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 8 dereferenceable(32) %44) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(108) %71, ptr noundef nonnull align 8 dereferenceable(108) %16, i64 108, i1 false), !tbaa.struct !24
  %435 = load i32, ptr %32, align 4, !tbaa !22
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef nonnull align 8 dereferenceable(32) %23) #13
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %73, ptr noundef nonnull align 8 dereferenceable(24) %53)
          to label %436 unwind label %451

436:                                              ; preds = %434
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 8 dereferenceable(32) %21) #13
  %437 = invoke noundef i32 @_Z11convolutionSt6vectorI6TensorSaIS0_EES0_20ConvolutionParamSpec27ConvolutionForwardAlgorithmPvS0_S2_S0_19ActivationParamSpecP8ArchInfo(ptr noundef nonnull %69, ptr noundef nonnull %70, ptr noundef nonnull byval(%struct.ConvolutionParamSpec) align 8 %71, i32 noundef %435, ptr noundef null, ptr noundef nonnull %72, ptr noundef nonnull %73, ptr noundef nonnull %74, ptr noundef nonnull byval(%struct.ActivationParamSpec) align 8 %9, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %438 unwind label %453

438:                                              ; preds = %436
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %73) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %69) #13
  %.not202 = icmp eq i32 %437, 0
  br i1 %.not202, label %.preheader.1, label %439

439:                                              ; preds = %424, %419, %414, %409, %404, %438
  %.lcssa = phi i32 [ %437, %438 ], [ %403, %404 ], [ %408, %409 ], [ %413, %414 ], [ %418, %419 ], [ %423, %424 ]
  %440 = call i64 (i64, ...) @syscall(i64 noundef 186) #13
  %441 = trunc i64 %440 to i32
  %442 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %441)
  %443 = load ptr, ptr @stdout, align 8, !tbaa !9
  %444 = call i32 @fflush(ptr noundef %443)
  %445 = call ptr @ee2str(i32 noundef %.lcssa)
  %446 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %445)
  %447 = load ptr, ptr @stdout, align 8, !tbaa !9
  %448 = call i32 @fflush(ptr noundef %447)
  call void @exit(i32 noundef 1) #14
  unreachable

449:                                              ; preds = %.preheader.5, %.preheader.4, %.preheader.3, %.preheader.2, %.preheader.1, %.preheader.preheader
  %450 = landingpad { ptr, i32 }
          cleanup
  br label %503

451:                                              ; preds = %420, %415, %410, %405, %400, %434
  %452 = landingpad { ptr, i32 }
          cleanup
  br label %455

453:                                              ; preds = %422, %417, %412, %407, %402, %436
  %454 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %73) #13
  br label %455

455:                                              ; preds = %453, %451
  %.pn180 = phi { ptr, i32 } [ %454, %453 ], [ %452, %451 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %69) #13
  br label %503

456:                                              ; preds = %425
  call void @llvm.lifetime.start.p0(i64 150, ptr nonnull %75) #13
  call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %76) #13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %77) #13
  %457 = call noundef i32 @_Z11tensor4dGet10TensorDescP8DataTypeP10DataFormatPjS4_S4_S4_(ptr noundef nonnull byval(%struct.TensorDesc) align 8 %11, ptr noundef nonnull %4, ptr noundef nonnull %77, ptr noundef nonnull %5, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull %8)
  %.not177 = icmp eq i32 %457, 0
  br i1 %.not177, label %470, label %458

458:                                              ; preds = %456
  %459 = call i64 (i64, ...) @syscall(i64 noundef 186) #13
  %460 = trunc i64 %459 to i32
  %461 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %460)
  %462 = load ptr, ptr @stdout, align 8, !tbaa !9
  %463 = call i32 @fflush(ptr noundef %462)
  %464 = call ptr @ee2str(i32 noundef %457)
  %465 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %464)
  %466 = load ptr, ptr @stdout, align 8, !tbaa !9
  %467 = call i32 @fflush(ptr noundef %466)
  call void @exit(i32 noundef 1) #14
  unreachable

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

470:                                              ; preds = %456
  %471 = fsub double %426, %399
  %472 = fdiv double %471, 6.000000e+00
  %473 = load i32, ptr %5, align 4, !tbaa !11
  %474 = load i32, ptr %6, align 4, !tbaa !11
  %475 = load i32, ptr %7, align 4, !tbaa !11
  %476 = load i32, ptr %8, align 4, !tbaa !11
  %477 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %76, ptr noundef nonnull dereferenceable(1) @.str.3, i32 noundef 1, i32 noundef %94, i32 noundef %97, i32 noundef %100, i32 noundef %103, i32 noundef %106, i32 noundef %109, i32 noundef %112, i32 noundef %115, i32 noundef %118, i32 noundef %121, i32 noundef %473, i32 noundef %474, i32 noundef %475, i32 noundef %476) #13
  %478 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %75, ptr noundef nonnull dereferenceable(1) @.str.4, ptr noundef nonnull @.str.5, ptr noundef nonnull %76) #13
  %479 = load i32, ptr %5, align 4, !tbaa !11
  %480 = uitofp i32 %479 to double
  %481 = load i32, ptr %6, align 4, !tbaa !11
  %482 = uitofp i32 %481 to double
  %483 = fmul double %480, %482
  %484 = load i32, ptr %7, align 4, !tbaa !11
  %485 = uitofp i32 %484 to double
  %486 = fmul double %483, %485
  %487 = load i32, ptr %8, align 4, !tbaa !11
  %488 = uitofp i32 %487 to double
  %489 = fmul double %486, %488
  %490 = uitofp i32 %94 to double
  %491 = fmul double %490, 2.000000e+00
  %492 = uitofp i32 %115 to double
  %493 = fdiv double %491, %492
  %494 = uitofp i32 %109 to double
  %495 = fmul double %493, %494
  %496 = uitofp i32 %112 to double
  %497 = call double @llvm.fmuladd.f64(double %495, double %496, double 1.000000e+00)
  %498 = fmul double %497, %489
  %499 = load i32, ptr %4, align 4, !tbaa !5
  invoke void @_Z6ut_log8DataTypePcdd(i32 noundef %499, ptr noundef nonnull %75, double noundef %498, double noundef %472)
          to label %500 unwind label %501

500:                                              ; preds = %470
  call void @free(ptr noundef %153) #13
  call void @free(ptr noundef %157) #13
  call void @free(ptr noundef %158) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %77) #13
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %76) #13
  call void @llvm.lifetime.end.p0(i64 150, ptr nonnull %75) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %53) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %53) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %51) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %51) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %49) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %49) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #13
  call void @llvm.lifetime.end.p0(i64 108, ptr nonnull %16) #13
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %15) #13
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %14) #13
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %11) #13
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %10) #13
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %9) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #13
  ret i32 0

501:                                              ; preds = %470
  %502 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %77) #13
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %76) #13
  call void @llvm.lifetime.end.p0(i64 150, ptr nonnull %75) #13
  br label %503

503:                                              ; preds = %432, %455, %449, %501, %468, %384, %390, %361, %367, %431
  %.pn180.pn.pn.pn = phi { ptr, i32 } [ %.pn175, %431 ], [ %.pn, %367 ], [ %362, %361 ], [ %.pn171, %390 ], [ %385, %384 ], [ %433, %432 ], [ %.pn180, %455 ], [ %450, %449 ], [ %502, %501 ], [ %469, %468 ]
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %53) #13
  br label %504

504:                                              ; preds = %503, %359
  %.pn180.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn180.pn.pn.pn, %503 ], [ %360, %359 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %53) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %51) #13
  br label %505

505:                                              ; preds = %504, %357
  %.pn180.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn180.pn.pn.pn.pn, %504 ], [ %358, %357 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %51) #13
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %49) #13
  br label %506

506:                                              ; preds = %505, %355
  %.pn180.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn180.pn.pn.pn.pn.pn, %505 ], [ %356, %355 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %49) #13
  br label %507

507:                                              ; preds = %506, %334, %332
  %.pn180.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn180.pn.pn.pn.pn.pn.pn, %506 ], [ %335, %334 ], [ %333, %332 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #13
  br label %508

508:                                              ; preds = %507, %330
  %.pn180.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn180.pn.pn.pn.pn.pn.pn.pn, %507 ], [ %331, %330 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #13
  br label %509

509:                                              ; preds = %508, %309
  %.pn180.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn180.pn.pn.pn.pn.pn.pn.pn.pn, %508 ], [ %310, %309 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #13
  br label %510

510:                                              ; preds = %509, %307
  %.pn180.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn180.pn.pn.pn.pn.pn.pn.pn.pn.pn, %509 ], [ %308, %307 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #13
  br label %511

511:                                              ; preds = %510, %305
  %.pn180.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn180.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %510 ], [ %306, %305 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #13
  br label %512

512:                                              ; preds = %511, %284
  %.pn180.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn180.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %511 ], [ %285, %284 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #13
  br label %513

513:                                              ; preds = %512, %268
  %.pn180.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn180.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %512 ], [ %269, %268 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #13
  br label %514

514:                                              ; preds = %513, %266, %246, %244, %242, %240, %238, %236, %234
  %.pn180.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn180.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %513 ], [ %235, %234 ], [ %267, %266 ], [ %247, %246 ], [ %245, %244 ], [ %243, %242 ], [ %241, %240 ], [ %239, %238 ], [ %237, %236 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #13
  br label %515

515:                                              ; preds = %514, %232
  %.pn180.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn180.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %514 ], [ %233, %232 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #13
  br label %516

516:                                              ; preds = %515, %230
  %.pn180.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn180.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %515 ], [ %231, %230 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #13
  br label %517

517:                                              ; preds = %516, %228
  %.pn180.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn180.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %516 ], [ %229, %228 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #13
  br label %518

518:                                              ; preds = %517, %226
  %.pn180.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn180.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %517 ], [ %227, %226 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #13
  br label %519

519:                                              ; preds = %518, %224
  %.pn180.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn180.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %518 ], [ %225, %224 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #13
  br label %520

520:                                              ; preds = %519, %222
  %.pn180.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn180.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %519 ], [ %223, %222 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #13
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #13
  call void @llvm.lifetime.end.p0(i64 108, ptr nonnull %16) #13
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %15) #13
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %14) #13
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %11) #13
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %10) #13
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %9) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #13
  resume { ptr, i32 } %.pn180.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.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: nounwind
declare i64 @syscall(i64 noundef, ...) local_unnamed_addr #2

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

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

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

; Function Attrs: inlinehint mustprogress nofree nounwind willreturn memory(read) uwtable
declare i32 @atoi(ptr nocapture noundef nonnull) local_unnamed_addr #5

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN10TensorDescC2Ev(ptr noundef nonnull align 4 dereferenceable(92)) unnamed_addr #6 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 #6

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #8

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

declare i32 @__gxx_personality_v0(...)

; 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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z10UNI_MEMCPYPvPKvm(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #8

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef, i32 noundef) local_unnamed_addr #8

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_Z7bytesOf8DataType(i32 noundef) local_unnamed_addr #8

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #6 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 #9

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Tensor8get_descEv(ptr dead_on_unwind noalias writable sret(%struct.TensorDesc) align 4, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0 align 2

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z10ut_check_vPvS_j8DataTypef(ptr noundef, ptr noundef, i32 noundef, i32 noundef, float noundef) local_unnamed_addr #8

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

declare noundef double @_Z10ut_time_msv() local_unnamed_addr #9

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z11tensor4dGet10TensorDescP8DataTypeP10DataFormatPjS4_S4_S4_(ptr noundef byval(%struct.TensorDesc) align 8, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #6

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

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #11

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_Z6ut_log8DataTypePcdd(i32 noundef, ptr noundef, double noundef, double noundef) local_unnamed_addr #8

; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite)
declare void @free(ptr allocptr nocapture noundef) local_unnamed_addr #12

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #10 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 = { 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 #3 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 #5 = { inlinehint mustprogress nofree nounwind willreturn memory(read) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #8 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { mustprogress 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 #11 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #12 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #13 = { nounwind }
attributes #14 = { noreturn nounwind }
attributes #15 = { nounwind willreturn memory(read) }

!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 = !{!"_ZTS8DataType", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!14, !15, i64 0}
!14 = !{!"_ZTS19ActivationParamSpec", !15, i64 0, !7, i64 4}
!15 = !{!"_ZTS14ActivationMode", !7, i64 0}
!16 = !{!17, !17, i64 0}
!17 = !{!"float", !7, i64 0}
!18 = !{i64 0, i64 4, !5, i64 4, i64 4, !19, i64 8, i64 4, !11, i64 12, i64 80, !21}
!19 = !{!20, !20, i64 0}
!20 = !{!"_ZTS10DataFormat", !7, i64 0}
!21 = !{!7, !7, i64 0}
!22 = !{!23, !23, i64 0}
!23 = !{!"_ZTS27ConvolutionForwardAlgorithm", !7, i64 0}
!24 = !{i64 0, i64 4, !11, i64 4, i64 4, !11, i64 8, i64 4, !11, i64 12, i64 4, !11, i64 16, i64 4, !11, i64 20, i64 4, !11, i64 24, i64 4, !11, i64 28, i64 4, !11, i64 32, i64 4, !11, i64 36, i64 4, !11, i64 40, i64 4, !11, i64 44, i64 4, !11, i64 48, i64 4, !11, i64 52, i64 4, !11, i64 56, i64 4, !11, i64 60, i64 4, !11, i64 64, i64 4, !11, i64 68, i64 4, !11, i64 72, i64 4, !25, i64 76, i64 4, !27, i64 80, i64 4, !27, i64 84, i64 8, !21, i64 92, i64 4, !28, i64 96, i64 4, !11, i64 100, i64 4, !11, i64 104, i64 4, !11}
!25 = !{!26, !26, i64 0}
!26 = !{!"_ZTS15ConvolutionMode", !7, i64 0}
!27 = !{!15, !15, i64 0}
!28 = !{!29, !29, i64 0}
!29 = !{!"_ZTS9RoundMode", !7, i64 0}


; Effective O3 passes: DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,LCSSAPass,LoopRotatePass,LoopSimplifyPass,MemCpyOptPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass