; LLVM IR from huawei-noah/bolt :: compute/image/tests/test_image_resize.ll (Z10resizeTestiPPc8DataType)

; 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.ResizeParamSpec = type { [2 x i32], [4 x float], i32, i32, i32, i32, i32, float, i32, i32 }
%struct.TensorDesc = type { i32, i32, i32, [20 x i32] }
%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" }

@.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
@.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 [29 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_Z10resizeTestiPPc8DataType(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 %struct.ArchInfo, align 8
  %18 = alloca %struct.ResizeParamSpec, align 4
  %19 = alloca %struct.TensorDesc, align 4
  %20 = alloca ptr, align 8
  %21 = alloca %class.Tensor, align 8
  %22 = alloca %struct.TensorDesc, align 8
  %23 = alloca %class.Tensor, align 8
  %24 = alloca ptr, align 8
  %25 = alloca i32, align 4
  %26 = alloca %struct.TensorDesc, align 8
  %27 = alloca %class.Tensor, align 8
  %28 = alloca i32, align 4
  %29 = alloca %struct.ResizeParamSpec, align 8
  %30 = alloca i32, align 4
  %31 = alloca %struct.TensorDesc, align 4
  %32 = alloca %struct.TensorDesc, align 8
  %33 = alloca i32, align 4
  %34 = alloca %class.Tensor, align 8
  %35 = alloca %struct.TensorDesc, align 8
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca %class.Tensor, align 8
  %40 = alloca %struct.ResizeParamSpec, align 8
  %41 = alloca %class.Tensor, align 8
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca %class.Tensor, align 8
  %45 = alloca %struct.ResizeParamSpec, align 8
  %46 = alloca %class.Tensor, align 8
  %47 = alloca i32, align 4
  %48 = alloca %class.Tensor, align 8
  %49 = alloca %struct.TensorDesc, align 8
  %50 = alloca %class.Tensor, align 8
  %51 = alloca %struct.TensorDesc, align 8
  %52 = alloca i32, align 4
  %53 = alloca %class.Tensor, align 8
  %54 = alloca %struct.ResizeParamSpec, align 8
  %55 = alloca %class.Tensor, align 8
  %56 = alloca %class.Tensor, align 8
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca %class.Tensor, align 8
  %60 = alloca %struct.ResizeParamSpec, align 8
  %61 = alloca %class.Tensor, align 8
  %62 = alloca %class.Tensor, align 8
  %63 = alloca i32, align 4
  %64 = alloca %class.Tensor, align 8
  %65 = alloca %class.Tensor, align 8
  %66 = alloca double, align 8
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca %class.Tensor, align 8
  %70 = alloca %struct.ResizeParamSpec, align 8
  %71 = alloca %class.Tensor, align 8
  %72 = alloca %class.Tensor, align 8
  %73 = alloca i32, align 4
  %74 = alloca double, align 8
  %75 = alloca double, align 8
  %76 = alloca [150 x i8], align 16
  %77 = alloca [120 x i8], align 16
  %78 = 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
  %79 = load i32, ptr %4, align 4, !tbaa !5
  %80 = icmp eq i32 %79, 9
  br i1 %80, label %91, label %81

81:                                               ; preds = %3
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #9
  %82 = call i64 (i64, ...) @syscall(i64 noundef 186) #9
  %83 = trunc i64 %82 to i32
  store i32 %83, ptr %7, align 4, !tbaa !5
  %84 = load i32, ptr %7, align 4, !tbaa !5
  %85 = call i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %84)
  %86 = load ptr, ptr @stdout, align 8, !tbaa !9
  %87 = call i32 @fflush(ptr noundef %86)
  %88 = call i32 (ptr, ...) @printf(ptr noundef @.str.1)
  %89 = load ptr, ptr @stdout, align 8, !tbaa !9
  %90 = call i32 @fflush(ptr noundef %89)
  call void @exit(i32 noundef 1) #10
  unreachable

91:                                               ; preds = %3
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #9
  %92 = load ptr, ptr %5, align 8, !tbaa !9
  %93 = getelementptr inbounds ptr, ptr %92, i64 1
  %94 = load ptr, ptr %93, align 8, !tbaa !9
  %95 = call i32 @atoi(ptr noundef %94) #11
  store i32 %95, ptr %8, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #9
  %96 = load ptr, ptr %5, align 8, !tbaa !9
  %97 = getelementptr inbounds ptr, ptr %96, i64 2
  %98 = load ptr, ptr %97, align 8, !tbaa !9
  %99 = call i32 @atoi(ptr noundef %98) #11
  store i32 %99, ptr %9, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #9
  %100 = load ptr, ptr %5, align 8, !tbaa !9
  %101 = getelementptr inbounds ptr, ptr %100, i64 3
  %102 = load ptr, ptr %101, align 8, !tbaa !9
  %103 = call i32 @atoi(ptr noundef %102) #11
  store i32 %103, ptr %10, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #9
  %104 = load ptr, ptr %5, align 8, !tbaa !9
  %105 = getelementptr inbounds ptr, ptr %104, i64 4
  %106 = load ptr, ptr %105, align 8, !tbaa !9
  %107 = call i32 @atoi(ptr noundef %106) #11
  store i32 %107, ptr %11, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #9
  %108 = load ptr, ptr %5, align 8, !tbaa !9
  %109 = getelementptr inbounds ptr, ptr %108, i64 5
  %110 = load ptr, ptr %109, align 8, !tbaa !9
  %111 = call i32 @atoi(ptr noundef %110) #11
  store i32 %111, ptr %12, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #9
  %112 = load ptr, ptr %5, align 8, !tbaa !9
  %113 = getelementptr inbounds ptr, ptr %112, i64 6
  %114 = load ptr, ptr %113, align 8, !tbaa !9
  %115 = call i32 @atoi(ptr noundef %114) #11
  store i32 %115, ptr %13, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #9
  %116 = load ptr, ptr %5, align 8, !tbaa !9
  %117 = getelementptr inbounds ptr, ptr %116, i64 7
  %118 = load ptr, ptr %117, align 8, !tbaa !9
  %119 = call i32 @atoi(ptr noundef %118) #11
  store i32 %119, ptr %14, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #9
  %120 = load ptr, ptr %5, align 8, !tbaa !9
  %121 = getelementptr inbounds ptr, ptr %120, i64 8
  %122 = load ptr, ptr %121, align 8, !tbaa !9
  %123 = call i32 @atoi(ptr noundef %122) #11
  store i32 %123, ptr %15, align 4, !tbaa !5
  %124 = load i32, ptr %8, align 4, !tbaa !5
  %125 = icmp eq i32 %124, 1
  br i1 %125, label %126, label %129

126:                                              ; preds = %91
  %127 = load i32, ptr %12, align 4, !tbaa !5
  %128 = icmp eq i32 %127, 1
  br i1 %128, label %139, label %129

129:                                              ; preds = %126, %91
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #9
  %130 = call i64 (i64, ...) @syscall(i64 noundef 186) #9
  %131 = trunc i64 %130 to i32
  store i32 %131, ptr %16, align 4, !tbaa !5
  %132 = load i32, ptr %16, align 4, !tbaa !5
  %133 = call i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %132)
  %134 = load ptr, ptr @stdout, align 8, !tbaa !9
  %135 = call i32 @fflush(ptr noundef %134)
  %136 = call i32 (ptr, ...) @printf(ptr noundef @.str.1)
  %137 = load ptr, ptr @stdout, align 8, !tbaa !9
  %138 = call i32 @fflush(ptr noundef %137)
  call void @exit(i32 noundef 1) #10
  unreachable

139:                                              ; preds = %126
  call void @llvm.lifetime.start.p0(i64 16, ptr %17) #9
  %140 = getelementptr inbounds %struct.ArchInfo, ptr %17, i32 0, i32 0
  store i32 1, ptr %140, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 56, ptr %18) #9
  %141 = getelementptr inbounds %struct.ResizeParamSpec, ptr %18, i32 0, i32 4
  store i32 0, ptr %141, align 4, !tbaa !16
  %142 = getelementptr inbounds %struct.ResizeParamSpec, ptr %18, i32 0, i32 5
  store i32 3, ptr %142, align 4, !tbaa !22
  %143 = getelementptr inbounds %struct.ResizeParamSpec, ptr %18, i32 0, i32 2
  store i32 0, ptr %143, align 4, !tbaa !23
  %144 = getelementptr inbounds %struct.ResizeParamSpec, ptr %18, i32 0, i32 3
  store i32 4, ptr %144, align 4, !tbaa !24
  %145 = load i32, ptr %14, align 4, !tbaa !5
  %146 = uitofp i32 %145 to float
  %147 = getelementptr inbounds %struct.ResizeParamSpec, ptr %18, i32 0, i32 1
  %148 = getelementptr inbounds [4 x float], ptr %147, i64 0, i64 0
  store float %146, ptr %148, align 4, !tbaa !25
  %149 = load i32, ptr %15, align 4, !tbaa !5
  %150 = uitofp i32 %149 to float
  %151 = getelementptr inbounds %struct.ResizeParamSpec, ptr %18, i32 0, i32 1
  %152 = getelementptr inbounds [4 x float], ptr %151, i64 0, i64 1
  store float %150, ptr %152, align 4, !tbaa !25
  %153 = load i32, ptr %14, align 4, !tbaa !5
  %154 = uitofp i32 %153 to float
  %155 = load i32, ptr %10, align 4, !tbaa !5
  %156 = uitofp i32 %155 to float
  %157 = fdiv float %154, %156
  %158 = getelementptr inbounds %struct.ResizeParamSpec, ptr %18, i32 0, i32 1
  %159 = getelementptr inbounds [4 x float], ptr %158, i64 0, i64 2
  store float %157, ptr %159, align 4, !tbaa !25
  %160 = load i32, ptr %15, align 4, !tbaa !5
  %161 = uitofp i32 %160 to float
  %162 = load i32, ptr %11, align 4, !tbaa !5
  %163 = uitofp i32 %162 to float
  %164 = fdiv float %161, %163
  %165 = getelementptr inbounds %struct.ResizeParamSpec, ptr %18, i32 0, i32 1
  %166 = getelementptr inbounds [4 x float], ptr %165, i64 0, i64 3
  store float %164, ptr %166, align 4, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 92, ptr %19) #9
  %167 = load i32, ptr %6, align 4, !tbaa !11
  %168 = load i32, ptr %8, align 4, !tbaa !5
  %169 = load i32, ptr %9, align 4, !tbaa !5
  %170 = load i32, ptr %10, align 4, !tbaa !5
  %171 = load i32, ptr %11, align 4, !tbaa !5
  call void @_Z9tensor4df8DataType10DataFormatjjjj(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %19, i32 noundef %167, i32 noundef 0, i32 noundef %168, i32 noundef %169, i32 noundef %170, i32 noundef %171)
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #9
  %172 = load i32, ptr %8, align 4, !tbaa !5
  %173 = load i32, ptr %9, align 4, !tbaa !5
  %174 = mul i32 %172, %173
  %175 = load i32, ptr %10, align 4, !tbaa !5
  %176 = mul i32 %174, %175
  %177 = load i32, ptr %11, align 4, !tbaa !5
  %178 = mul i32 %176, %177
  %179 = load i32, ptr %6, align 4, !tbaa !11
  %180 = call noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef %178, i32 noundef %179, i32 noundef 0)
  store ptr %180, ptr %20, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr %21) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %22, ptr align 4 %19, i64 92, i1 false), !tbaa.struct !26
  call void @_ZN6Tensor11alloc_sizedIL10MemoryType1EEES_10TensorDesc(ptr dead_on_unwind writable sret(%class.Tensor) align 8 %21, ptr noundef byval(%struct.TensorDesc) align 8 %22)
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  %181 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %23, i32 noundef 1)
          to label %182 unwind label %210

182:                                              ; preds = %139
  %183 = load ptr, ptr %20, align 8, !tbaa !9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %26, ptr align 4 %19, i64 92, i1 false), !tbaa.struct !26
  %184 = invoke noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef byval(%struct.TensorDesc) align 8 %26)
          to label %185 unwind label %210

185:                                              ; preds = %182
  %186 = zext i32 %184 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %181, ptr noundef %183, i64 noundef %186)
          to label %187 unwind label %210

187:                                              ; preds = %185
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %27) #9
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %27, i32 noundef 1)
          to label %188 unwind label %214

188:                                              ; preds = %187
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %29, ptr align 4 %18, i64 56, i1 false), !tbaa.struct !30
  %189 = invoke noundef i32 @_Z24resize_infer_output_sizeP6Tensor15ResizeParamSpecS0_P8ArchInfo(ptr noundef %21, ptr noundef byval(%struct.ResizeParamSpec) align 8 %29, ptr noundef %27, ptr noundef %17)
          to label %190 unwind label %218

190:                                              ; preds = %188
  store i32 %189, ptr %28, align 4, !tbaa !34
  %191 = load i32, ptr %28, align 4, !tbaa !34
  %192 = icmp ne i32 %191, 0
  br i1 %192, label %193, label %226

193:                                              ; preds = %190
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #9
  %194 = call i64 (i64, ...) @syscall(i64 noundef 186) #9
  %195 = trunc i64 %194 to i32
  store i32 %195, ptr %30, align 4, !tbaa !5
  %196 = load i32, ptr %30, align 4, !tbaa !5
  %197 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %196)
          to label %198 unwind label %222

198:                                              ; preds = %193
  %199 = load ptr, ptr @stdout, align 8, !tbaa !9
  %200 = invoke i32 @fflush(ptr noundef %199)
          to label %201 unwind label %222

201:                                              ; preds = %198
  %202 = load i32, ptr %28, align 4, !tbaa !34
  %203 = invoke ptr @ee2str(i32 noundef %202)
          to label %204 unwind label %222

204:                                              ; preds = %201
  %205 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %203)
          to label %206 unwind label %222

206:                                              ; preds = %204
  %207 = load ptr, ptr @stdout, align 8, !tbaa !9
  %208 = invoke i32 @fflush(ptr noundef %207)
          to label %209 unwind label %222

209:                                              ; preds = %206
  call void @exit(i32 noundef 1) #10
  unreachable

210:                                              ; preds = %185, %182, %139
  %211 = landingpad { ptr, i32 }
          cleanup
  %212 = extractvalue { ptr, i32 } %211, 0
  store ptr %212, ptr %24, align 8
  %213 = extractvalue { ptr, i32 } %211, 1
  store i32 %213, ptr %25, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #9
  br label %524

214:                                              ; preds = %187
  %215 = landingpad { ptr, i32 }
          cleanup
  %216 = extractvalue { ptr, i32 } %215, 0
  store ptr %216, ptr %24, align 8
  %217 = extractvalue { ptr, i32 } %215, 1
  store i32 %217, ptr %25, align 4
  br label %523

218:                                              ; preds = %188
  %219 = landingpad { ptr, i32 }
          cleanup
  %220 = extractvalue { ptr, i32 } %219, 0
  store ptr %220, ptr %24, align 8
  %221 = extractvalue { ptr, i32 } %219, 1
  store i32 %221, ptr %25, align 4
  br label %252

222:                                              ; preds = %206, %204, %201, %198, %193
  %223 = landingpad { ptr, i32 }
          cleanup
  %224 = extractvalue { ptr, i32 } %223, 0
  store ptr %224, ptr %24, align 8
  %225 = extractvalue { ptr, i32 } %223, 1
  store i32 %225, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  br label %252

226:                                              ; preds = %190
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  call void @llvm.lifetime.start.p0(i64 92, ptr %31) #9
  invoke void @_ZN6Tensor8get_descEv(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %31, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %227 unwind label %253

227:                                              ; preds = %226
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %32, ptr align 4 %31, i64 92, i1 false), !tbaa.struct !26
  %228 = invoke noundef i32 @_Z17tensorNumElements10TensorDesc(ptr noundef byval(%struct.TensorDesc) align 8 %32)
          to label %229 unwind label %253

229:                                              ; preds = %227
  %230 = load i32, ptr %12, align 4, !tbaa !5
  %231 = load i32, ptr %13, align 4, !tbaa !5
  %232 = mul i32 %230, %231
  %233 = load i32, ptr %14, align 4, !tbaa !5
  %234 = mul i32 %232, %233
  %235 = load i32, ptr %15, align 4, !tbaa !5
  %236 = mul i32 %234, %235
  %237 = icmp eq i32 %228, %236
  br i1 %237, label %261, label %238

238:                                              ; preds = %229
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #9
  %239 = call i64 (i64, ...) @syscall(i64 noundef 186) #9
  %240 = trunc i64 %239 to i32
  store i32 %240, ptr %33, align 4, !tbaa !5
  %241 = load i32, ptr %33, align 4, !tbaa !5
  %242 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %241)
          to label %243 unwind label %257

243:                                              ; preds = %238
  %244 = load ptr, ptr @stdout, align 8, !tbaa !9
  %245 = invoke i32 @fflush(ptr noundef %244)
          to label %246 unwind label %257

246:                                              ; preds = %243
  %247 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.1)
          to label %248 unwind label %257

248:                                              ; preds = %246
  %249 = load ptr, ptr @stdout, align 8, !tbaa !9
  %250 = invoke i32 @fflush(ptr noundef %249)
          to label %251 unwind label %257

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

252:                                              ; preds = %222, %218
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  br label %522

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

257:                                              ; preds = %248, %246, %243, %238
  %258 = landingpad { ptr, i32 }
          cleanup
  %259 = extractvalue { ptr, i32 } %258, 0
  store ptr %259, ptr %24, align 8
  %260 = extractvalue { ptr, i32 } %258, 1
  store i32 %260, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  br label %521

261:                                              ; preds = %229
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %262 unwind label %253

262:                                              ; preds = %261
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %35, ptr align 4 %31, i64 92, i1 false), !tbaa.struct !26
  invoke void @_ZN6Tensor11alloc_sizedIL10MemoryType1EEES_10TensorDesc(ptr dead_on_unwind writable sret(%class.Tensor) align 8 %34, ptr noundef byval(%struct.TensorDesc) align 8 %35)
          to label %263 unwind label %285

263:                                              ; preds = %262
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #9
  store i32 0, ptr %36, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #9
  store i32 0, ptr %37, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #9
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %40, ptr align 4 %18, i64 56, i1 false), !tbaa.struct !30
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  %264 = invoke noundef i32 @_Z30resize_infer_forward_tmp_bytes6Tensor15ResizeParamSpecS_PjP8ArchInfo(ptr noundef %39, ptr noundef byval(%struct.ResizeParamSpec) align 8 %40, ptr noundef %41, ptr noundef %36, ptr noundef %17)
          to label %265 unwind label %289

265:                                              ; preds = %263
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #9
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #9
  store i32 %264, ptr %38, align 4, !tbaa !34
  %266 = load i32, ptr %38, align 4, !tbaa !34
  %267 = icmp ne i32 %266, 0
  br i1 %267, label %268, label %297

268:                                              ; preds = %265
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #9
  %269 = call i64 (i64, ...) @syscall(i64 noundef 186) #9
  %270 = trunc i64 %269 to i32
  store i32 %270, ptr %42, align 4, !tbaa !5
  %271 = load i32, ptr %42, align 4, !tbaa !5
  %272 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %271)
          to label %273 unwind label %293

273:                                              ; preds = %268
  %274 = load ptr, ptr @stdout, align 8, !tbaa !9
  %275 = invoke i32 @fflush(ptr noundef %274)
          to label %276 unwind label %293

276:                                              ; preds = %273
  %277 = load i32, ptr %38, align 4, !tbaa !34
  %278 = invoke ptr @ee2str(i32 noundef %277)
          to label %279 unwind label %293

279:                                              ; preds = %276
  %280 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %278)
          to label %281 unwind label %293

281:                                              ; preds = %279
  %282 = load ptr, ptr @stdout, align 8, !tbaa !9
  %283 = invoke i32 @fflush(ptr noundef %282)
          to label %284 unwind label %293

284:                                              ; preds = %281
  call void @exit(i32 noundef 1) #10
  unreachable

285:                                              ; preds = %262
  %286 = landingpad { ptr, i32 }
          cleanup
  %287 = extractvalue { ptr, i32 } %286, 0
  store ptr %287, ptr %24, align 8
  %288 = extractvalue { ptr, i32 } %286, 1
  store i32 %288, ptr %25, align 4
  br label %520

289:                                              ; preds = %263
  %290 = landingpad { ptr, i32 }
          cleanup
  %291 = extractvalue { ptr, i32 } %290, 0
  store ptr %291, ptr %24, align 8
  %292 = extractvalue { ptr, i32 } %290, 1
  store i32 %292, ptr %25, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #9
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #9
  br label %319

293:                                              ; preds = %281, %279, %276, %273, %268
  %294 = landingpad { ptr, i32 }
          cleanup
  %295 = extractvalue { ptr, i32 } %294, 0
  store ptr %295, ptr %24, align 8
  %296 = extractvalue { ptr, i32 } %294, 1
  store i32 %296, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #9
  br label %319

297:                                              ; preds = %265
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #9
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %45, ptr align 4 %18, i64 56, i1 false), !tbaa.struct !30
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  %298 = invoke noundef i32 @_Z30resize_infer_forward_tmp_bytes6Tensor15ResizeParamSpecS_PjP8ArchInfo(ptr noundef %44, ptr noundef byval(%struct.ResizeParamSpec) align 8 %45, ptr noundef %46, ptr noundef %37, ptr noundef @_ZL18UT_SERIAL_ARCHINFO)
          to label %299 unwind label %320

299:                                              ; preds = %297
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #9
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #9
  store i32 %298, ptr %43, align 4, !tbaa !34
  %300 = load i32, ptr %43, align 4, !tbaa !34
  %301 = icmp ne i32 %300, 0
  br i1 %301, label %302, label %328

302:                                              ; preds = %299
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #9
  %303 = call i64 (i64, ...) @syscall(i64 noundef 186) #9
  %304 = trunc i64 %303 to i32
  store i32 %304, ptr %47, align 4, !tbaa !5
  %305 = load i32, ptr %47, align 4, !tbaa !5
  %306 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %305)
          to label %307 unwind label %324

307:                                              ; preds = %302
  %308 = load ptr, ptr @stdout, align 8, !tbaa !9
  %309 = invoke i32 @fflush(ptr noundef %308)
          to label %310 unwind label %324

310:                                              ; preds = %307
  %311 = load i32, ptr %43, align 4, !tbaa !34
  %312 = invoke ptr @ee2str(i32 noundef %311)
          to label %313 unwind label %324

313:                                              ; preds = %310
  %314 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %312)
          to label %315 unwind label %324

315:                                              ; preds = %313
  %316 = load ptr, ptr @stdout, align 8, !tbaa !9
  %317 = invoke i32 @fflush(ptr noundef %316)
          to label %318 unwind label %324

318:                                              ; preds = %315
  call void @exit(i32 noundef 1) #10
  unreachable

319:                                              ; preds = %293, %289
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  br label %519

320:                                              ; preds = %297
  %321 = landingpad { ptr, i32 }
          cleanup
  %322 = extractvalue { ptr, i32 } %321, 0
  store ptr %322, ptr %24, align 8
  %323 = extractvalue { ptr, i32 } %321, 1
  store i32 %323, ptr %25, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #9
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #9
  br label %356

324:                                              ; preds = %315, %313, %310, %307, %302
  %325 = landingpad { ptr, i32 }
          cleanup
  %326 = extractvalue { ptr, i32 } %325, 0
  store ptr %326, ptr %24, align 8
  %327 = extractvalue { ptr, i32 } %325, 1
  store i32 %327, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #9
  br label %356

328:                                              ; preds = %299
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %48) #9
  %329 = load i32, ptr %36, align 4, !tbaa !5
  invoke void @_Z8tensor1d8DataTypej(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %49, i32 noundef 1, i32 noundef %329)
          to label %330 unwind label %357

330:                                              ; preds = %328
  invoke void @_ZN6Tensor11alloc_sizedIL10MemoryType1EEES_10TensorDesc(ptr dead_on_unwind writable sret(%class.Tensor) align 8 %48, ptr noundef byval(%struct.TensorDesc) align 8 %49)
          to label %331 unwind label %357

331:                                              ; preds = %330
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #9
  %332 = load i32, ptr %37, align 4, !tbaa !5
  invoke void @_Z8tensor1d8DataTypej(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %51, i32 noundef 1, i32 noundef %332)
          to label %333 unwind label %361

333:                                              ; preds = %331
  invoke void @_ZN6Tensor11alloc_sizedIL10MemoryType1EEES_10TensorDesc(ptr dead_on_unwind writable sret(%class.Tensor) align 8 %50, ptr noundef byval(%struct.TensorDesc) align 8 %51)
          to label %334 unwind label %361

334:                                              ; preds = %333
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #9
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %54, ptr align 4 %18, i64 56, i1 false), !tbaa.struct !30
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull align 8 dereferenceable(32) %48) #9
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  %335 = invoke noundef i32 @_Z6resize6Tensor15ResizeParamSpecS_S_P8ArchInfo(ptr noundef %53, ptr noundef byval(%struct.ResizeParamSpec) align 8 %54, ptr noundef %55, ptr noundef %56, ptr noundef %17)
          to label %336 unwind label %365

336:                                              ; preds = %334
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #9
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #9
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #9
  store i32 %335, ptr %52, align 4, !tbaa !34
  %337 = load i32, ptr %52, align 4, !tbaa !34
  %338 = icmp ne i32 %337, 0
  br i1 %338, label %339, label %373

339:                                              ; preds = %336
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #9
  %340 = call i64 (i64, ...) @syscall(i64 noundef 186) #9
  %341 = trunc i64 %340 to i32
  store i32 %341, ptr %57, align 4, !tbaa !5
  %342 = load i32, ptr %57, align 4, !tbaa !5
  %343 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %342)
          to label %344 unwind label %369

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

347:                                              ; preds = %344
  %348 = load i32, ptr %52, align 4, !tbaa !34
  %349 = invoke ptr @ee2str(i32 noundef %348)
          to label %350 unwind label %369

350:                                              ; preds = %347
  %351 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %349)
          to label %352 unwind label %369

352:                                              ; preds = %350
  %353 = load ptr, ptr @stdout, align 8, !tbaa !9
  %354 = invoke i32 @fflush(ptr noundef %353)
          to label %355 unwind label %369

355:                                              ; preds = %352
  call void @exit(i32 noundef 1) #10
  unreachable

356:                                              ; preds = %324, %320
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #9
  br label %519

357:                                              ; preds = %330, %328
  %358 = landingpad { ptr, i32 }
          cleanup
  %359 = extractvalue { ptr, i32 } %358, 0
  store ptr %359, ptr %24, align 8
  %360 = extractvalue { ptr, i32 } %358, 1
  store i32 %360, ptr %25, align 4
  br label %518

361:                                              ; preds = %333, %331
  %362 = landingpad { ptr, i32 }
          cleanup
  %363 = extractvalue { ptr, i32 } %362, 0
  store ptr %363, ptr %24, align 8
  %364 = extractvalue { ptr, i32 } %362, 1
  store i32 %364, ptr %25, align 4
  br label %517

365:                                              ; preds = %334
  %366 = landingpad { ptr, i32 }
          cleanup
  %367 = extractvalue { ptr, i32 } %366, 0
  store ptr %367, ptr %24, align 8
  %368 = extractvalue { ptr, i32 } %366, 1
  store i32 %368, ptr %25, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #9
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #9
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #9
  br label %395

369:                                              ; preds = %352, %350, %347, %344, %339
  %370 = landingpad { ptr, i32 }
          cleanup
  %371 = extractvalue { ptr, i32 } %370, 0
  store ptr %371, ptr %24, align 8
  %372 = extractvalue { ptr, i32 } %370, 1
  store i32 %372, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #9
  br label %395

373:                                              ; preds = %336
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #9
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %60, ptr align 4 %18, i64 56, i1 false), !tbaa.struct !30
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef nonnull align 8 dereferenceable(32) %50) #9
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  %374 = invoke noundef i32 @_Z6resize6Tensor15ResizeParamSpecS_S_P8ArchInfo(ptr noundef %59, ptr noundef byval(%struct.ResizeParamSpec) align 8 %60, ptr noundef %61, ptr noundef %62, ptr noundef @_ZL18UT_SERIAL_ARCHINFO)
          to label %375 unwind label %396

375:                                              ; preds = %373
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #9
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #9
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #9
  store i32 %374, ptr %58, align 4, !tbaa !34
  %376 = load i32, ptr %58, align 4, !tbaa !34
  %377 = icmp ne i32 %376, 0
  br i1 %377, label %378, label %404

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

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

386:                                              ; preds = %383
  %387 = load i32, ptr %58, align 4, !tbaa !34
  %388 = invoke ptr @ee2str(i32 noundef %387)
          to label %389 unwind label %400

389:                                              ; preds = %386
  %390 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %388)
          to label %391 unwind label %400

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

394:                                              ; preds = %391
  call void @exit(i32 noundef 1) #10
  unreachable

395:                                              ; preds = %369, %365
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #9
  br label %516

396:                                              ; preds = %373
  %397 = landingpad { ptr, i32 }
          cleanup
  %398 = extractvalue { ptr, i32 } %397, 0
  store ptr %398, ptr %24, align 8
  %399 = extractvalue { ptr, i32 } %397, 1
  store i32 %399, ptr %25, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #9
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #9
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #9
  br label %419

400:                                              ; preds = %391, %389, %386, %383, %378
  %401 = landingpad { ptr, i32 }
          cleanup
  %402 = extractvalue { ptr, i32 } %401, 0
  store ptr %402, ptr %24, align 8
  %403 = extractvalue { ptr, i32 } %401, 1
  store i32 %403, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #9
  br label %419

404:                                              ; preds = %375
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #9
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  %405 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %64, i32 noundef 1)
          to label %406 unwind label %420

406:                                              ; preds = %404
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  %407 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %65, i32 noundef 1)
          to label %408 unwind label %424

408:                                              ; preds = %406
  %409 = invoke noundef i32 @_ZN6Tensor6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %410 unwind label %424

410:                                              ; preds = %408
  %411 = load i32, ptr %6, align 4, !tbaa !11
  invoke void @_Z10ut_check_vPvS_j8DataTypef(ptr noundef %405, ptr noundef %407, i32 noundef %409, i32 noundef %411, float noundef 0x3FA99999A0000000)
          to label %412 unwind label %424

412:                                              ; preds = %410
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #9
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #9
  %413 = invoke noundef double @_Z10ut_time_msv()
          to label %414 unwind label %429

414:                                              ; preds = %412
  store double %413, ptr %66, align 8, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #9
  store i32 0, ptr %67, align 4, !tbaa !5
  br label %415

415:                                              ; preds = %464, %414
  %416 = load i32, ptr %67, align 4, !tbaa !5
  %417 = icmp slt i32 %416, 6
  br i1 %417, label %433, label %418

418:                                              ; preds = %415
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #9
  br label %468

419:                                              ; preds = %400, %396
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #9
  br label %516

420:                                              ; preds = %404
  %421 = landingpad { ptr, i32 }
          cleanup
  %422 = extractvalue { ptr, i32 } %421, 0
  store ptr %422, ptr %24, align 8
  %423 = extractvalue { ptr, i32 } %421, 1
  store i32 %423, ptr %25, align 4
  br label %428

424:                                              ; preds = %410, %408, %406
  %425 = landingpad { ptr, i32 }
          cleanup
  %426 = extractvalue { ptr, i32 } %425, 0
  store ptr %426, ptr %24, align 8
  %427 = extractvalue { ptr, i32 } %425, 1
  store i32 %427, ptr %25, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #9
  br label %428

428:                                              ; preds = %424, %420
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #9
  br label %516

429:                                              ; preds = %412
  %430 = landingpad { ptr, i32 }
          cleanup
  %431 = extractvalue { ptr, i32 } %430, 0
  store ptr %431, ptr %24, align 8
  %432 = extractvalue { ptr, i32 } %430, 1
  store i32 %432, ptr %25, align 4
  br label %515

433:                                              ; preds = %415
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #9
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %70, ptr align 4 %18, i64 56, i1 false), !tbaa.struct !30
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef nonnull align 8 dereferenceable(32) %48) #9
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  %434 = invoke noundef i32 @_Z6resize6Tensor15ResizeParamSpecS_S_P8ArchInfo(ptr noundef %69, ptr noundef byval(%struct.ResizeParamSpec) align 8 %70, ptr noundef %71, ptr noundef %72, ptr noundef %17)
          to label %435 unwind label %455

435:                                              ; preds = %433
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #9
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #9
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #9
  store i32 %434, ptr %68, align 4, !tbaa !34
  %436 = load i32, ptr %68, align 4, !tbaa !34
  %437 = icmp ne i32 %436, 0
  br i1 %437, label %438, label %463

438:                                              ; preds = %435
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #9
  %439 = call i64 (i64, ...) @syscall(i64 noundef 186) #9
  %440 = trunc i64 %439 to i32
  store i32 %440, ptr %73, align 4, !tbaa !5
  %441 = load i32, ptr %73, align 4, !tbaa !5
  %442 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %441)
          to label %443 unwind label %459

443:                                              ; preds = %438
  %444 = load ptr, ptr @stdout, align 8, !tbaa !9
  %445 = invoke i32 @fflush(ptr noundef %444)
          to label %446 unwind label %459

446:                                              ; preds = %443
  %447 = load i32, ptr %68, align 4, !tbaa !34
  %448 = invoke ptr @ee2str(i32 noundef %447)
          to label %449 unwind label %459

449:                                              ; preds = %446
  %450 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %448)
          to label %451 unwind label %459

451:                                              ; preds = %449
  %452 = load ptr, ptr @stdout, align 8, !tbaa !9
  %453 = invoke i32 @fflush(ptr noundef %452)
          to label %454 unwind label %459

454:                                              ; preds = %451
  call void @exit(i32 noundef 1) #10
  unreachable

455:                                              ; preds = %433
  %456 = landingpad { ptr, i32 }
          cleanup
  %457 = extractvalue { ptr, i32 } %456, 0
  store ptr %457, ptr %24, align 8
  %458 = extractvalue { ptr, i32 } %456, 1
  store i32 %458, ptr %25, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #9
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #9
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #9
  br label %467

459:                                              ; preds = %451, %449, %446, %443, %438
  %460 = landingpad { ptr, i32 }
          cleanup
  %461 = extractvalue { ptr, i32 } %460, 0
  store ptr %461, ptr %24, align 8
  %462 = extractvalue { ptr, i32 } %460, 1
  store i32 %462, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #9
  br label %467

463:                                              ; preds = %435
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #9
  br label %464

464:                                              ; preds = %463
  %465 = load i32, ptr %67, align 4, !tbaa !5
  %466 = add nsw i32 %465, 1
  store i32 %466, ptr %67, align 4, !tbaa !5
  br label %415, !llvm.loop !38

467:                                              ; preds = %459, %455
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #9
  br label %515

468:                                              ; preds = %418
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #9
  %469 = invoke noundef double @_Z10ut_time_msv()
          to label %470 unwind label %506

470:                                              ; preds = %468
  store double %469, ptr %74, align 8, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #9
  %471 = load double, ptr %74, align 8, !tbaa !36
  %472 = load double, ptr %66, align 8, !tbaa !36
  %473 = fsub double %471, %472
  %474 = fdiv double %473, 6.000000e+00
  store double %474, ptr %75, align 8, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 150, ptr %76) #9
  call void @llvm.lifetime.start.p0(i64 120, ptr %77) #9
  %475 = getelementptr inbounds [120 x i8], ptr %77, i64 0, i64 0
  %476 = load i32, ptr %8, align 4, !tbaa !5
  %477 = load i32, ptr %9, align 4, !tbaa !5
  %478 = load i32, ptr %10, align 4, !tbaa !5
  %479 = load i32, ptr %11, align 4, !tbaa !5
  %480 = load i32, ptr %12, align 4, !tbaa !5
  %481 = load i32, ptr %13, align 4, !tbaa !5
  %482 = load i32, ptr %14, align 4, !tbaa !5
  %483 = load i32, ptr %15, align 4, !tbaa !5
  %484 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %475, ptr noundef @.str.3, i32 noundef %476, i32 noundef %477, i32 noundef %478, i32 noundef %479, i32 noundef %480, i32 noundef %481, i32 noundef %482, i32 noundef %483) #9
  %485 = getelementptr inbounds [150 x i8], ptr %76, i64 0, i64 0
  %486 = getelementptr inbounds [120 x i8], ptr %77, i64 0, i64 0
  %487 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %485, ptr noundef @.str.4, ptr noundef @.str.5, ptr noundef %486) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #9
  %488 = load i32, ptr %12, align 4, !tbaa !5
  %489 = uitofp i32 %488 to double
  %490 = fmul double 1.500000e+01, %489
  %491 = load i32, ptr %13, align 4, !tbaa !5
  %492 = uitofp i32 %491 to double
  %493 = fmul double %490, %492
  %494 = load i32, ptr %14, align 4, !tbaa !5
  %495 = uitofp i32 %494 to double
  %496 = fmul double %493, %495
  %497 = load i32, ptr %15, align 4, !tbaa !5
  %498 = uitofp i32 %497 to double
  %499 = fmul double %496, %498
  store double %499, ptr %78, align 8, !tbaa !36
  %500 = load i32, ptr %6, align 4, !tbaa !11
  %501 = getelementptr inbounds [150 x i8], ptr %76, i64 0, i64 0
  %502 = load double, ptr %78, align 8, !tbaa !36
  %503 = load double, ptr %75, align 8, !tbaa !36
  invoke void @_Z6ut_log8DataTypePcdd(i32 noundef %500, ptr noundef %501, double noundef %502, double noundef %503)
          to label %504 unwind label %510

504:                                              ; preds = %470
  %505 = load ptr, ptr %20, align 8, !tbaa !9
  call void @free(ptr noundef %505) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #9
  call void @llvm.lifetime.end.p0(i64 120, ptr %77) #9
  call void @llvm.lifetime.end.p0(i64 150, ptr %76) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #9
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #9
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 92, ptr %31) #9
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #9
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 92, ptr %19) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %18) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #9
  ret i32 0

506:                                              ; preds = %468
  %507 = landingpad { ptr, i32 }
          cleanup
  %508 = extractvalue { ptr, i32 } %507, 0
  store ptr %508, ptr %24, align 8
  %509 = extractvalue { ptr, i32 } %507, 1
  store i32 %509, ptr %25, align 4
  br label %514

510:                                              ; preds = %470
  %511 = landingpad { ptr, i32 }
          cleanup
  %512 = extractvalue { ptr, i32 } %511, 0
  store ptr %512, ptr %24, align 8
  %513 = extractvalue { ptr, i32 } %511, 1
  store i32 %513, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #9
  call void @llvm.lifetime.end.p0(i64 120, ptr %77) #9
  call void @llvm.lifetime.end.p0(i64 150, ptr %76) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #9
  br label %514

514:                                              ; preds = %510, %506
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #9
  br label %515

515:                                              ; preds = %514, %467, %429
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #9
  br label %516

516:                                              ; preds = %515, %428, %419, %395
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #9
  br label %517

517:                                              ; preds = %516, %361
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #9
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #9
  br label %518

518:                                              ; preds = %517, %357
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #9
  br label %519

519:                                              ; preds = %518, %356, %319
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  br label %520

520:                                              ; preds = %519, %285
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #9
  br label %521

521:                                              ; preds = %520, %257, %253
  call void @llvm.lifetime.end.p0(i64 92, ptr %31) #9
  br label %522

522:                                              ; preds = %521, %252
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  br label %523

523:                                              ; preds = %522, %214
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #9
  br label %524

524:                                              ; preds = %523, %210
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 92, ptr %19) #9
  call void @llvm.lifetime.end.p0(i64 56, ptr %18) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #9
  br label %525

525:                                              ; preds = %524
  %526 = load ptr, ptr %24, align 8
  %527 = load i32, ptr %25, align 4
  %528 = insertvalue { ptr, i32 } poison, ptr %526, 0
  %529 = insertvalue { ptr, i32 } %528, i32 %527, 1
  resume { ptr, i32 } %529
}

; 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 @_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: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef, i32 noundef, i32 noundef) #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Tensor11alloc_sizedIL10MemoryType1EEES_10TensorDesc(ptr dead_on_unwind noalias writable sret(%class.Tensor) align 8, ptr noundef byval(%struct.TensorDesc) align 8) #0 align 2

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

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

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

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

declare i32 @__gxx_personality_v0(...)

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef byval(%struct.TensorDesc) align 8) #7

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

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

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

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

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

; 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

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

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

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

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

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

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

; 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: nounwind
declare i32 @sprintf(ptr noundef, ptr noundef, ...) #2

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

; Function Attrs: nounwind
declare void @free(ptr noundef) #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 = { 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 #8 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #9 = { nounwind }
attributes #10 = { noreturn nounwind }
attributes #11 = { 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 = !{!"_ZTS8ArchInfo", !15, i64 0, !10, i64 8}
!15 = !{!"_ZTS4Arch", !7, i64 0}
!16 = !{!17, !18, i64 32}
!17 = !{!"_ZTS15ResizeParamSpec", !7, i64 0, !7, i64 8, !6, i64 24, !6, i64 28, !18, i64 32, !19, i64 36, !20, i64 40, !21, i64 44, !6, i64 48, !6, i64 52}
!18 = !{!"_ZTS10ResizeMode", !7, i64 0}
!19 = !{!"_ZTS19CoordinateTransMode", !7, i64 0}
!20 = !{!"_ZTS9RoundMode", !7, i64 0}
!21 = !{!"float", !7, i64 0}
!22 = !{!17, !19, i64 36}
!23 = !{!17, !6, i64 24}
!24 = !{!17, !6, i64 28}
!25 = !{!21, !21, i64 0}
!26 = !{i64 0, i64 4, !11, i64 4, i64 4, !27, i64 8, i64 4, !5, i64 12, i64 80, !29}
!27 = !{!28, !28, i64 0}
!28 = !{!"_ZTS10DataFormat", !7, i64 0}
!29 = !{!7, !7, i64 0}
!30 = !{i64 0, i64 8, !29, i64 8, i64 16, !29, i64 24, i64 4, !5, i64 28, i64 4, !5, i64 32, i64 4, !31, i64 36, i64 4, !32, i64 40, i64 4, !33, i64 44, i64 4, !25, i64 48, i64 4, !5, i64 52, i64 4, !5}
!31 = !{!18, !18, i64 0}
!32 = !{!19, !19, i64 0}
!33 = !{!20, !20, i64 0}
!34 = !{!35, !35, i64 0}
!35 = !{!"_ZTS2EE", !7, i64 0}
!36 = !{!37, !37, i64 0}
!37 = !{!"double", !7, i64 0}
!38 = distinct !{!38, !39}
!39 = !{!"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.TensorDesc = type { i32, i32, i32, [20 x i32] }
%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" }
%struct.ResizeParamSpec = type { [2 x i32], [4 x float], i32, i32, i32, i32, i32, float, i32, i32 }

@.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
@.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 [29 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_Z10resizeTestiPPc8DataType(i32 noundef %0, ptr nocapture noundef readonly %1, i32 noundef %2) local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %4 = alloca %struct.ArchInfo, align 8
  %.sroa.17 = alloca { i32, float, i32, i32 }, align 8
  %5 = alloca %struct.TensorDesc, align 8
  %6 = alloca %class.Tensor, align 8
  %7 = alloca %class.Tensor, align 8
  %8 = alloca %class.Tensor, align 8
  %9 = alloca %struct.ResizeParamSpec, align 8
  %10 = alloca %struct.TensorDesc, align 8
  %11 = alloca %class.Tensor, align 8
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca %class.Tensor, align 8
  %15 = alloca %struct.ResizeParamSpec, align 8
  %16 = alloca %class.Tensor, align 8
  %17 = alloca %class.Tensor, align 8
  %18 = alloca %struct.ResizeParamSpec, align 8
  %19 = alloca %class.Tensor, align 8
  %20 = alloca %class.Tensor, align 8
  %21 = alloca %struct.TensorDesc, align 8
  %22 = alloca %class.Tensor, align 8
  %23 = alloca %struct.TensorDesc, align 8
  %24 = alloca %class.Tensor, align 8
  %25 = alloca %struct.ResizeParamSpec, align 8
  %26 = alloca %class.Tensor, align 8
  %27 = alloca %class.Tensor, align 8
  %28 = alloca %class.Tensor, align 8
  %29 = alloca %struct.ResizeParamSpec, align 8
  %30 = alloca %class.Tensor, align 8
  %31 = alloca %class.Tensor, align 8
  %32 = alloca %class.Tensor, align 8
  %33 = alloca %class.Tensor, align 8
  %34 = alloca %class.Tensor, align 8
  %35 = alloca %struct.ResizeParamSpec, align 8
  %36 = alloca %class.Tensor, align 8
  %37 = alloca %class.Tensor, align 8
  %38 = alloca [150 x i8], align 16
  %39 = alloca [120 x i8], align 16
  %40 = icmp eq i32 %0, 9
  br i1 %40, label %50, label %41

41:                                               ; preds = %3
  %42 = tail call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %43 = trunc i64 %42 to i32
  %44 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %43)
  %45 = load ptr, ptr @stdout, align 8, !tbaa !5
  %46 = tail call i32 @fflush(ptr noundef %45)
  %47 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.1)
  %48 = load ptr, ptr @stdout, align 8, !tbaa !5
  %49 = tail call i32 @fflush(ptr noundef %48)
  tail call void @exit(i32 noundef 1) #12
  unreachable

50:                                               ; preds = %3
  %51 = getelementptr inbounds i8, ptr %1, i64 8
  %52 = load ptr, ptr %51, align 8, !tbaa !5
  %53 = tail call i32 @atoi(ptr nocapture noundef %52) #13
  %54 = getelementptr inbounds i8, ptr %1, i64 16
  %55 = load ptr, ptr %54, align 8, !tbaa !5
  %56 = tail call i32 @atoi(ptr nocapture noundef %55) #13
  %57 = getelementptr inbounds i8, ptr %1, i64 24
  %58 = load ptr, ptr %57, align 8, !tbaa !5
  %59 = tail call i32 @atoi(ptr nocapture noundef %58) #13
  %60 = getelementptr inbounds i8, ptr %1, i64 32
  %61 = load ptr, ptr %60, align 8, !tbaa !5
  %62 = tail call i32 @atoi(ptr nocapture noundef %61) #13
  %63 = getelementptr inbounds i8, ptr %1, i64 40
  %64 = load ptr, ptr %63, align 8, !tbaa !5
  %65 = tail call i32 @atoi(ptr nocapture noundef %64) #13
  %66 = getelementptr inbounds i8, ptr %1, i64 48
  %67 = load ptr, ptr %66, align 8, !tbaa !5
  %68 = tail call i32 @atoi(ptr nocapture noundef %67) #13
  %69 = getelementptr inbounds i8, ptr %1, i64 56
  %70 = load ptr, ptr %69, align 8, !tbaa !5
  %71 = tail call i32 @atoi(ptr nocapture noundef %70) #13
  %72 = getelementptr inbounds i8, ptr %1, i64 64
  %73 = load ptr, ptr %72, align 8, !tbaa !5
  %74 = tail call i32 @atoi(ptr nocapture noundef %73) #13
  %75 = icmp eq i32 %53, 1
  %76 = icmp eq i32 %65, 1
  %or.cond = select i1 %75, i1 %76, i1 false
  br i1 %or.cond, label %86, label %77

77:                                               ; preds = %50
  %78 = tail call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %79 = trunc i64 %78 to i32
  %80 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %79)
  %81 = load ptr, ptr @stdout, align 8, !tbaa !5
  %82 = tail call i32 @fflush(ptr noundef %81)
  %83 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.1)
  %84 = load ptr, ptr @stdout, align 8, !tbaa !5
  %85 = tail call i32 @fflush(ptr noundef %84)
  tail call void @exit(i32 noundef 1) #12
  unreachable

86:                                               ; preds = %50
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #11
  store i32 1, ptr %4, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %.sroa.17)
  %87 = uitofp i32 %71 to float
  %88 = uitofp i32 %74 to float
  %89 = uitofp i32 %59 to float
  %90 = fdiv float %87, %89
  %91 = uitofp i32 %62 to float
  %92 = fdiv float %88, %91
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %5) #11
  call void @_Z9tensor4df8DataType10DataFormatjjjj(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %5, i32 noundef %2, i32 noundef 0, i32 noundef 1, i32 noundef %56, i32 noundef %59, i32 noundef %62)
  %93 = mul i32 %59, %56
  %94 = mul i32 %93, %62
  %95 = call noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef %94, i32 noundef %2, i32 noundef 0)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #11
  call void @_ZN6Tensor11alloc_sizedIL10MemoryType1EEES_10TensorDesc(ptr dead_on_unwind nonnull writable sret(%class.Tensor) align 8 %6, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %5)
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %6) #11
  %96 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %7, i32 noundef 1)
          to label %97 unwind label %115

97:                                               ; preds = %86
  %98 = invoke noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef nonnull byval(%struct.TensorDesc) align 8 %5)
          to label %99 unwind label %115

99:                                               ; preds = %97
  %100 = zext i32 %98 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %96, ptr noundef %95, i64 noundef %100)
          to label %101 unwind label %115

101:                                              ; preds = %99
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #11
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %8, i32 noundef 1)
          to label %102 unwind label %117

102:                                              ; preds = %101
  %.sroa.9.0..sroa_idx = getelementptr inbounds i8, ptr %9, i64 8
  store float %87, ptr %.sroa.9.0..sroa_idx, align 8
  %.sroa.10.0..sroa_idx = getelementptr inbounds i8, ptr %9, i64 12
  store float %88, ptr %.sroa.10.0..sroa_idx, align 4
  %.sroa.11.0..sroa_idx = getelementptr inbounds i8, ptr %9, i64 16
  store float %90, ptr %.sroa.11.0..sroa_idx, align 8
  %.sroa.12.0..sroa_idx = getelementptr inbounds i8, ptr %9, i64 20
  store float %92, ptr %.sroa.12.0..sroa_idx, align 4, !tbaa !12
  %.sroa.13.0..sroa_idx = getelementptr inbounds i8, ptr %9, i64 24
  store <4 x i32> <i32 0, i32 4, i32 0, i32 3>, ptr %.sroa.13.0..sroa_idx, align 8, !tbaa !12
  %103 = invoke noundef i32 @_Z24resize_infer_output_sizeP6Tensor15ResizeParamSpecS0_P8ArchInfo(ptr noundef nonnull %6, ptr noundef nonnull byval(%struct.ResizeParamSpec) align 8 %9, ptr noundef nonnull %8, ptr noundef nonnull %4)
          to label %104 unwind label %119

104:                                              ; preds = %102
  %.not = icmp eq i32 %103, 0
  br i1 %.not, label %121, label %105

105:                                              ; preds = %104
  %106 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %107 = trunc i64 %106 to i32
  %108 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %107)
  %109 = load ptr, ptr @stdout, align 8, !tbaa !5
  %110 = call i32 @fflush(ptr noundef %109)
  %111 = call ptr @ee2str(i32 noundef %103)
  %112 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %111)
  %113 = load ptr, ptr @stdout, align 8, !tbaa !5
  %114 = call i32 @fflush(ptr noundef %113)
  call void @exit(i32 noundef 1) #12
  unreachable

115:                                              ; preds = %99, %97, %86
  %116 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #11
  br label %283

117:                                              ; preds = %101
  %118 = landingpad { ptr, i32 }
          cleanup
  br label %282

119:                                              ; preds = %102
  %120 = landingpad { ptr, i32 }
          cleanup
  br label %281

121:                                              ; preds = %104
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %10) #11
  invoke void @_ZN6Tensor8get_descEv(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %10, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %122 unwind label %136

122:                                              ; preds = %121
  %123 = call noundef i32 @_Z17tensorNumElements10TensorDesc(ptr noundef nonnull byval(%struct.TensorDesc) align 8 %10)
  %124 = mul i32 %71, %68
  %125 = mul i32 %124, %74
  %126 = icmp eq i32 %123, %125
  br i1 %126, label %138, label %127

127:                                              ; preds = %122
  %128 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %129 = trunc i64 %128 to i32
  %130 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %129)
  %131 = load ptr, ptr @stdout, align 8, !tbaa !5
  %132 = call i32 @fflush(ptr noundef %131)
  %133 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.1)
  %134 = load ptr, ptr @stdout, align 8, !tbaa !5
  %135 = call i32 @fflush(ptr noundef %134)
  call void @exit(i32 noundef 1) #12
  unreachable

136:                                              ; preds = %138, %121
  %137 = landingpad { ptr, i32 }
          cleanup
  br label %280

138:                                              ; preds = %122
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %139 unwind label %136

139:                                              ; preds = %138
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #11
  invoke void @_ZN6Tensor11alloc_sizedIL10MemoryType1EEES_10TensorDesc(ptr dead_on_unwind nonnull writable sret(%class.Tensor) align 8 %11, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %10)
          to label %140 unwind label %153

140:                                              ; preds = %139
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #11
  store i32 0, ptr %12, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #11
  store i32 0, ptr %13, align 4, !tbaa !13
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %6) #11
  %.sroa.9.0..sroa_idx34 = getelementptr inbounds i8, ptr %15, i64 8
  store float %87, ptr %.sroa.9.0..sroa_idx34, align 8
  %.sroa.10.0..sroa_idx44 = getelementptr inbounds i8, ptr %15, i64 12
  store float %88, ptr %.sroa.10.0..sroa_idx44, align 4
  %.sroa.11.0..sroa_idx54 = getelementptr inbounds i8, ptr %15, i64 16
  store float %90, ptr %.sroa.11.0..sroa_idx54, align 8
  %.sroa.12.0..sroa_idx64 = getelementptr inbounds i8, ptr %15, i64 20
  store float %92, ptr %.sroa.12.0..sroa_idx64, align 4, !tbaa !12
  %.sroa.13.0..sroa_idx74 = getelementptr inbounds i8, ptr %15, i64 24
  store <4 x i32> <i32 0, i32 4, i32 0, i32 3>, ptr %.sroa.13.0..sroa_idx74, align 8, !tbaa !12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(32) %8) #11
  %141 = invoke noundef i32 @_Z30resize_infer_forward_tmp_bytes6Tensor15ResizeParamSpecS_PjP8ArchInfo(ptr noundef nonnull %14, ptr noundef nonnull byval(%struct.ResizeParamSpec) align 8 %15, ptr noundef nonnull %16, ptr noundef nonnull %12, ptr noundef nonnull %4)
          to label %142 unwind label %155

142:                                              ; preds = %140
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #11
  %.not187 = icmp eq i32 %141, 0
  br i1 %.not187, label %157, label %143

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

153:                                              ; preds = %139
  %154 = landingpad { ptr, i32 }
          cleanup
  br label %279

155:                                              ; preds = %140
  %156 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #11
  br label %278

157:                                              ; preds = %142
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(32) %6) #11
  %.sroa.9.0..sroa_idx36 = getelementptr inbounds i8, ptr %18, i64 8
  store float %87, ptr %.sroa.9.0..sroa_idx36, align 8
  %.sroa.10.0..sroa_idx46 = getelementptr inbounds i8, ptr %18, i64 12
  store float %88, ptr %.sroa.10.0..sroa_idx46, align 4
  %.sroa.11.0..sroa_idx56 = getelementptr inbounds i8, ptr %18, i64 16
  store float %90, ptr %.sroa.11.0..sroa_idx56, align 8
  %.sroa.12.0..sroa_idx66 = getelementptr inbounds i8, ptr %18, i64 20
  store float %92, ptr %.sroa.12.0..sroa_idx66, align 4, !tbaa !12
  %.sroa.13.0..sroa_idx76 = getelementptr inbounds i8, ptr %18, i64 24
  store <4 x i32> <i32 0, i32 4, i32 0, i32 3>, ptr %.sroa.13.0..sroa_idx76, align 8, !tbaa !12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(32) %11) #11
  %158 = invoke noundef i32 @_Z30resize_infer_forward_tmp_bytes6Tensor15ResizeParamSpecS_PjP8ArchInfo(ptr noundef nonnull %17, ptr noundef nonnull byval(%struct.ResizeParamSpec) align 8 %18, ptr noundef nonnull %19, ptr noundef nonnull %13, ptr noundef nonnull @_ZL18UT_SERIAL_ARCHINFO)
          to label %159 unwind label %170

159:                                              ; preds = %157
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #11
  %.not188 = icmp eq i32 %158, 0
  br i1 %.not188, label %172, label %160

160:                                              ; preds = %159
  %161 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %162 = trunc i64 %161 to i32
  %163 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %162)
  %164 = load ptr, ptr @stdout, align 8, !tbaa !5
  %165 = call i32 @fflush(ptr noundef %164)
  %166 = call ptr @ee2str(i32 noundef %158)
  %167 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %166)
  %168 = load ptr, ptr @stdout, align 8, !tbaa !5
  %169 = call i32 @fflush(ptr noundef %168)
  call void @exit(i32 noundef 1) #12
  unreachable

170:                                              ; preds = %157
  %171 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #11
  br label %278

172:                                              ; preds = %159
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #11
  %173 = load i32, ptr %12, align 4, !tbaa !13
  invoke void @_Z8tensor1d8DataTypej(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %21, i32 noundef 1, i32 noundef %173)
          to label %174 unwind label %191

174:                                              ; preds = %172
  invoke void @_ZN6Tensor11alloc_sizedIL10MemoryType1EEES_10TensorDesc(ptr dead_on_unwind nonnull writable sret(%class.Tensor) align 8 %20, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %21)
          to label %175 unwind label %191

175:                                              ; preds = %174
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #11
  %176 = load i32, ptr %13, align 4, !tbaa !13
  invoke void @_Z8tensor1d8DataTypej(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %23, i32 noundef 1, i32 noundef %176)
          to label %177 unwind label %193

177:                                              ; preds = %175
  invoke void @_ZN6Tensor11alloc_sizedIL10MemoryType1EEES_10TensorDesc(ptr dead_on_unwind nonnull writable sret(%class.Tensor) align 8 %22, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %23)
          to label %178 unwind label %193

178:                                              ; preds = %177
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull align 8 dereferenceable(32) %6) #11
  %.sroa.9.0..sroa_idx38 = getelementptr inbounds i8, ptr %25, i64 8
  store float %87, ptr %.sroa.9.0..sroa_idx38, align 8
  %.sroa.10.0..sroa_idx48 = getelementptr inbounds i8, ptr %25, i64 12
  store float %88, ptr %.sroa.10.0..sroa_idx48, align 4
  %.sroa.11.0..sroa_idx58 = getelementptr inbounds i8, ptr %25, i64 16
  store float %90, ptr %.sroa.11.0..sroa_idx58, align 8
  %.sroa.12.0..sroa_idx68 = getelementptr inbounds i8, ptr %25, i64 20
  store float %92, ptr %.sroa.12.0..sroa_idx68, align 4, !tbaa !12
  %.sroa.13.0..sroa_idx78 = getelementptr inbounds i8, ptr %25, i64 24
  store <4 x i32> <i32 0, i32 4, i32 0, i32 3>, ptr %.sroa.13.0..sroa_idx78, align 8, !tbaa !12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(32) %20) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull align 8 dereferenceable(32) %8) #11
  %179 = invoke noundef i32 @_Z6resize6Tensor15ResizeParamSpecS_S_P8ArchInfo(ptr noundef nonnull %24, ptr noundef nonnull byval(%struct.ResizeParamSpec) align 8 %25, ptr noundef nonnull %26, ptr noundef nonnull %27, ptr noundef nonnull %4)
          to label %180 unwind label %195

180:                                              ; preds = %178
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #11
  %.not189 = icmp eq i32 %179, 0
  br i1 %.not189, label %197, label %181

181:                                              ; preds = %180
  %182 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %183 = trunc i64 %182 to i32
  %184 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %183)
  %185 = load ptr, ptr @stdout, align 8, !tbaa !5
  %186 = call i32 @fflush(ptr noundef %185)
  %187 = call ptr @ee2str(i32 noundef %179)
  %188 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %187)
  %189 = load ptr, ptr @stdout, align 8, !tbaa !5
  %190 = call i32 @fflush(ptr noundef %189)
  call void @exit(i32 noundef 1) #12
  unreachable

191:                                              ; preds = %174, %172
  %192 = landingpad { ptr, i32 }
          cleanup
  br label %277

193:                                              ; preds = %177, %175
  %194 = landingpad { ptr, i32 }
          cleanup
  br label %276

195:                                              ; preds = %178
  %196 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #11
  br label %275

197:                                              ; preds = %180
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull align 8 dereferenceable(32) %6) #11
  %.sroa.9.0..sroa_idx40 = getelementptr inbounds i8, ptr %29, i64 8
  store float %87, ptr %.sroa.9.0..sroa_idx40, align 8
  %.sroa.10.0..sroa_idx50 = getelementptr inbounds i8, ptr %29, i64 12
  store float %88, ptr %.sroa.10.0..sroa_idx50, align 4
  %.sroa.11.0..sroa_idx60 = getelementptr inbounds i8, ptr %29, i64 16
  store float %90, ptr %.sroa.11.0..sroa_idx60, align 8
  %.sroa.12.0..sroa_idx70 = getelementptr inbounds i8, ptr %29, i64 20
  store float %92, ptr %.sroa.12.0..sroa_idx70, align 4, !tbaa !12
  %.sroa.13.0..sroa_idx80 = getelementptr inbounds i8, ptr %29, i64 24
  store <4 x i32> <i32 0, i32 4, i32 0, i32 3>, ptr %.sroa.13.0..sroa_idx80, align 8, !tbaa !12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 8 dereferenceable(32) %22) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull align 8 dereferenceable(32) %11) #11
  %198 = invoke noundef i32 @_Z6resize6Tensor15ResizeParamSpecS_S_P8ArchInfo(ptr noundef nonnull %28, ptr noundef nonnull byval(%struct.ResizeParamSpec) align 8 %29, ptr noundef nonnull %30, ptr noundef nonnull %31, ptr noundef nonnull @_ZL18UT_SERIAL_ARCHINFO)
          to label %199 unwind label %210

199:                                              ; preds = %197
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #11
  %.not190 = icmp eq i32 %198, 0
  br i1 %.not190, label %212, label %200

200:                                              ; preds = %199
  %201 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %202 = trunc i64 %201 to i32
  %203 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %202)
  %204 = load ptr, ptr @stdout, align 8, !tbaa !5
  %205 = call i32 @fflush(ptr noundef %204)
  %206 = call ptr @ee2str(i32 noundef %198)
  %207 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %206)
  %208 = load ptr, ptr @stdout, align 8, !tbaa !5
  %209 = call i32 @fflush(ptr noundef %208)
  call void @exit(i32 noundef 1) #12
  unreachable

210:                                              ; preds = %197
  %211 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #11
  br label %275

212:                                              ; preds = %199
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull align 8 dereferenceable(32) %8) #11
  %213 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %32, i32 noundef 1)
          to label %214 unwind label %239

214:                                              ; preds = %212
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(32) %11) #11
  %215 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %33, i32 noundef 1)
          to label %216 unwind label %241

216:                                              ; preds = %214
  %217 = invoke noundef i32 @_ZN6Tensor6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %218 unwind label %241

218:                                              ; preds = %216
  invoke void @_Z10ut_check_vPvS_j8DataTypef(ptr noundef %213, ptr noundef %215, i32 noundef %217, i32 noundef %2, float noundef 0x3FA99999A0000000)
          to label %219 unwind label %241

219:                                              ; preds = %218
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #11
  %220 = invoke noundef double @_Z10ut_time_msv()
          to label %.preheader unwind label %244

.preheader:                                       ; preds = %219
  %.sroa.9.0..sroa_idx42 = getelementptr inbounds i8, ptr %35, i64 8
  %.sroa.10.0..sroa_idx52 = getelementptr inbounds i8, ptr %35, i64 12
  %.sroa.11.0..sroa_idx62 = getelementptr inbounds i8, ptr %35, i64 16
  %.sroa.12.0..sroa_idx72 = getelementptr inbounds i8, ptr %35, i64 20
  %.sroa.13.0..sroa_idx82 = getelementptr inbounds i8, ptr %35, i64 24
  %.sroa.17.0..sroa_idx118 = getelementptr inbounds i8, ptr %35, i64 40
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(32) %6) #11
  store float %87, ptr %.sroa.9.0..sroa_idx42, align 8
  store float %88, ptr %.sroa.10.0..sroa_idx52, align 4
  store float %90, ptr %.sroa.11.0..sroa_idx62, align 8
  store float %92, ptr %.sroa.12.0..sroa_idx72, align 4, !tbaa !12
  store <4 x i32> <i32 0, i32 4, i32 0, i32 3>, ptr %.sroa.13.0..sroa_idx82, align 8, !tbaa !12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.17.0..sroa_idx118, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.17, i64 16, i1 false), !tbaa.struct !15
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull align 8 dereferenceable(32) %20) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(32) %8) #11
  %221 = invoke noundef i32 @_Z6resize6Tensor15ResizeParamSpecS_S_P8ArchInfo(ptr noundef nonnull %34, ptr noundef nonnull byval(%struct.ResizeParamSpec) align 8 %35, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %4)
          to label %246 unwind label %257

222:                                              ; preds = %246
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(32) %6) #11
  store float %87, ptr %.sroa.9.0..sroa_idx42, align 8
  store float %88, ptr %.sroa.10.0..sroa_idx52, align 4
  store float %90, ptr %.sroa.11.0..sroa_idx62, align 8
  store float %92, ptr %.sroa.12.0..sroa_idx72, align 4, !tbaa !12
  store <4 x i32> <i32 0, i32 4, i32 0, i32 3>, ptr %.sroa.13.0..sroa_idx82, align 8, !tbaa !12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.17.0..sroa_idx118, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.17, i64 16, i1 false), !tbaa.struct !15
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull align 8 dereferenceable(32) %20) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(32) %8) #11
  %223 = invoke noundef i32 @_Z6resize6Tensor15ResizeParamSpecS_S_P8ArchInfo(ptr noundef nonnull %34, ptr noundef nonnull byval(%struct.ResizeParamSpec) align 8 %35, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %4)
          to label %224 unwind label %257

224:                                              ; preds = %222
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #11
  %.not205.1 = icmp eq i32 %223, 0
  br i1 %.not205.1, label %225, label %247

225:                                              ; preds = %224
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(32) %6) #11
  store float %87, ptr %.sroa.9.0..sroa_idx42, align 8
  store float %88, ptr %.sroa.10.0..sroa_idx52, align 4
  store float %90, ptr %.sroa.11.0..sroa_idx62, align 8
  store float %92, ptr %.sroa.12.0..sroa_idx72, align 4, !tbaa !12
  store <4 x i32> <i32 0, i32 4, i32 0, i32 3>, ptr %.sroa.13.0..sroa_idx82, align 8, !tbaa !12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.17.0..sroa_idx118, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.17, i64 16, i1 false), !tbaa.struct !15
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull align 8 dereferenceable(32) %20) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(32) %8) #11
  %226 = invoke noundef i32 @_Z6resize6Tensor15ResizeParamSpecS_S_P8ArchInfo(ptr noundef nonnull %34, ptr noundef nonnull byval(%struct.ResizeParamSpec) align 8 %35, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %4)
          to label %227 unwind label %257

227:                                              ; preds = %225
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #11
  %.not205.2 = icmp eq i32 %226, 0
  br i1 %.not205.2, label %228, label %247

228:                                              ; preds = %227
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(32) %6) #11
  store float %87, ptr %.sroa.9.0..sroa_idx42, align 8
  store float %88, ptr %.sroa.10.0..sroa_idx52, align 4
  store float %90, ptr %.sroa.11.0..sroa_idx62, align 8
  store float %92, ptr %.sroa.12.0..sroa_idx72, align 4, !tbaa !12
  store <4 x i32> <i32 0, i32 4, i32 0, i32 3>, ptr %.sroa.13.0..sroa_idx82, align 8, !tbaa !12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.17.0..sroa_idx118, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.17, i64 16, i1 false), !tbaa.struct !15
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull align 8 dereferenceable(32) %20) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(32) %8) #11
  %229 = invoke noundef i32 @_Z6resize6Tensor15ResizeParamSpecS_S_P8ArchInfo(ptr noundef nonnull %34, ptr noundef nonnull byval(%struct.ResizeParamSpec) align 8 %35, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %4)
          to label %230 unwind label %257

230:                                              ; preds = %228
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #11
  %.not205.3 = icmp eq i32 %229, 0
  br i1 %.not205.3, label %231, label %247

231:                                              ; preds = %230
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(32) %6) #11
  store float %87, ptr %.sroa.9.0..sroa_idx42, align 8
  store float %88, ptr %.sroa.10.0..sroa_idx52, align 4
  store float %90, ptr %.sroa.11.0..sroa_idx62, align 8
  store float %92, ptr %.sroa.12.0..sroa_idx72, align 4, !tbaa !12
  store <4 x i32> <i32 0, i32 4, i32 0, i32 3>, ptr %.sroa.13.0..sroa_idx82, align 8, !tbaa !12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.17.0..sroa_idx118, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.17, i64 16, i1 false), !tbaa.struct !15
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull align 8 dereferenceable(32) %20) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(32) %8) #11
  %232 = invoke noundef i32 @_Z6resize6Tensor15ResizeParamSpecS_S_P8ArchInfo(ptr noundef nonnull %34, ptr noundef nonnull byval(%struct.ResizeParamSpec) align 8 %35, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %4)
          to label %233 unwind label %257

233:                                              ; preds = %231
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #11
  %.not205.4 = icmp eq i32 %232, 0
  br i1 %.not205.4, label %234, label %247

234:                                              ; preds = %233
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(32) %6) #11
  store float %87, ptr %.sroa.9.0..sroa_idx42, align 8
  store float %88, ptr %.sroa.10.0..sroa_idx52, align 4
  store float %90, ptr %.sroa.11.0..sroa_idx62, align 8
  store float %92, ptr %.sroa.12.0..sroa_idx72, align 4, !tbaa !12
  store <4 x i32> <i32 0, i32 4, i32 0, i32 3>, ptr %.sroa.13.0..sroa_idx82, align 8, !tbaa !12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.17.0..sroa_idx118, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.17, i64 16, i1 false), !tbaa.struct !15
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull align 8 dereferenceable(32) %20) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(32) %8) #11
  %235 = invoke noundef i32 @_Z6resize6Tensor15ResizeParamSpecS_S_P8ArchInfo(ptr noundef nonnull %34, ptr noundef nonnull byval(%struct.ResizeParamSpec) align 8 %35, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef nonnull %4)
          to label %236 unwind label %257

236:                                              ; preds = %234
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #11
  %.not205.5 = icmp eq i32 %235, 0
  br i1 %.not205.5, label %237, label %247

237:                                              ; preds = %236
  %238 = invoke noundef double @_Z10ut_time_msv()
          to label %259 unwind label %271

239:                                              ; preds = %212
  %240 = landingpad { ptr, i32 }
          cleanup
  br label %243

241:                                              ; preds = %218, %216, %214
  %242 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #11
  br label %243

243:                                              ; preds = %241, %239
  %.pn = phi { ptr, i32 } [ %242, %241 ], [ %240, %239 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #11
  br label %275

244:                                              ; preds = %219
  %245 = landingpad { ptr, i32 }
          cleanup
  br label %275

246:                                              ; preds = %.preheader
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #11
  %.not205 = icmp eq i32 %221, 0
  br i1 %.not205, label %222, label %247

247:                                              ; preds = %236, %233, %230, %227, %224, %246
  %.lcssa207 = phi i32 [ %221, %246 ], [ %223, %224 ], [ %226, %227 ], [ %229, %230 ], [ %232, %233 ], [ %235, %236 ]
  %248 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %249 = trunc i64 %248 to i32
  %250 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %249)
  %251 = load ptr, ptr @stdout, align 8, !tbaa !5
  %252 = call i32 @fflush(ptr noundef %251)
  %253 = call ptr @ee2str(i32 noundef %.lcssa207)
  %254 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %253)
  %255 = load ptr, ptr @stdout, align 8, !tbaa !5
  %256 = call i32 @fflush(ptr noundef %255)
  call void @exit(i32 noundef 1) #12
  unreachable

257:                                              ; preds = %234, %231, %228, %225, %222, %.preheader
  %258 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #11
  br label %275

259:                                              ; preds = %237
  %260 = fsub double %238, %220
  %261 = fdiv double %260, 6.000000e+00
  call void @llvm.lifetime.start.p0(i64 150, ptr nonnull %38) #11
  call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %39) #11
  %262 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %39, ptr noundef nonnull dereferenceable(1) @.str.3, i32 noundef 1, i32 noundef %56, i32 noundef %59, i32 noundef %62, i32 noundef 1, i32 noundef %68, i32 noundef %71, i32 noundef %74) #11
  %263 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %38, ptr noundef nonnull dereferenceable(1) @.str.4, ptr noundef nonnull @.str.5, ptr noundef nonnull %39) #11
  %264 = uitofp i32 %68 to double
  %265 = fmul double %264, 1.500000e+01
  %266 = uitofp i32 %71 to double
  %267 = fmul double %265, %266
  %268 = uitofp i32 %74 to double
  %269 = fmul double %267, %268
  invoke void @_Z6ut_log8DataTypePcdd(i32 noundef %2, ptr noundef nonnull %38, double noundef %269, double noundef %261)
          to label %270 unwind label %273

270:                                              ; preds = %259
  call void @free(ptr noundef %95) #11
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %39) #11
  call void @llvm.lifetime.end.p0(i64 150, ptr nonnull %38) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #11
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %10) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #11
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %5) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %.sroa.17)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #11
  ret i32 0

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

273:                                              ; preds = %259
  %274 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %39) #11
  call void @llvm.lifetime.end.p0(i64 150, ptr nonnull %38) #11
  br label %275

275:                                              ; preds = %244, %257, %273, %271, %243, %210, %195
  %.pn194.pn = phi { ptr, i32 } [ %.pn, %243 ], [ %211, %210 ], [ %196, %195 ], [ %258, %257 ], [ %245, %244 ], [ %274, %273 ], [ %272, %271 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #11
  br label %276

276:                                              ; preds = %275, %193
  %.pn194.pn.pn = phi { ptr, i32 } [ %.pn194.pn, %275 ], [ %194, %193 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #11
  br label %277

277:                                              ; preds = %276, %191
  %.pn194.pn.pn.pn = phi { ptr, i32 } [ %.pn194.pn.pn, %276 ], [ %192, %191 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #11
  br label %278

278:                                              ; preds = %277, %170, %155
  %.pn194.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn194.pn.pn.pn, %277 ], [ %171, %170 ], [ %156, %155 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #11
  br label %279

279:                                              ; preds = %278, %153
  %.pn194.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn194.pn.pn.pn.pn, %278 ], [ %154, %153 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #11
  br label %280

280:                                              ; preds = %279, %136
  %.pn194.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn194.pn.pn.pn.pn.pn, %279 ], [ %137, %136 ]
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %10) #11
  br label %281

281:                                              ; preds = %280, %119
  %.pn194.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn194.pn.pn.pn.pn.pn.pn, %280 ], [ %120, %119 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #11
  br label %282

282:                                              ; preds = %281, %117
  %.pn194.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn194.pn.pn.pn.pn.pn.pn.pn, %281 ], [ %118, %117 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #11
  br label %283

283:                                              ; preds = %282, %115
  %.pn194.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn194.pn.pn.pn.pn.pn.pn.pn.pn, %282 ], [ %116, %115 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #11
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %5) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %.sroa.17)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #11
  resume { ptr, i32 } %.pn194.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 @_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: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Tensor11alloc_sizedIL10MemoryType1EEES_10TensorDesc(ptr dead_on_unwind noalias writable sret(%class.Tensor) align 8, ptr noundef byval(%struct.TensorDesc) align 8) local_unnamed_addr #0 align 2

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

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

declare noundef i32 @_Z24resize_infer_output_sizeP6Tensor15ResizeParamSpecS0_P8ArchInfo(ptr noundef, ptr noundef byval(%struct.ResizeParamSpec) align 8, ptr 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 nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1

; 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

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

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

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

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

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

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

; 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: nofree nounwind
declare noundef i32 @sprintf(ptr noalias nocapture noundef writeonly, ptr nocapture noundef readonly, ...) local_unnamed_addr #3

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

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

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 = { 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 #8 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
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 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 #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 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !11, i64 0}
!10 = !{!"_ZTS8ArchInfo", !11, i64 0, !6, i64 8}
!11 = !{!"_ZTS4Arch", !7, i64 0}
!12 = !{!7, !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"int", !7, i64 0}
!15 = !{i64 0, i64 4, !16, i64 4, i64 4, !18, i64 8, i64 4, !13, i64 12, i64 4, !13}
!16 = !{!17, !17, i64 0}
!17 = !{!"_ZTS9RoundMode", !7, i64 0}
!18 = !{!19, !19, i64 0}
!19 = !{!"float", !7, i64 0}


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