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

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

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

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

90:                                               ; preds = %3
  %91 = load i32, ptr %4, align 4, !tbaa !5
  %92 = icmp eq i32 %91, 19
  br i1 %92, label %109, label %93

93:                                               ; preds = %90
  %94 = load i32, ptr %4, align 4, !tbaa !5
  %95 = icmp eq i32 %94, 20
  br i1 %95, label %109, label %96

96:                                               ; preds = %93
  %97 = load i32, ptr %4, align 4, !tbaa !5
  %98 = icmp eq i32 %97, 21
  br i1 %98, label %109, label %99

99:                                               ; preds = %96
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #10
  %100 = call i64 (i64, ...) @syscall(i64 noundef 186) #10
  %101 = trunc i64 %100 to i32
  store i32 %101, ptr %7, align 4, !tbaa !5
  %102 = load i32, ptr %7, align 4, !tbaa !5
  %103 = call i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %102)
  %104 = load ptr, ptr @stdout, align 8, !tbaa !9
  %105 = call i32 @fflush(ptr noundef %104)
  %106 = call i32 (ptr, ...) @printf(ptr noundef @.str.1)
  %107 = load ptr, ptr @stdout, align 8, !tbaa !9
  %108 = call i32 @fflush(ptr noundef %107)
  call void @exit(i32 noundef 1) #11
  unreachable

109:                                              ; preds = %96, %93, %90, %3
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #10
  %110 = load ptr, ptr %5, align 8, !tbaa !9
  %111 = getelementptr inbounds ptr, ptr %110, i64 1
  %112 = load ptr, ptr %111, align 8, !tbaa !9
  %113 = call i32 @atoi(ptr noundef %112) #12
  store i32 %113, ptr %8, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #10
  %114 = load ptr, ptr %5, align 8, !tbaa !9
  %115 = getelementptr inbounds ptr, ptr %114, i64 2
  %116 = load ptr, ptr %115, align 8, !tbaa !9
  %117 = call i32 @atoi(ptr noundef %116) #12
  store i32 %117, ptr %9, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #10
  %118 = load ptr, ptr %5, align 8, !tbaa !9
  %119 = getelementptr inbounds ptr, ptr %118, i64 3
  %120 = load ptr, ptr %119, align 8, !tbaa !9
  %121 = call i32 @atoi(ptr noundef %120) #12
  store i32 %121, ptr %10, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #10
  %122 = load ptr, ptr %5, align 8, !tbaa !9
  %123 = getelementptr inbounds ptr, ptr %122, i64 4
  %124 = load ptr, ptr %123, align 8, !tbaa !9
  %125 = call i32 @atoi(ptr noundef %124) #12
  store i32 %125, ptr %11, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #10
  %126 = load ptr, ptr %5, align 8, !tbaa !9
  %127 = getelementptr inbounds ptr, ptr %126, i64 5
  %128 = load ptr, ptr %127, align 8, !tbaa !9
  %129 = call i32 @atoi(ptr noundef %128) #12
  store i32 %129, ptr %12, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #10
  %130 = load ptr, ptr %5, align 8, !tbaa !9
  %131 = getelementptr inbounds ptr, ptr %130, i64 6
  %132 = load ptr, ptr %131, align 8, !tbaa !9
  %133 = call i32 @atoi(ptr noundef %132) #12
  store i32 %133, ptr %13, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #10
  %134 = load ptr, ptr %5, align 8, !tbaa !9
  %135 = getelementptr inbounds ptr, ptr %134, i64 7
  %136 = load ptr, ptr %135, align 8, !tbaa !9
  %137 = call i32 @atoi(ptr noundef %136) #12
  store i32 %137, ptr %14, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #10
  %138 = load ptr, ptr %5, align 8, !tbaa !9
  %139 = getelementptr inbounds ptr, ptr %138, i64 8
  %140 = load ptr, ptr %139, align 8, !tbaa !9
  %141 = call i32 @atoi(ptr noundef %140) #12
  store i32 %141, ptr %15, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #10
  %142 = load ptr, ptr %5, align 8, !tbaa !9
  %143 = getelementptr inbounds ptr, ptr %142, i64 9
  %144 = load ptr, ptr %143, align 8, !tbaa !9
  %145 = call double @atof(ptr noundef %144) #12
  %146 = fptrunc double %145 to float
  store float %146, ptr %16, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #10
  %147 = load ptr, ptr %5, align 8, !tbaa !9
  %148 = getelementptr inbounds ptr, ptr %147, i64 10
  %149 = load ptr, ptr %148, align 8, !tbaa !9
  %150 = call double @atof(ptr noundef %149) #12
  %151 = fptrunc double %150 to float
  store float %151, ptr %17, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #10
  %152 = load ptr, ptr %5, align 8, !tbaa !9
  %153 = getelementptr inbounds ptr, ptr %152, i64 11
  %154 = load ptr, ptr %153, align 8, !tbaa !9
  %155 = call i32 @atoi(ptr noundef %154) #12
  store i32 %155, ptr %18, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #10
  %156 = load ptr, ptr %5, align 8, !tbaa !9
  %157 = getelementptr inbounds ptr, ptr %156, i64 12
  %158 = load ptr, ptr %157, align 8, !tbaa !9
  %159 = call i32 @atoi(ptr noundef %158) #12
  store i32 %159, ptr %19, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #10
  %160 = load ptr, ptr %5, align 8, !tbaa !9
  %161 = getelementptr inbounds ptr, ptr %160, i64 13
  %162 = load ptr, ptr %161, align 8, !tbaa !9
  %163 = call double @atof(ptr noundef %162) #12
  %164 = fptrunc double %163 to float
  store float %164, ptr %20, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #10
  %165 = load ptr, ptr %5, align 8, !tbaa !9
  %166 = getelementptr inbounds ptr, ptr %165, i64 14
  %167 = load ptr, ptr %166, align 8, !tbaa !9
  %168 = call i32 @atoi(ptr noundef %167) #12
  store i32 %168, ptr %21, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #10
  %169 = load ptr, ptr %5, align 8, !tbaa !9
  %170 = getelementptr inbounds ptr, ptr %169, i64 15
  %171 = load ptr, ptr %170, align 8, !tbaa !9
  %172 = call i32 @atoi(ptr noundef %171) #12
  store i32 %172, ptr %22, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #10
  %173 = load ptr, ptr %5, align 8, !tbaa !9
  %174 = getelementptr inbounds ptr, ptr %173, i64 16
  %175 = load ptr, ptr %174, align 8, !tbaa !9
  %176 = call i32 @atoi(ptr noundef %175) #12
  store i32 %176, ptr %23, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #10
  %177 = load ptr, ptr %5, align 8, !tbaa !9
  %178 = getelementptr inbounds ptr, ptr %177, i64 17
  %179 = load ptr, ptr %178, align 8, !tbaa !9
  %180 = call double @atof(ptr noundef %179) #12
  %181 = fptrunc double %180 to float
  store float %181, ptr %24, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #10
  store float 0.000000e+00, ptr %25, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #10
  store float 0.000000e+00, ptr %26, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #10
  store float 0.000000e+00, ptr %27, align 4, !tbaa !13
  %182 = load i32, ptr %4, align 4, !tbaa !5
  %183 = icmp eq i32 %182, 19
  br i1 %183, label %187, label %184

184:                                              ; preds = %109
  %185 = load i32, ptr %4, align 4, !tbaa !5
  %186 = icmp eq i32 %185, 21
  br i1 %186, label %187, label %207

187:                                              ; preds = %184, %109
  %188 = load ptr, ptr %5, align 8, !tbaa !9
  %189 = getelementptr inbounds ptr, ptr %188, i64 18
  %190 = load ptr, ptr %189, align 8, !tbaa !9
  %191 = call double @atof(ptr noundef %190) #12
  %192 = fptrunc double %191 to float
  store float %192, ptr %25, align 4, !tbaa !13
  %193 = load i32, ptr %4, align 4, !tbaa !5
  %194 = icmp eq i32 %193, 21
  br i1 %194, label %195, label %206

195:                                              ; preds = %187
  %196 = load ptr, ptr %5, align 8, !tbaa !9
  %197 = getelementptr inbounds ptr, ptr %196, i64 19
  %198 = load ptr, ptr %197, align 8, !tbaa !9
  %199 = call double @atof(ptr noundef %198) #12
  %200 = fptrunc double %199 to float
  store float %200, ptr %26, align 4, !tbaa !13
  %201 = load ptr, ptr %5, align 8, !tbaa !9
  %202 = getelementptr inbounds ptr, ptr %201, i64 20
  %203 = load ptr, ptr %202, align 8, !tbaa !9
  %204 = call double @atof(ptr noundef %203) #12
  %205 = fptrunc double %204 to float
  store float %205, ptr %27, align 4, !tbaa !13
  br label %206

206:                                              ; preds = %195, %187
  br label %207

207:                                              ; preds = %206, %184
  %208 = load i32, ptr %4, align 4, !tbaa !5
  %209 = icmp eq i32 %208, 20
  br i1 %209, label %210, label %221

210:                                              ; preds = %207
  %211 = load ptr, ptr %5, align 8, !tbaa !9
  %212 = getelementptr inbounds ptr, ptr %211, i64 18
  %213 = load ptr, ptr %212, align 8, !tbaa !9
  %214 = call double @atof(ptr noundef %213) #12
  %215 = fptrunc double %214 to float
  store float %215, ptr %26, align 4, !tbaa !13
  %216 = load ptr, ptr %5, align 8, !tbaa !9
  %217 = getelementptr inbounds ptr, ptr %216, i64 19
  %218 = load ptr, ptr %217, align 8, !tbaa !9
  %219 = call double @atof(ptr noundef %218) #12
  %220 = fptrunc double %219 to float
  store float %220, ptr %27, align 4, !tbaa !13
  br label %221

221:                                              ; preds = %210, %207
  %222 = load i32, ptr %8, align 4, !tbaa !5
  %223 = icmp eq i32 %222, 1
  br i1 %223, label %224, label %233

224:                                              ; preds = %221
  %225 = load i32, ptr %12, align 4, !tbaa !5
  %226 = icmp eq i32 %225, 1
  br i1 %226, label %227, label %233

227:                                              ; preds = %224
  %228 = load i32, ptr %21, align 4, !tbaa !5
  %229 = icmp eq i32 %228, 1
  br i1 %229, label %230, label %233

230:                                              ; preds = %227
  %231 = load i32, ptr %22, align 4, !tbaa !5
  %232 = icmp eq i32 %231, 2
  br i1 %232, label %243, label %233

233:                                              ; preds = %230, %227, %224, %221
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #10
  %234 = call i64 (i64, ...) @syscall(i64 noundef 186) #10
  %235 = trunc i64 %234 to i32
  store i32 %235, ptr %28, align 4, !tbaa !5
  %236 = load i32, ptr %28, align 4, !tbaa !5
  %237 = call i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %236)
  %238 = load ptr, ptr @stdout, align 8, !tbaa !9
  %239 = call i32 @fflush(ptr noundef %238)
  %240 = call i32 (ptr, ...) @printf(ptr noundef @.str.1)
  %241 = load ptr, ptr @stdout, align 8, !tbaa !9
  %242 = call i32 @fflush(ptr noundef %241)
  call void @exit(i32 noundef 1) #11
  unreachable

243:                                              ; preds = %230
  call void @llvm.lifetime.start.p0(i64 68, ptr %29) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #10
  store i32 1, ptr %30, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #10
  store i32 1, ptr %31, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #10
  store i32 1, ptr %32, align 4, !tbaa !5
  %244 = load float, ptr %16, align 4, !tbaa !13
  %245 = getelementptr inbounds %struct.PriorBoxParamSpec, ptr %29, i32 0, i32 0
  %246 = getelementptr inbounds [2 x float], ptr %245, i64 0, i64 0
  store float %244, ptr %246, align 4, !tbaa !13
  %247 = load float, ptr %17, align 4, !tbaa !13
  %248 = getelementptr inbounds %struct.PriorBoxParamSpec, ptr %29, i32 0, i32 1
  %249 = getelementptr inbounds [2 x float], ptr %248, i64 0, i64 0
  store float %247, ptr %249, align 4, !tbaa !13
  %250 = load float, ptr %24, align 4, !tbaa !13
  %251 = getelementptr inbounds %struct.PriorBoxParamSpec, ptr %29, i32 0, i32 2
  %252 = getelementptr inbounds [2 x float], ptr %251, i64 0, i64 0
  store float %250, ptr %252, align 4, !tbaa !13
  %253 = load float, ptr %26, align 4, !tbaa !13
  %254 = getelementptr inbounds %struct.PriorBoxParamSpec, ptr %29, i32 0, i32 0
  %255 = getelementptr inbounds [2 x float], ptr %254, i64 0, i64 1
  store float %253, ptr %255, align 4, !tbaa !13
  %256 = load float, ptr %27, align 4, !tbaa !13
  %257 = getelementptr inbounds %struct.PriorBoxParamSpec, ptr %29, i32 0, i32 1
  %258 = getelementptr inbounds [2 x float], ptr %257, i64 0, i64 1
  store float %256, ptr %258, align 4, !tbaa !13
  %259 = load float, ptr %25, align 4, !tbaa !13
  %260 = getelementptr inbounds %struct.PriorBoxParamSpec, ptr %29, i32 0, i32 2
  %261 = getelementptr inbounds [2 x float], ptr %260, i64 0, i64 1
  store float %259, ptr %261, align 4, !tbaa !13
  %262 = load i32, ptr %4, align 4, !tbaa !5
  %263 = icmp eq i32 %262, 19
  br i1 %263, label %267, label %264

264:                                              ; preds = %243
  %265 = load i32, ptr %4, align 4, !tbaa !5
  %266 = icmp eq i32 %265, 21
  br i1 %266, label %267, label %278

267:                                              ; preds = %264, %243
  %268 = load i32, ptr %32, align 4, !tbaa !5
  %269 = add nsw i32 %268, 1
  store i32 %269, ptr %32, align 4, !tbaa !5
  %270 = load i32, ptr %4, align 4, !tbaa !5
  %271 = icmp eq i32 %270, 21
  br i1 %271, label %272, label %277

272:                                              ; preds = %267
  %273 = load i32, ptr %30, align 4, !tbaa !5
  %274 = add nsw i32 %273, 1
  store i32 %274, ptr %30, align 4, !tbaa !5
  %275 = load i32, ptr %31, align 4, !tbaa !5
  %276 = add nsw i32 %275, 1
  store i32 %276, ptr %31, align 4, !tbaa !5
  br label %277

277:                                              ; preds = %272, %267
  br label %278

278:                                              ; preds = %277, %264
  %279 = load i32, ptr %4, align 4, !tbaa !5
  %280 = icmp eq i32 %279, 20
  br i1 %280, label %281, label %286

281:                                              ; preds = %278
  %282 = load i32, ptr %30, align 4, !tbaa !5
  %283 = add nsw i32 %282, 1
  store i32 %283, ptr %30, align 4, !tbaa !5
  %284 = load i32, ptr %31, align 4, !tbaa !5
  %285 = add nsw i32 %284, 1
  store i32 %285, ptr %31, align 4, !tbaa !5
  br label %286

286:                                              ; preds = %281, %278
  %287 = load i32, ptr %18, align 4, !tbaa !5
  %288 = getelementptr inbounds %struct.PriorBoxParamSpec, ptr %29, i32 0, i32 3
  store i32 %287, ptr %288, align 4, !tbaa !15
  %289 = load i32, ptr %19, align 4, !tbaa !5
  %290 = getelementptr inbounds %struct.PriorBoxParamSpec, ptr %29, i32 0, i32 4
  store i32 %289, ptr %290, align 4, !tbaa !17
  %291 = load i32, ptr %14, align 4, !tbaa !5
  %292 = getelementptr inbounds %struct.PriorBoxParamSpec, ptr %29, i32 0, i32 6
  store i32 %291, ptr %292, align 4, !tbaa !18
  %293 = load i32, ptr %15, align 4, !tbaa !5
  %294 = getelementptr inbounds %struct.PriorBoxParamSpec, ptr %29, i32 0, i32 7
  store i32 %293, ptr %294, align 4, !tbaa !19
  %295 = load float, ptr %20, align 4, !tbaa !13
  %296 = getelementptr inbounds %struct.PriorBoxParamSpec, ptr %29, i32 0, i32 8
  store float %295, ptr %296, align 4, !tbaa !20
  %297 = load float, ptr %20, align 4, !tbaa !13
  %298 = getelementptr inbounds %struct.PriorBoxParamSpec, ptr %29, i32 0, i32 9
  store float %297, ptr %298, align 4, !tbaa !21
  %299 = getelementptr inbounds %struct.PriorBoxParamSpec, ptr %29, i32 0, i32 5
  %300 = getelementptr inbounds [4 x float], ptr %299, i64 0, i64 0
  store float 0x3FB99999A0000000, ptr %300, align 4, !tbaa !13
  %301 = getelementptr inbounds %struct.PriorBoxParamSpec, ptr %29, i32 0, i32 5
  %302 = getelementptr inbounds [4 x float], ptr %301, i64 0, i64 1
  store float 0x3FB99999A0000000, ptr %302, align 4, !tbaa !13
  %303 = getelementptr inbounds %struct.PriorBoxParamSpec, ptr %29, i32 0, i32 5
  %304 = getelementptr inbounds [4 x float], ptr %303, i64 0, i64 2
  store float 0x3FC99999A0000000, ptr %304, align 4, !tbaa !13
  %305 = getelementptr inbounds %struct.PriorBoxParamSpec, ptr %29, i32 0, i32 5
  %306 = getelementptr inbounds [4 x float], ptr %305, i64 0, i64 3
  store float 0x3FC99999A0000000, ptr %306, align 4, !tbaa !13
  %307 = getelementptr inbounds %struct.PriorBoxParamSpec, ptr %29, i32 0, i32 10
  store float 5.000000e-01, ptr %307, align 4, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 24, ptr %33) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #10
  call void @_ZNSaI6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #10
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2EmRKS1_(ptr noundef nonnull align 8 dereferenceable(24) %33, i64 noundef 2, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %308 unwind label %362

308:                                              ; preds = %286
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %37) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %38) #10
  call void @_ZNSaIP6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #10
  invoke void @_ZNSt6vectorIP6TensorSaIS1_EEC2EmRKS2_(ptr noundef nonnull align 8 dereferenceable(24) %37, i64 noundef 2, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %309 unwind label %366

309:                                              ; preds = %308
  call void @_ZNSt15__new_allocatorIP6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %39) #10
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %39, i32 noundef 1)
          to label %310 unwind label %370

310:                                              ; preds = %309
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #10
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %40, i32 noundef 1)
          to label %311 unwind label %374

311:                                              ; preds = %310
  call void @llvm.lifetime.start.p0(i64 92, ptr %41) #10
  %312 = load i32, ptr %6, align 4, !tbaa !11
  %313 = load i32, ptr %8, align 4, !tbaa !5
  %314 = load i32, ptr %9, align 4, !tbaa !5
  %315 = load i32, ptr %10, align 4, !tbaa !5
  %316 = load i32, ptr %11, align 4, !tbaa !5
  invoke void @_Z9tensor4df8DataType10DataFormatjjjj(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %41, i32 noundef %312, i32 noundef 2, i32 noundef %313, i32 noundef %314, i32 noundef %315, i32 noundef %316)
          to label %317 unwind label %378

317:                                              ; preds = %311
  call void @llvm.lifetime.start.p0(i64 92, ptr %42) #10
  %318 = load i32, ptr %6, align 4, !tbaa !11
  %319 = load i32, ptr %12, align 4, !tbaa !5
  %320 = load i32, ptr %13, align 4, !tbaa !5
  %321 = load i32, ptr %14, align 4, !tbaa !5
  %322 = load i32, ptr %15, align 4, !tbaa !5
  invoke void @_Z9tensor4df8DataType10DataFormatjjjj(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %42, i32 noundef %318, i32 noundef 2, i32 noundef %319, i32 noundef %320, i32 noundef %321, i32 noundef %322)
          to label %323 unwind label %382

323:                                              ; preds = %317
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %43, ptr align 4 %41, i64 92, i1 false), !tbaa.struct !23
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef byval(%struct.TensorDesc) align 8 %43)
          to label %324 unwind label %382

324:                                              ; preds = %323
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %44, ptr align 4 %42, i64 92, i1 false), !tbaa.struct !23
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef byval(%struct.TensorDesc) align 8 %44)
          to label %325 unwind label %382

325:                                              ; preds = %324
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %46, ptr align 4 %41, i64 92, i1 false), !tbaa.struct !23
  %326 = invoke noundef i32 @_Z17tensorNumElements10TensorDesc(ptr noundef byval(%struct.TensorDesc) align 8 %46)
          to label %327 unwind label %386

327:                                              ; preds = %325
  store i32 %326, ptr %45, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %48, ptr align 4 %42, i64 92, i1 false), !tbaa.struct !23
  %328 = invoke noundef i32 @_Z17tensorNumElements10TensorDesc(ptr noundef byval(%struct.TensorDesc) align 8 %48)
          to label %329 unwind label %390

329:                                              ; preds = %327
  store i32 %328, ptr %47, align 4, !tbaa !5
  %330 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %33, i64 noundef 0) #10
  %331 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN6TensoraSERKS_(ptr noundef nonnull align 8 dereferenceable(32) %330, ptr noundef nonnull align 8 dereferenceable(32) %39) #10
  %332 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %33, i64 noundef 1) #10
  %333 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN6TensoraSERKS_(ptr noundef nonnull align 8 dereferenceable(32) %332, ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  %334 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %33, i64 noundef 0) #10
  %335 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6TensorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %37, i64 noundef 0) #10
  store ptr %334, ptr %335, align 8, !tbaa !9
  %336 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %33, i64 noundef 1) #10
  %337 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6TensorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %37, i64 noundef 1) #10
  store ptr %336, ptr %337, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr %49) #10
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %49, i32 noundef 1)
          to label %338 unwind label %394

338:                                              ; preds = %329
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #10
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %50, i32 noundef 1)
          to label %339 unwind label %398

339:                                              ; preds = %338
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #10
  invoke void @_ZNSt6vectorIP6TensorSaIS1_EEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %52, ptr noundef nonnull align 8 dereferenceable(24) %37)
          to label %340 unwind label %402

340:                                              ; preds = %339
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %53, ptr align 4 %29, i64 68, i1 false), !tbaa.struct !27
  %341 = invoke noundef i32 @_Z26priorbox_infer_output_sizeSt6vectorIP6TensorSaIS1_EE17PriorBoxParamSpecS1_P8ArchInfo(ptr noundef %52, ptr noundef byval(%struct.PriorBoxParamSpec) align 8 %53, ptr noundef %49, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %342 unwind label %406

342:                                              ; preds = %340
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %52) #10
  store i32 %341, ptr %51, align 4, !tbaa !28
  %343 = load i32, ptr %51, align 4, !tbaa !28
  %344 = icmp ne i32 %343, 0
  br i1 %344, label %345, label %414

345:                                              ; preds = %342
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #10
  %346 = call i64 (i64, ...) @syscall(i64 noundef 186) #10
  %347 = trunc i64 %346 to i32
  store i32 %347, ptr %54, align 4, !tbaa !5
  %348 = load i32, ptr %54, align 4, !tbaa !5
  %349 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %348)
          to label %350 unwind label %410

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

353:                                              ; preds = %350
  %354 = load i32, ptr %51, align 4, !tbaa !28
  %355 = invoke ptr @ee2str(i32 noundef %354)
          to label %356 unwind label %410

356:                                              ; preds = %353
  %357 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %355)
          to label %358 unwind label %410

358:                                              ; preds = %356
  %359 = load ptr, ptr @stdout, align 8, !tbaa !9
  %360 = invoke i32 @fflush(ptr noundef %359)
          to label %361 unwind label %410

361:                                              ; preds = %358
  call void @exit(i32 noundef 1) #11
  unreachable

362:                                              ; preds = %286
  %363 = landingpad { ptr, i32 }
          cleanup
  %364 = extractvalue { ptr, i32 } %363, 0
  store ptr %364, ptr %35, align 8
  %365 = extractvalue { ptr, i32 } %363, 1
  store i32 %365, ptr %36, align 4
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #10
  br label %691

366:                                              ; preds = %308
  %367 = landingpad { ptr, i32 }
          cleanup
  %368 = extractvalue { ptr, i32 } %367, 0
  store ptr %368, ptr %35, align 8
  %369 = extractvalue { ptr, i32 } %367, 1
  store i32 %369, ptr %36, align 4
  call void @_ZNSt15__new_allocatorIP6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #10
  br label %690

370:                                              ; preds = %309
  %371 = landingpad { ptr, i32 }
          cleanup
  %372 = extractvalue { ptr, i32 } %371, 0
  store ptr %372, ptr %35, align 8
  %373 = extractvalue { ptr, i32 } %371, 1
  store i32 %373, ptr %36, align 4
  br label %689

374:                                              ; preds = %310
  %375 = landingpad { ptr, i32 }
          cleanup
  %376 = extractvalue { ptr, i32 } %375, 0
  store ptr %376, ptr %35, align 8
  %377 = extractvalue { ptr, i32 } %375, 1
  store i32 %377, ptr %36, align 4
  br label %688

378:                                              ; preds = %311
  %379 = landingpad { ptr, i32 }
          cleanup
  %380 = extractvalue { ptr, i32 } %379, 0
  store ptr %380, ptr %35, align 8
  %381 = extractvalue { ptr, i32 } %379, 1
  store i32 %381, ptr %36, align 4
  br label %687

382:                                              ; preds = %324, %323, %317
  %383 = landingpad { ptr, i32 }
          cleanup
  %384 = extractvalue { ptr, i32 } %383, 0
  store ptr %384, ptr %35, align 8
  %385 = extractvalue { ptr, i32 } %383, 1
  store i32 %385, ptr %36, align 4
  br label %686

386:                                              ; preds = %325
  %387 = landingpad { ptr, i32 }
          cleanup
  %388 = extractvalue { ptr, i32 } %387, 0
  store ptr %388, ptr %35, align 8
  %389 = extractvalue { ptr, i32 } %387, 1
  store i32 %389, ptr %36, align 4
  br label %685

390:                                              ; preds = %327
  %391 = landingpad { ptr, i32 }
          cleanup
  %392 = extractvalue { ptr, i32 } %391, 0
  store ptr %392, ptr %35, align 8
  %393 = extractvalue { ptr, i32 } %391, 1
  store i32 %393, ptr %36, align 4
  br label %684

394:                                              ; preds = %329
  %395 = landingpad { ptr, i32 }
          cleanup
  %396 = extractvalue { ptr, i32 } %395, 0
  store ptr %396, ptr %35, align 8
  %397 = extractvalue { ptr, i32 } %395, 1
  store i32 %397, ptr %36, align 4
  br label %683

398:                                              ; preds = %338
  %399 = landingpad { ptr, i32 }
          cleanup
  %400 = extractvalue { ptr, i32 } %399, 0
  store ptr %400, ptr %35, align 8
  %401 = extractvalue { ptr, i32 } %399, 1
  store i32 %401, ptr %36, align 4
  br label %682

402:                                              ; preds = %339
  %403 = landingpad { ptr, i32 }
          cleanup
  %404 = extractvalue { ptr, i32 } %403, 0
  store ptr %404, ptr %35, align 8
  %405 = extractvalue { ptr, i32 } %403, 1
  store i32 %405, ptr %36, align 4
  br label %462

406:                                              ; preds = %340
  %407 = landingpad { ptr, i32 }
          cleanup
  %408 = extractvalue { ptr, i32 } %407, 0
  store ptr %408, ptr %35, align 8
  %409 = extractvalue { ptr, i32 } %407, 1
  store i32 %409, ptr %36, align 4
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %52) #10
  br label %462

410:                                              ; preds = %358, %356, %353, %350, %345
  %411 = landingpad { ptr, i32 }
          cleanup
  %412 = extractvalue { ptr, i32 } %411, 0
  store ptr %412, ptr %35, align 8
  %413 = extractvalue { ptr, i32 } %411, 1
  store i32 %413, ptr %36, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #10
  br label %462

414:                                              ; preds = %342
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #10
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %49)
          to label %415 unwind label %463

415:                                              ; preds = %414
  call void @llvm.lifetime.start.p0(i64 92, ptr %55) #10
  invoke void @_ZN6Tensor8get_descEv(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %55, ptr noundef nonnull align 8 dereferenceable(32) %49)
          to label %416 unwind label %467

416:                                              ; preds = %415
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %56, ptr align 4 %55, i64 92, i1 false), !tbaa.struct !23
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef byval(%struct.TensorDesc) align 8 %56)
          to label %417 unwind label %467

417:                                              ; preds = %416
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %50)
          to label %418 unwind label %467

418:                                              ; preds = %417
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #10
  %419 = invoke noundef i32 @_ZN6Tensor6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %49)
          to label %420 unwind label %471

420:                                              ; preds = %418
  store i32 %419, ptr %57, align 4, !tbaa !5
  %421 = load i32, ptr %45, align 4, !tbaa !5
  %422 = load i32, ptr %8, align 4, !tbaa !5
  %423 = load i32, ptr %9, align 4, !tbaa !5
  %424 = mul i32 %422, %423
  %425 = load i32, ptr %10, align 4, !tbaa !5
  %426 = mul i32 %424, %425
  %427 = load i32, ptr %11, align 4, !tbaa !5
  %428 = mul i32 %426, %427
  %429 = icmp eq i32 %421, %428
  br i1 %429, label %430, label %448

430:                                              ; preds = %420
  %431 = load i32, ptr %47, align 4, !tbaa !5
  %432 = load i32, ptr %12, align 4, !tbaa !5
  %433 = load i32, ptr %13, align 4, !tbaa !5
  %434 = mul i32 %432, %433
  %435 = load i32, ptr %14, align 4, !tbaa !5
  %436 = mul i32 %434, %435
  %437 = load i32, ptr %15, align 4, !tbaa !5
  %438 = mul i32 %436, %437
  %439 = icmp eq i32 %431, %438
  br i1 %439, label %440, label %448

440:                                              ; preds = %430
  %441 = load i32, ptr %57, align 4, !tbaa !5
  %442 = load i32, ptr %21, align 4, !tbaa !5
  %443 = load i32, ptr %22, align 4, !tbaa !5
  %444 = mul i32 %442, %443
  %445 = load i32, ptr %23, align 4, !tbaa !5
  %446 = mul i32 %444, %445
  %447 = icmp eq i32 %441, %446
  br i1 %447, label %479, label %448

448:                                              ; preds = %440, %430, %420
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #10
  %449 = call i64 (i64, ...) @syscall(i64 noundef 186) #10
  %450 = trunc i64 %449 to i32
  store i32 %450, ptr %58, align 4, !tbaa !5
  %451 = load i32, ptr %58, align 4, !tbaa !5
  %452 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %451)
          to label %453 unwind label %475

453:                                              ; preds = %448
  %454 = load ptr, ptr @stdout, align 8, !tbaa !9
  %455 = invoke i32 @fflush(ptr noundef %454)
          to label %456 unwind label %475

456:                                              ; preds = %453
  %457 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.1)
          to label %458 unwind label %475

458:                                              ; preds = %456
  %459 = load ptr, ptr @stdout, align 8, !tbaa !9
  %460 = invoke i32 @fflush(ptr noundef %459)
          to label %461 unwind label %475

461:                                              ; preds = %458
  call void @exit(i32 noundef 1) #11
  unreachable

462:                                              ; preds = %410, %406, %402
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #10
  br label %681

463:                                              ; preds = %414
  %464 = landingpad { ptr, i32 }
          cleanup
  %465 = extractvalue { ptr, i32 } %464, 0
  store ptr %465, ptr %35, align 8
  %466 = extractvalue { ptr, i32 } %464, 1
  store i32 %466, ptr %36, align 4
  br label %681

467:                                              ; preds = %417, %416, %415
  %468 = landingpad { ptr, i32 }
          cleanup
  %469 = extractvalue { ptr, i32 } %468, 0
  store ptr %469, ptr %35, align 8
  %470 = extractvalue { ptr, i32 } %468, 1
  store i32 %470, ptr %36, align 4
  br label %680

471:                                              ; preds = %418
  %472 = landingpad { ptr, i32 }
          cleanup
  %473 = extractvalue { ptr, i32 } %472, 0
  store ptr %473, ptr %35, align 8
  %474 = extractvalue { ptr, i32 } %472, 1
  store i32 %474, ptr %36, align 4
  br label %679

475:                                              ; preds = %458, %456, %453, %448
  %476 = landingpad { ptr, i32 }
          cleanup
  %477 = extractvalue { ptr, i32 } %476, 0
  store ptr %477, ptr %35, align 8
  %478 = extractvalue { ptr, i32 } %476, 1
  store i32 %478, ptr %36, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #10
  br label %679

479:                                              ; preds = %440
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #10
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %60, ptr noundef nonnull align 8 dereferenceable(24) %33)
          to label %480 unwind label %502

480:                                              ; preds = %479
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %61, ptr align 4 %29, i64 68, i1 false), !tbaa.struct !27
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull align 8 dereferenceable(32) %49) #10
  %481 = invoke noundef i32 @_Z8priorboxSt6vectorI6TensorSaIS0_EE17PriorBoxParamSpecS0_P8ArchInfo(ptr noundef %60, ptr noundef byval(%struct.PriorBoxParamSpec) align 8 %61, ptr noundef %62, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %482 unwind label %506

482:                                              ; preds = %480
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #10
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %60) #10
  store i32 %481, ptr %59, align 4, !tbaa !28
  %483 = load i32, ptr %59, align 4, !tbaa !28
  %484 = icmp ne i32 %483, 0
  br i1 %484, label %485, label %514

485:                                              ; preds = %482
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #10
  %486 = call i64 (i64, ...) @syscall(i64 noundef 186) #10
  %487 = trunc i64 %486 to i32
  store i32 %487, ptr %63, align 4, !tbaa !5
  %488 = load i32, ptr %63, align 4, !tbaa !5
  %489 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %488)
          to label %490 unwind label %510

490:                                              ; preds = %485
  %491 = load ptr, ptr @stdout, align 8, !tbaa !9
  %492 = invoke i32 @fflush(ptr noundef %491)
          to label %493 unwind label %510

493:                                              ; preds = %490
  %494 = load i32, ptr %59, align 4, !tbaa !28
  %495 = invoke ptr @ee2str(i32 noundef %494)
          to label %496 unwind label %510

496:                                              ; preds = %493
  %497 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %495)
          to label %498 unwind label %510

498:                                              ; preds = %496
  %499 = load ptr, ptr @stdout, align 8, !tbaa !9
  %500 = invoke i32 @fflush(ptr noundef %499)
          to label %501 unwind label %510

501:                                              ; preds = %498
  call void @exit(i32 noundef 1) #11
  unreachable

502:                                              ; preds = %479
  %503 = landingpad { ptr, i32 }
          cleanup
  %504 = extractvalue { ptr, i32 } %503, 0
  store ptr %504, ptr %35, align 8
  %505 = extractvalue { ptr, i32 } %503, 1
  store i32 %505, ptr %36, align 4
  br label %537

506:                                              ; preds = %480
  %507 = landingpad { ptr, i32 }
          cleanup
  %508 = extractvalue { ptr, i32 } %507, 0
  store ptr %508, ptr %35, align 8
  %509 = extractvalue { ptr, i32 } %507, 1
  store i32 %509, ptr %36, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #10
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %60) #10
  br label %537

510:                                              ; preds = %498, %496, %493, %490, %485
  %511 = landingpad { ptr, i32 }
          cleanup
  %512 = extractvalue { ptr, i32 } %511, 0
  store ptr %512, ptr %35, align 8
  %513 = extractvalue { ptr, i32 } %511, 1
  store i32 %513, ptr %36, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #10
  br label %537

514:                                              ; preds = %482
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #10
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %65, ptr noundef nonnull align 8 dereferenceable(24) %33)
          to label %515 unwind label %538

515:                                              ; preds = %514
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %66, ptr align 4 %29, i64 68, i1 false), !tbaa.struct !27
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull align 8 dereferenceable(32) %50) #10
  %516 = invoke noundef i32 @_Z8priorboxSt6vectorI6TensorSaIS0_EE17PriorBoxParamSpecS0_P8ArchInfo(ptr noundef %65, ptr noundef byval(%struct.PriorBoxParamSpec) align 8 %66, ptr noundef %67, ptr noundef @_ZL18UT_SERIAL_ARCHINFO)
          to label %517 unwind label %542

517:                                              ; preds = %515
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #10
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %65) #10
  store i32 %516, ptr %64, align 4, !tbaa !28
  %518 = load i32, ptr %64, align 4, !tbaa !28
  %519 = icmp ne i32 %518, 0
  br i1 %519, label %520, label %550

520:                                              ; preds = %517
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #10
  %521 = call i64 (i64, ...) @syscall(i64 noundef 186) #10
  %522 = trunc i64 %521 to i32
  store i32 %522, ptr %68, align 4, !tbaa !5
  %523 = load i32, ptr %68, align 4, !tbaa !5
  %524 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %523)
          to label %525 unwind label %546

525:                                              ; preds = %520
  %526 = load ptr, ptr @stdout, align 8, !tbaa !9
  %527 = invoke i32 @fflush(ptr noundef %526)
          to label %528 unwind label %546

528:                                              ; preds = %525
  %529 = load i32, ptr %64, align 4, !tbaa !28
  %530 = invoke ptr @ee2str(i32 noundef %529)
          to label %531 unwind label %546

531:                                              ; preds = %528
  %532 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %530)
          to label %533 unwind label %546

533:                                              ; preds = %531
  %534 = load ptr, ptr @stdout, align 8, !tbaa !9
  %535 = invoke i32 @fflush(ptr noundef %534)
          to label %536 unwind label %546

536:                                              ; preds = %533
  call void @exit(i32 noundef 1) #11
  unreachable

537:                                              ; preds = %510, %506, %502
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #10
  br label %679

538:                                              ; preds = %514
  %539 = landingpad { ptr, i32 }
          cleanup
  %540 = extractvalue { ptr, i32 } %539, 0
  store ptr %540, ptr %35, align 8
  %541 = extractvalue { ptr, i32 } %539, 1
  store i32 %541, ptr %36, align 4
  br label %564

542:                                              ; preds = %515
  %543 = landingpad { ptr, i32 }
          cleanup
  %544 = extractvalue { ptr, i32 } %543, 0
  store ptr %544, ptr %35, align 8
  %545 = extractvalue { ptr, i32 } %543, 1
  store i32 %545, ptr %36, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #10
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %65) #10
  br label %564

546:                                              ; preds = %533, %531, %528, %525, %520
  %547 = landingpad { ptr, i32 }
          cleanup
  %548 = extractvalue { ptr, i32 } %547, 0
  store ptr %548, ptr %35, align 8
  %549 = extractvalue { ptr, i32 } %547, 1
  store i32 %549, ptr %36, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #10
  br label %564

550:                                              ; preds = %517
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #10
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 8 dereferenceable(32) %49) #10
  %551 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %69, i32 noundef 1)
          to label %552 unwind label %565

552:                                              ; preds = %550
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 8 dereferenceable(32) %50) #10
  %553 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %70, i32 noundef 1)
          to label %554 unwind label %569

554:                                              ; preds = %552
  %555 = load i32, ptr %57, align 4, !tbaa !5
  %556 = load i32, ptr %6, align 4, !tbaa !11
  invoke void @_Z10ut_check_vPvS_j8DataTypef(ptr noundef %551, ptr noundef %553, i32 noundef %555, i32 noundef %556, float noundef 0x3FA99999A0000000)
          to label %557 unwind label %569

557:                                              ; preds = %554
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #10
  %558 = invoke noundef double @_Z10ut_time_msv()
          to label %559 unwind label %574

559:                                              ; preds = %557
  store double %558, ptr %71, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #10
  store i32 0, ptr %72, align 4, !tbaa !5
  br label %560

560:                                              ; preds = %614, %559
  %561 = load i32, ptr %72, align 4, !tbaa !5
  %562 = icmp slt i32 %561, 6
  br i1 %562, label %578, label %563

563:                                              ; preds = %560
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #10
  br label %618

564:                                              ; preds = %546, %542, %538
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #10
  br label %679

565:                                              ; preds = %550
  %566 = landingpad { ptr, i32 }
          cleanup
  %567 = extractvalue { ptr, i32 } %566, 0
  store ptr %567, ptr %35, align 8
  %568 = extractvalue { ptr, i32 } %566, 1
  store i32 %568, ptr %36, align 4
  br label %573

569:                                              ; preds = %554, %552
  %570 = landingpad { ptr, i32 }
          cleanup
  %571 = extractvalue { ptr, i32 } %570, 0
  store ptr %571, ptr %35, align 8
  %572 = extractvalue { ptr, i32 } %570, 1
  store i32 %572, ptr %36, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #10
  br label %573

573:                                              ; preds = %569, %565
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #10
  br label %679

574:                                              ; preds = %557
  %575 = landingpad { ptr, i32 }
          cleanup
  %576 = extractvalue { ptr, i32 } %575, 0
  store ptr %576, ptr %35, align 8
  %577 = extractvalue { ptr, i32 } %575, 1
  store i32 %577, ptr %36, align 4
  br label %678

578:                                              ; preds = %560
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #10
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %74, ptr noundef nonnull align 8 dereferenceable(24) %33)
          to label %579 unwind label %601

579:                                              ; preds = %578
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %75, ptr align 4 %29, i64 68, i1 false), !tbaa.struct !27
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull align 8 dereferenceable(32) %49) #10
  %580 = invoke noundef i32 @_Z8priorboxSt6vectorI6TensorSaIS0_EE17PriorBoxParamSpecS0_P8ArchInfo(ptr noundef %74, ptr noundef byval(%struct.PriorBoxParamSpec) align 8 %75, ptr noundef %76, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %581 unwind label %605

581:                                              ; preds = %579
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #10
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %74) #10
  store i32 %580, ptr %73, align 4, !tbaa !28
  %582 = load i32, ptr %73, align 4, !tbaa !28
  %583 = icmp ne i32 %582, 0
  br i1 %583, label %584, label %613

584:                                              ; preds = %581
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #10
  %585 = call i64 (i64, ...) @syscall(i64 noundef 186) #10
  %586 = trunc i64 %585 to i32
  store i32 %586, ptr %77, align 4, !tbaa !5
  %587 = load i32, ptr %77, align 4, !tbaa !5
  %588 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %587)
          to label %589 unwind label %609

589:                                              ; preds = %584
  %590 = load ptr, ptr @stdout, align 8, !tbaa !9
  %591 = invoke i32 @fflush(ptr noundef %590)
          to label %592 unwind label %609

592:                                              ; preds = %589
  %593 = load i32, ptr %73, align 4, !tbaa !28
  %594 = invoke ptr @ee2str(i32 noundef %593)
          to label %595 unwind label %609

595:                                              ; preds = %592
  %596 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %594)
          to label %597 unwind label %609

597:                                              ; preds = %595
  %598 = load ptr, ptr @stdout, align 8, !tbaa !9
  %599 = invoke i32 @fflush(ptr noundef %598)
          to label %600 unwind label %609

600:                                              ; preds = %597
  call void @exit(i32 noundef 1) #11
  unreachable

601:                                              ; preds = %578
  %602 = landingpad { ptr, i32 }
          cleanup
  %603 = extractvalue { ptr, i32 } %602, 0
  store ptr %603, ptr %35, align 8
  %604 = extractvalue { ptr, i32 } %602, 1
  store i32 %604, ptr %36, align 4
  br label %617

605:                                              ; preds = %579
  %606 = landingpad { ptr, i32 }
          cleanup
  %607 = extractvalue { ptr, i32 } %606, 0
  store ptr %607, ptr %35, align 8
  %608 = extractvalue { ptr, i32 } %606, 1
  store i32 %608, ptr %36, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #10
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %74) #10
  br label %617

609:                                              ; preds = %597, %595, %592, %589, %584
  %610 = landingpad { ptr, i32 }
          cleanup
  %611 = extractvalue { ptr, i32 } %610, 0
  store ptr %611, ptr %35, align 8
  %612 = extractvalue { ptr, i32 } %610, 1
  store i32 %612, ptr %36, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #10
  br label %617

613:                                              ; preds = %581
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #10
  br label %614

614:                                              ; preds = %613
  %615 = load i32, ptr %72, align 4, !tbaa !5
  %616 = add nsw i32 %615, 1
  store i32 %616, ptr %72, align 4, !tbaa !5
  br label %560, !llvm.loop !32

617:                                              ; preds = %609, %605, %601
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #10
  br label %678

618:                                              ; preds = %563
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #10
  %619 = invoke noundef double @_Z10ut_time_msv()
          to label %620 unwind label %632

620:                                              ; preds = %618
  store double %619, ptr %78, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #10
  %621 = load double, ptr %78, align 8, !tbaa !30
  %622 = load double, ptr %71, align 8, !tbaa !30
  %623 = fsub double %621, %622
  %624 = fdiv double %623, 6.000000e+00
  store double %624, ptr %79, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #10
  %625 = load i32, ptr %32, align 4, !tbaa !5
  store i32 %625, ptr %80, align 4, !tbaa !5
  %626 = getelementptr inbounds %struct.PriorBoxParamSpec, ptr %29, i32 0, i32 3
  %627 = load i32, ptr %626, align 4, !tbaa !15
  %628 = icmp ne i32 %627, 0
  br i1 %628, label %629, label %636

629:                                              ; preds = %620
  %630 = load i32, ptr %80, align 4, !tbaa !5
  %631 = mul i32 %630, 2
  store i32 %631, ptr %80, align 4, !tbaa !5
  br label %636

632:                                              ; preds = %618
  %633 = landingpad { ptr, i32 }
          cleanup
  %634 = extractvalue { ptr, i32 } %633, 0
  store ptr %634, ptr %35, align 8
  %635 = extractvalue { ptr, i32 } %633, 1
  store i32 %635, ptr %36, align 4
  br label %677

636:                                              ; preds = %629, %620
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #10
  %637 = load i32, ptr %30, align 4, !tbaa !5
  store i32 %637, ptr %81, align 4, !tbaa !5
  %638 = load i32, ptr %80, align 4, !tbaa !5
  %639 = add i32 %638, 1
  %640 = load i32, ptr %81, align 4, !tbaa !5
  %641 = mul i32 %639, %640
  store i32 %641, ptr %80, align 4, !tbaa !5
  %642 = load i32, ptr %31, align 4, !tbaa !5
  %643 = icmp ne i32 %642, 0
  br i1 %643, label %644, label %649

644:                                              ; preds = %636
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #10
  %645 = load i32, ptr %31, align 4, !tbaa !5
  store i32 %645, ptr %82, align 4, !tbaa !5
  %646 = load i32, ptr %80, align 4, !tbaa !5
  %647 = load i32, ptr %82, align 4, !tbaa !5
  %648 = add i32 %646, %647
  store i32 %648, ptr %80, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #10
  br label %649

649:                                              ; preds = %644, %636
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #10
  store i32 2, ptr %83, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #10
  store i32 4, ptr %84, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 150, ptr %85) #10
  call void @llvm.lifetime.start.p0(i64 120, ptr %86) #10
  %650 = getelementptr inbounds [120 x i8], ptr %86, i64 0, i64 0
  %651 = load i32, ptr %8, align 4, !tbaa !5
  %652 = load i32, ptr %9, align 4, !tbaa !5
  %653 = load i32, ptr %10, align 4, !tbaa !5
  %654 = load i32, ptr %11, align 4, !tbaa !5
  %655 = load i32, ptr %83, align 4, !tbaa !5
  %656 = load i32, ptr %84, align 4, !tbaa !5
  %657 = load i32, ptr %80, align 4, !tbaa !5
  %658 = load i32, ptr %21, align 4, !tbaa !5
  %659 = load i32, ptr %22, align 4, !tbaa !5
  %660 = load i32, ptr %23, align 4, !tbaa !5
  %661 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %650, ptr noundef @.str.3, i32 noundef %651, i32 noundef %652, i32 noundef %653, i32 noundef %654, i32 noundef %655, i32 noundef %656, i32 noundef %657, i32 noundef %658, i32 noundef %659, i32 noundef %660) #10
  %662 = getelementptr inbounds [150 x i8], ptr %85, i64 0, i64 0
  %663 = getelementptr inbounds [120 x i8], ptr %86, i64 0, i64 0
  %664 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %662, ptr noundef @.str.4, ptr noundef @.str.5, ptr noundef %663) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #10
  %665 = load i32, ptr %57, align 4, !tbaa !5
  %666 = uitofp i32 %665 to double
  %667 = fmul double 1.000000e+00, %666
  store double %667, ptr %87, align 8, !tbaa !30
  %668 = load i32, ptr %6, align 4, !tbaa !11
  %669 = getelementptr inbounds [150 x i8], ptr %85, i64 0, i64 0
  %670 = load double, ptr %87, align 8, !tbaa !30
  %671 = load double, ptr %79, align 8, !tbaa !30
  invoke void @_Z6ut_log8DataTypePcdd(i32 noundef %668, ptr noundef %669, double noundef %670, double noundef %671)
          to label %672 unwind label %673

672:                                              ; preds = %649
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #10
  call void @llvm.lifetime.end.p0(i64 120, ptr %86) #10
  call void @llvm.lifetime.end.p0(i64 150, ptr %85) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #10
  call void @llvm.lifetime.end.p0(i64 92, ptr %55) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #10
  call void @llvm.lifetime.end.p0(i64 92, ptr %42) #10
  call void @llvm.lifetime.end.p0(i64 92, ptr %41) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #10
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %37) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %37) #10
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %33) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %33) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #10
  call void @llvm.lifetime.end.p0(i64 68, ptr %29) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #10
  ret i32 0

673:                                              ; preds = %649
  %674 = landingpad { ptr, i32 }
          cleanup
  %675 = extractvalue { ptr, i32 } %674, 0
  store ptr %675, ptr %35, align 8
  %676 = extractvalue { ptr, i32 } %674, 1
  store i32 %676, ptr %36, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #10
  call void @llvm.lifetime.end.p0(i64 120, ptr %86) #10
  call void @llvm.lifetime.end.p0(i64 150, ptr %85) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #10
  br label %677

677:                                              ; preds = %673, %632
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #10
  br label %678

678:                                              ; preds = %677, %617, %574
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #10
  br label %679

679:                                              ; preds = %678, %573, %564, %537, %475, %471
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #10
  br label %680

680:                                              ; preds = %679, %467
  call void @llvm.lifetime.end.p0(i64 92, ptr %55) #10
  br label %681

681:                                              ; preds = %680, %463, %462
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #10
  br label %682

682:                                              ; preds = %681, %398
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #10
  br label %683

683:                                              ; preds = %682, %394
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #10
  br label %684

684:                                              ; preds = %683, %390
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #10
  br label %685

685:                                              ; preds = %684, %386
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #10
  br label %686

686:                                              ; preds = %685, %382
  call void @llvm.lifetime.end.p0(i64 92, ptr %42) #10
  br label %687

687:                                              ; preds = %686, %378
  call void @llvm.lifetime.end.p0(i64 92, ptr %41) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  br label %688

688:                                              ; preds = %687, %374
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #10
  br label %689

689:                                              ; preds = %688, %370
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #10
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %37) #10
  br label %690

690:                                              ; preds = %689, %366
  call void @llvm.lifetime.end.p0(i64 24, ptr %37) #10
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %33) #10
  br label %691

691:                                              ; preds = %690, %362
  call void @llvm.lifetime.end.p0(i64 24, ptr %33) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #10
  call void @llvm.lifetime.end.p0(i64 68, ptr %29) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #10
  br label %692

692:                                              ; preds = %691
  %693 = load ptr, ptr %35, align 8
  %694 = load i32, ptr %36, align 4
  %695 = insertvalue { ptr, i32 } poison, ptr %693, 0
  %696 = insertvalue { ptr, i32 } %695, i32 %694, 1
  resume { ptr, i32 } %696
}

; 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 willreturn memory(read) uwtable
declare double @atof(ptr noundef nonnull) #5

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

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIP6TensorSaIS1_EEC2EmRKS2_(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #0 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

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

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

; Function Attrs: 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 nounwind uwtable
declare dso_local noundef i32 @_Z17tensorNumElements10TensorDesc(ptr noundef byval(%struct.TensorDesc) align 8) #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #6 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6TensorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #6 align 2

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

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

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

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

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

; 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: mustprogress uwtable
declare dso_local noundef i32 @_ZN6Tensor6lengthEv(ptr noundef nonnull align 8 dereferenceable(32)) #0 align 2

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

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

; Function Attrs: 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 #7 align 2

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

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

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

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

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

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

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

attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress nounwind willreturn memory(read) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { 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 nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #9 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { nounwind }
attributes #11 = { noreturn nounwind }
attributes #12 = { 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, !14, i64 0}
!14 = !{!"float", !7, i64 0}
!15 = !{!16, !6, i64 24}
!16 = !{!"_ZTS17PriorBoxParamSpec", !7, i64 0, !7, i64 8, !7, i64 16, !6, i64 24, !6, i64 28, !7, i64 32, !6, i64 48, !6, i64 52, !14, i64 56, !14, i64 60, !14, i64 64}
!17 = !{!16, !6, i64 28}
!18 = !{!16, !6, i64 48}
!19 = !{!16, !6, i64 52}
!20 = !{!16, !14, i64 56}
!21 = !{!16, !14, i64 60}
!22 = !{!16, !14, i64 64}
!23 = !{i64 0, i64 4, !11, i64 4, i64 4, !24, i64 8, i64 4, !5, i64 12, i64 80, !26}
!24 = !{!25, !25, i64 0}
!25 = !{!"_ZTS10DataFormat", !7, i64 0}
!26 = !{!7, !7, i64 0}
!27 = !{i64 0, i64 8, !26, i64 8, i64 8, !26, i64 16, i64 8, !26, i64 24, i64 4, !5, i64 28, i64 4, !5, i64 32, i64 16, !26, i64 48, i64 4, !5, i64 52, i64 4, !5, i64 56, i64 4, !13, i64 60, i64 4, !13, i64 64, i64 4, !13}
!28 = !{!29, !29, i64 0}
!29 = !{!"_ZTS2EE", !7, i64 0}
!30 = !{!31, !31, i64 0}
!31 = !{!"double", !7, i64 0}
!32 = distinct !{!32, !33}
!33 = !{!"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 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<Tensor, std::allocator<Tensor>>::_Vector_impl" }
%"struct.std::_Vector_base<Tensor, std::allocator<Tensor>>::_Vector_impl" = type { %"struct.std::_Vector_base<Tensor, std::allocator<Tensor>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Tensor, std::allocator<Tensor>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator" = type { i8 }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<Tensor *, std::allocator<Tensor *>>::_Vector_impl" }
%"struct.std::_Vector_base<Tensor *, std::allocator<Tensor *>>::_Vector_impl" = type { %"struct.std::_Vector_base<Tensor *, std::allocator<Tensor *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Tensor *, std::allocator<Tensor *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.2" = type { i8 }
%class.Tensor = type { %"class.std::shared_ptr", %"class.std::shared_ptr.5" }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::shared_ptr.5" = type { %"class.std::__shared_ptr.6" }
%"class.std::__shared_ptr.6" = type { ptr, %"class.std::__shared_count" }
%struct.TensorDesc = type { i32, i32, i32, [20 x i32] }
%struct.PriorBoxParamSpec = type { [2 x float], [2 x float], [2 x float], i32, i32, [4 x float], i32, i32, float, float, float }

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_Z12priorboxTestiPPc8DataType(i32 noundef %0, ptr nocapture noundef readonly %1, i32 noundef %2) local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %4 = alloca %"class.std::vector", align 8
  %5 = alloca %"class.std::allocator", align 1
  %6 = alloca %"class.std::vector.0", align 8
  %7 = alloca %"class.std::allocator.2", align 1
  %8 = alloca %class.Tensor, align 8
  %9 = alloca %class.Tensor, align 8
  %10 = alloca %struct.TensorDesc, align 8
  %11 = alloca %struct.TensorDesc, align 8
  %12 = alloca %class.Tensor, align 8
  %13 = alloca %class.Tensor, align 8
  %14 = alloca %"class.std::vector.0", align 8
  %15 = alloca %struct.PriorBoxParamSpec, align 8
  %16 = alloca %struct.TensorDesc, align 8
  %17 = alloca %"class.std::vector", align 8
  %18 = alloca %struct.PriorBoxParamSpec, align 8
  %19 = alloca %class.Tensor, align 8
  %20 = alloca %"class.std::vector", align 8
  %21 = alloca %struct.PriorBoxParamSpec, align 8
  %22 = alloca %class.Tensor, align 8
  %23 = alloca %class.Tensor, align 8
  %24 = alloca %class.Tensor, align 8
  %25 = alloca %"class.std::vector", align 8
  %26 = alloca %struct.PriorBoxParamSpec, align 8
  %27 = alloca %class.Tensor, align 8
  %28 = alloca [150 x i8], align 16
  %29 = alloca [120 x i8], align 16
  %30 = icmp eq i32 %0, 20
  %31 = icmp eq i32 %0, 21
  %.off = add i32 %0, -18
  %switch = icmp ult i32 %.off, 4
  br i1 %switch, label %41, label %32

32:                                               ; preds = %3
  %33 = tail call i64 (i64, ...) @syscall(i64 noundef 186) #10
  %34 = trunc i64 %33 to i32
  %35 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %34)
  %36 = load ptr, ptr @stdout, align 8, !tbaa !5
  %37 = tail call i32 @fflush(ptr noundef %36)
  %38 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.1)
  %39 = load ptr, ptr @stdout, align 8, !tbaa !5
  %40 = tail call i32 @fflush(ptr noundef %39)
  tail call void @exit(i32 noundef 1) #11
  unreachable

41:                                               ; preds = %3
  %42 = getelementptr inbounds i8, ptr %1, i64 8
  %43 = load ptr, ptr %42, align 8, !tbaa !5
  %44 = tail call i32 @atoi(ptr nocapture noundef %43) #12
  %45 = getelementptr inbounds i8, ptr %1, i64 16
  %46 = load ptr, ptr %45, align 8, !tbaa !5
  %47 = tail call i32 @atoi(ptr nocapture noundef %46) #12
  %48 = getelementptr inbounds i8, ptr %1, i64 24
  %49 = load ptr, ptr %48, align 8, !tbaa !5
  %50 = tail call i32 @atoi(ptr nocapture noundef %49) #12
  %51 = getelementptr inbounds i8, ptr %1, i64 32
  %52 = load ptr, ptr %51, align 8, !tbaa !5
  %53 = tail call i32 @atoi(ptr nocapture noundef %52) #12
  %54 = getelementptr inbounds i8, ptr %1, i64 40
  %55 = load ptr, ptr %54, align 8, !tbaa !5
  %56 = tail call i32 @atoi(ptr nocapture noundef %55) #12
  %57 = getelementptr inbounds i8, ptr %1, i64 48
  %58 = load ptr, ptr %57, align 8, !tbaa !5
  %59 = tail call i32 @atoi(ptr nocapture noundef %58) #12
  %60 = getelementptr inbounds i8, ptr %1, i64 56
  %61 = load ptr, ptr %60, align 8, !tbaa !5
  %62 = tail call i32 @atoi(ptr nocapture noundef %61) #12
  %63 = getelementptr inbounds i8, ptr %1, i64 64
  %64 = load ptr, ptr %63, align 8, !tbaa !5
  %65 = tail call i32 @atoi(ptr nocapture noundef %64) #12
  %66 = getelementptr inbounds i8, ptr %1, i64 72
  %67 = load ptr, ptr %66, align 8, !tbaa !5
  %68 = tail call double @atof(ptr noundef %67) #12
  %69 = fptrunc double %68 to float
  %70 = getelementptr inbounds i8, ptr %1, i64 80
  %71 = load ptr, ptr %70, align 8, !tbaa !5
  %72 = tail call double @atof(ptr noundef %71) #12
  %73 = fptrunc double %72 to float
  %74 = getelementptr inbounds i8, ptr %1, i64 88
  %75 = load ptr, ptr %74, align 8, !tbaa !5
  %76 = tail call i32 @atoi(ptr nocapture noundef %75) #12
  %77 = getelementptr inbounds i8, ptr %1, i64 96
  %78 = load ptr, ptr %77, align 8, !tbaa !5
  %79 = tail call i32 @atoi(ptr nocapture noundef %78) #12
  %80 = getelementptr inbounds i8, ptr %1, i64 104
  %81 = load ptr, ptr %80, align 8, !tbaa !5
  %82 = tail call double @atof(ptr noundef %81) #12
  %83 = fptrunc double %82 to float
  %84 = getelementptr inbounds i8, ptr %1, i64 112
  %85 = load ptr, ptr %84, align 8, !tbaa !5
  %86 = tail call i32 @atoi(ptr nocapture noundef %85) #12
  %87 = getelementptr inbounds i8, ptr %1, i64 120
  %88 = load ptr, ptr %87, align 8, !tbaa !5
  %89 = tail call i32 @atoi(ptr nocapture noundef %88) #12
  %90 = getelementptr inbounds i8, ptr %1, i64 128
  %91 = load ptr, ptr %90, align 8, !tbaa !5
  %92 = tail call i32 @atoi(ptr nocapture noundef %91) #12
  %93 = getelementptr inbounds i8, ptr %1, i64 136
  %94 = load ptr, ptr %93, align 8, !tbaa !5
  %95 = tail call double @atof(ptr noundef %94) #12
  %96 = fptrunc double %95 to float
  switch i32 %0, label %102 [
    i32 21, label %97
    i32 19, label %97
  ]

97:                                               ; preds = %41, %41
  %98 = getelementptr inbounds i8, ptr %1, i64 144
  %99 = load ptr, ptr %98, align 8, !tbaa !5
  %100 = tail call double @atof(ptr noundef %99) #12
  %101 = fptrunc double %100 to float
  br i1 %31, label %.sink.split, label %102

102:                                              ; preds = %41, %97
  %.0 = phi float [ %101, %97 ], [ 0.000000e+00, %41 ]
  br i1 %30, label %.sink.split, label %111

.sink.split:                                      ; preds = %102, %97
  %.sink314 = phi i64 [ 152, %97 ], [ 144, %102 ]
  %.sink312 = phi i64 [ 160, %97 ], [ 152, %102 ]
  %.0308.ph = phi float [ %101, %97 ], [ %.0, %102 ]
  %103 = getelementptr inbounds i8, ptr %1, i64 %.sink314
  %104 = load ptr, ptr %103, align 8, !tbaa !5
  %105 = tail call double @atof(ptr noundef %104) #12
  %106 = fptrunc double %105 to float
  %107 = getelementptr inbounds i8, ptr %1, i64 %.sink312
  %108 = load ptr, ptr %107, align 8, !tbaa !5
  %109 = tail call double @atof(ptr noundef %108) #12
  %110 = fptrunc double %109 to float
  br label %111

111:                                              ; preds = %.sink.split, %102
  %.0308 = phi float [ %.0, %102 ], [ %.0308.ph, %.sink.split ]
  %.1240 = phi float [ 0.000000e+00, %102 ], [ %110, %.sink.split ]
  %.1 = phi float [ 0.000000e+00, %102 ], [ %106, %.sink.split ]
  %112 = icmp eq i32 %44, 1
  %113 = icmp eq i32 %56, 1
  %or.cond9 = select i1 %112, i1 %113, i1 false
  %114 = icmp eq i32 %86, 1
  %or.cond11 = select i1 %or.cond9, i1 %114, i1 false
  %115 = icmp eq i32 %89, 2
  %or.cond13 = select i1 %or.cond11, i1 %115, i1 false
  br i1 %or.cond13, label %125, label %116

116:                                              ; preds = %111
  %117 = tail call i64 (i64, ...) @syscall(i64 noundef 186) #10
  %118 = trunc i64 %117 to i32
  %119 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %118)
  %120 = load ptr, ptr @stdout, align 8, !tbaa !5
  %121 = tail call i32 @fflush(ptr noundef %120)
  %122 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.1)
  %123 = load ptr, ptr @stdout, align 8, !tbaa !5
  %124 = tail call i32 @fflush(ptr noundef %123)
  tail call void @exit(i32 noundef 1) #11
  unreachable

125:                                              ; preds = %111
  switch i32 %0, label %127 [
    i32 21, label %126
    i32 19, label %126
  ]

126:                                              ; preds = %125, %125
  %spec.select = select i1 %31, i32 2, i32 1
  br label %127

127:                                              ; preds = %126, %125
  %.0247 = phi i32 [ 1, %125 ], [ 2, %126 ]
  %.0241 = phi i32 [ 1, %125 ], [ %spec.select, %126 ]
  %128 = zext i1 %30 to i32
  %.1244 = add nuw nsw i32 %.0241, %128
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #10
  call void @_ZNSaI6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #10
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2EmRKS1_(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef 2, ptr noundef nonnull align 1 dereferenceable(1) %5)
          to label %129 unwind label %160

129:                                              ; preds = %127
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #10
  call void @_ZNSaIP6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #10
  invoke void @_ZNSt6vectorIP6TensorSaIS1_EEC2EmRKS2_(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef 2, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %130 unwind label %162

130:                                              ; preds = %129
  call void @_ZNSt15__new_allocatorIP6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #10
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %8, i32 noundef 1)
          to label %131 unwind label %164

131:                                              ; preds = %130
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #10
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %9, i32 noundef 1)
          to label %132 unwind label %166

132:                                              ; preds = %131
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %10) #10
  call void @_Z9tensor4df8DataType10DataFormatjjjj(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %10, i32 noundef %2, i32 noundef 2, i32 noundef 1, i32 noundef %47, i32 noundef %50, i32 noundef %53)
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %11) #10
  call void @_Z9tensor4df8DataType10DataFormatjjjj(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %11, i32 noundef %2, i32 noundef 2, i32 noundef 1, i32 noundef %59, i32 noundef %62, i32 noundef %65)
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %10)
          to label %133 unwind label %168

133:                                              ; preds = %132
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %11)
          to label %134 unwind label %168

134:                                              ; preds = %133
  %135 = call noundef i32 @_Z17tensorNumElements10TensorDesc(ptr noundef nonnull byval(%struct.TensorDesc) align 8 %10)
  %136 = call noundef i32 @_Z17tensorNumElements10TensorDesc(ptr noundef nonnull byval(%struct.TensorDesc) align 8 %11)
  %137 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef 0) #10
  %138 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN6TensoraSERKS_(ptr noundef nonnull align 8 dereferenceable(32) %137, ptr noundef nonnull align 8 dereferenceable(32) %8) #10
  %139 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef 1) #10
  %140 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN6TensoraSERKS_(ptr noundef nonnull align 8 dereferenceable(32) %139, ptr noundef nonnull align 8 dereferenceable(32) %9) #10
  %141 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef 0) #10
  %142 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6TensorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef 0) #10
  store ptr %141, ptr %142, align 8, !tbaa !5
  %143 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef 1) #10
  %144 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6TensorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef 1) #10
  store ptr %143, ptr %144, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #10
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %12, i32 noundef 1)
          to label %145 unwind label %170

145:                                              ; preds = %134
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #10
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %13, i32 noundef 1)
          to label %146 unwind label %172

146:                                              ; preds = %145
  invoke void @_ZNSt6vectorIP6TensorSaIS1_EEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %14, ptr noundef nonnull align 8 dereferenceable(24) %6)
          to label %147 unwind label %174

147:                                              ; preds = %146
  store float %69, ptr %15, align 8
  %.sroa.8.0..sroa_idx = getelementptr inbounds i8, ptr %15, i64 4
  store float %.1, ptr %.sroa.8.0..sroa_idx, align 4, !tbaa !9
  %.sroa.9.0..sroa_idx = getelementptr inbounds i8, ptr %15, i64 8
  store float %73, ptr %.sroa.9.0..sroa_idx, align 8
  %.sroa.10.0..sroa_idx = getelementptr inbounds i8, ptr %15, i64 12
  store float %.1240, ptr %.sroa.10.0..sroa_idx, align 4, !tbaa !9
  %.sroa.11.0..sroa_idx = getelementptr inbounds i8, ptr %15, i64 16
  store float %96, ptr %.sroa.11.0..sroa_idx, align 8
  %.sroa.12.0..sroa_idx = getelementptr inbounds i8, ptr %15, i64 20
  store float %.0308, ptr %.sroa.12.0..sroa_idx, align 4, !tbaa !9
  %.sroa.13.0..sroa_idx = getelementptr inbounds i8, ptr %15, i64 24
  store i32 %76, ptr %.sroa.13.0..sroa_idx, align 8, !tbaa !10
  %.sroa.15.0..sroa_idx = getelementptr inbounds i8, ptr %15, i64 28
  store i32 %79, ptr %.sroa.15.0..sroa_idx, align 4, !tbaa !10
  %.sroa.16.0..sroa_idx = getelementptr inbounds i8, ptr %15, i64 32
  store <4 x float> <float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FC99999A0000000, float 0x3FC99999A0000000>, ptr %.sroa.16.0..sroa_idx, align 8
  %.sroa.20.0..sroa_idx = getelementptr inbounds i8, ptr %15, i64 48
  store i32 %62, ptr %.sroa.20.0..sroa_idx, align 8, !tbaa !10
  %.sroa.21.0..sroa_idx = getelementptr inbounds i8, ptr %15, i64 52
  store i32 %65, ptr %.sroa.21.0..sroa_idx, align 4, !tbaa !10
  %.sroa.22.0..sroa_idx = getelementptr inbounds i8, ptr %15, i64 56
  store float %83, ptr %.sroa.22.0..sroa_idx, align 8, !tbaa !12
  %.sroa.23.0..sroa_idx = getelementptr inbounds i8, ptr %15, i64 60
  store float %83, ptr %.sroa.23.0..sroa_idx, align 4, !tbaa !12
  %.sroa.24.0..sroa_idx = getelementptr inbounds i8, ptr %15, i64 64
  store float 5.000000e-01, ptr %.sroa.24.0..sroa_idx, align 8, !tbaa !12
  %148 = invoke noundef i32 @_Z26priorbox_infer_output_sizeSt6vectorIP6TensorSaIS1_EE17PriorBoxParamSpecS1_P8ArchInfo(ptr noundef nonnull %14, ptr noundef nonnull byval(%struct.PriorBoxParamSpec) align 8 %15, ptr noundef nonnull %12, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %149 unwind label %176

149:                                              ; preds = %147
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #10
  %.not = icmp eq i32 %148, 0
  br i1 %.not, label %178, label %150

150:                                              ; preds = %149
  %151 = call i64 (i64, ...) @syscall(i64 noundef 186) #10
  %152 = trunc i64 %151 to i32
  %153 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %152)
  %154 = load ptr, ptr @stdout, align 8, !tbaa !5
  %155 = call i32 @fflush(ptr noundef %154)
  %156 = call ptr @ee2str(i32 noundef %148)
  %157 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %156)
  %158 = load ptr, ptr @stdout, align 8, !tbaa !5
  %159 = call i32 @fflush(ptr noundef %158)
  call void @exit(i32 noundef 1) #11
  unreachable

160:                                              ; preds = %127
  %161 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #10
  br label %320

162:                                              ; preds = %129
  %163 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIP6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #10
  br label %319

164:                                              ; preds = %130
  %165 = landingpad { ptr, i32 }
          cleanup
  br label %318

166:                                              ; preds = %131
  %167 = landingpad { ptr, i32 }
          cleanup
  br label %317

168:                                              ; preds = %133, %132
  %169 = landingpad { ptr, i32 }
          cleanup
  br label %316

170:                                              ; preds = %134
  %171 = landingpad { ptr, i32 }
          cleanup
  br label %315

172:                                              ; preds = %145
  %173 = landingpad { ptr, i32 }
          cleanup
  br label %314

174:                                              ; preds = %146
  %175 = landingpad { ptr, i32 }
          cleanup
  br label %313

176:                                              ; preds = %147
  %177 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #10
  br label %313

178:                                              ; preds = %149
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %179 unwind label %203

179:                                              ; preds = %178
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %16) #10
  invoke void @_ZN6Tensor8get_descEv(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %16, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %180 unwind label %205

180:                                              ; preds = %179
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %16)
          to label %181 unwind label %205

181:                                              ; preds = %180
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %182 unwind label %205

182:                                              ; preds = %181
  %183 = invoke noundef i32 @_ZN6Tensor6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %184 unwind label %207

184:                                              ; preds = %182
  %185 = mul i32 %50, %47
  %186 = mul i32 %185, %53
  %187 = icmp eq i32 %135, %186
  br i1 %187, label %188, label %194

188:                                              ; preds = %184
  %189 = mul i32 %62, %59
  %190 = mul i32 %189, %65
  %191 = icmp eq i32 %136, %190
  %192 = shl i32 %92, 1
  %193 = icmp eq i32 %183, %192
  %or.cond = select i1 %191, i1 %193, i1 false
  br i1 %or.cond, label %209, label %194

194:                                              ; preds = %188, %184
  %195 = call i64 (i64, ...) @syscall(i64 noundef 186) #10
  %196 = trunc i64 %195 to i32
  %197 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %196)
  %198 = load ptr, ptr @stdout, align 8, !tbaa !5
  %199 = call i32 @fflush(ptr noundef %198)
  %200 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.1)
  %201 = load ptr, ptr @stdout, align 8, !tbaa !5
  %202 = call i32 @fflush(ptr noundef %201)
  call void @exit(i32 noundef 1) #11
  unreachable

203:                                              ; preds = %178
  %204 = landingpad { ptr, i32 }
          cleanup
  br label %313

205:                                              ; preds = %181, %180, %179
  %206 = landingpad { ptr, i32 }
          cleanup
  br label %312

207:                                              ; preds = %182
  %208 = landingpad { ptr, i32 }
          cleanup
  br label %312

209:                                              ; preds = %188
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %17, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %210 unwind label %223

210:                                              ; preds = %209
  store float %69, ptr %18, align 8
  %.sroa.8.0..sroa_idx60 = getelementptr inbounds i8, ptr %18, i64 4
  store float %.1, ptr %.sroa.8.0..sroa_idx60, align 4, !tbaa !9
  %.sroa.9.0..sroa_idx66 = getelementptr inbounds i8, ptr %18, i64 8
  store float %73, ptr %.sroa.9.0..sroa_idx66, align 8
  %.sroa.10.0..sroa_idx72 = getelementptr inbounds i8, ptr %18, i64 12
  store float %.1240, ptr %.sroa.10.0..sroa_idx72, align 4, !tbaa !9
  %.sroa.11.0..sroa_idx78 = getelementptr inbounds i8, ptr %18, i64 16
  store float %96, ptr %.sroa.11.0..sroa_idx78, align 8
  %.sroa.12.0..sroa_idx84 = getelementptr inbounds i8, ptr %18, i64 20
  store float %.0308, ptr %.sroa.12.0..sroa_idx84, align 4, !tbaa !9
  %.sroa.13.0..sroa_idx90 = getelementptr inbounds i8, ptr %18, i64 24
  store i32 %76, ptr %.sroa.13.0..sroa_idx90, align 8, !tbaa !10
  %.sroa.15.0..sroa_idx96 = getelementptr inbounds i8, ptr %18, i64 28
  store i32 %79, ptr %.sroa.15.0..sroa_idx96, align 4, !tbaa !10
  %.sroa.16.0..sroa_idx102 = getelementptr inbounds i8, ptr %18, i64 32
  store <4 x float> <float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FC99999A0000000, float 0x3FC99999A0000000>, ptr %.sroa.16.0..sroa_idx102, align 8
  %.sroa.20.0..sroa_idx126 = getelementptr inbounds i8, ptr %18, i64 48
  store i32 %62, ptr %.sroa.20.0..sroa_idx126, align 8, !tbaa !10
  %.sroa.21.0..sroa_idx132 = getelementptr inbounds i8, ptr %18, i64 52
  store i32 %65, ptr %.sroa.21.0..sroa_idx132, align 4, !tbaa !10
  %.sroa.22.0..sroa_idx138 = getelementptr inbounds i8, ptr %18, i64 56
  store float %83, ptr %.sroa.22.0..sroa_idx138, align 8, !tbaa !12
  %.sroa.23.0..sroa_idx144 = getelementptr inbounds i8, ptr %18, i64 60
  store float %83, ptr %.sroa.23.0..sroa_idx144, align 4, !tbaa !12
  %.sroa.24.0..sroa_idx150 = getelementptr inbounds i8, ptr %18, i64 64
  store float 5.000000e-01, ptr %.sroa.24.0..sroa_idx150, align 8, !tbaa !12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(32) %12) #10
  %211 = invoke noundef i32 @_Z8priorboxSt6vectorI6TensorSaIS0_EE17PriorBoxParamSpecS0_P8ArchInfo(ptr noundef nonnull %17, ptr noundef nonnull byval(%struct.PriorBoxParamSpec) align 8 %18, ptr noundef nonnull %19, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %212 unwind label %225

212:                                              ; preds = %210
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #10
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #10
  %.not280 = icmp eq i32 %211, 0
  br i1 %.not280, label %227, label %213

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

223:                                              ; preds = %209
  %224 = landingpad { ptr, i32 }
          cleanup
  br label %312

225:                                              ; preds = %210
  %226 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #10
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #10
  br label %312

227:                                              ; preds = %212
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %20, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %228 unwind label %241

228:                                              ; preds = %227
  store float %69, ptr %21, align 8
  %.sroa.8.0..sroa_idx62 = getelementptr inbounds i8, ptr %21, i64 4
  store float %.1, ptr %.sroa.8.0..sroa_idx62, align 4, !tbaa !9
  %.sroa.9.0..sroa_idx68 = getelementptr inbounds i8, ptr %21, i64 8
  store float %73, ptr %.sroa.9.0..sroa_idx68, align 8
  %.sroa.10.0..sroa_idx74 = getelementptr inbounds i8, ptr %21, i64 12
  store float %.1240, ptr %.sroa.10.0..sroa_idx74, align 4, !tbaa !9
  %.sroa.11.0..sroa_idx80 = getelementptr inbounds i8, ptr %21, i64 16
  store float %96, ptr %.sroa.11.0..sroa_idx80, align 8
  %.sroa.12.0..sroa_idx86 = getelementptr inbounds i8, ptr %21, i64 20
  store float %.0308, ptr %.sroa.12.0..sroa_idx86, align 4, !tbaa !9
  %.sroa.13.0..sroa_idx92 = getelementptr inbounds i8, ptr %21, i64 24
  store i32 %76, ptr %.sroa.13.0..sroa_idx92, align 8, !tbaa !10
  %.sroa.15.0..sroa_idx98 = getelementptr inbounds i8, ptr %21, i64 28
  store i32 %79, ptr %.sroa.15.0..sroa_idx98, align 4, !tbaa !10
  %.sroa.16.0..sroa_idx104 = getelementptr inbounds i8, ptr %21, i64 32
  store <4 x float> <float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FC99999A0000000, float 0x3FC99999A0000000>, ptr %.sroa.16.0..sroa_idx104, align 8
  %.sroa.20.0..sroa_idx128 = getelementptr inbounds i8, ptr %21, i64 48
  store i32 %62, ptr %.sroa.20.0..sroa_idx128, align 8, !tbaa !10
  %.sroa.21.0..sroa_idx134 = getelementptr inbounds i8, ptr %21, i64 52
  store i32 %65, ptr %.sroa.21.0..sroa_idx134, align 4, !tbaa !10
  %.sroa.22.0..sroa_idx140 = getelementptr inbounds i8, ptr %21, i64 56
  store float %83, ptr %.sroa.22.0..sroa_idx140, align 8, !tbaa !12
  %.sroa.23.0..sroa_idx146 = getelementptr inbounds i8, ptr %21, i64 60
  store float %83, ptr %.sroa.23.0..sroa_idx146, align 4, !tbaa !12
  %.sroa.24.0..sroa_idx152 = getelementptr inbounds i8, ptr %21, i64 64
  store float 5.000000e-01, ptr %.sroa.24.0..sroa_idx152, align 8, !tbaa !12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(32) %13) #10
  %229 = invoke noundef i32 @_Z8priorboxSt6vectorI6TensorSaIS0_EE17PriorBoxParamSpecS0_P8ArchInfo(ptr noundef nonnull %20, ptr noundef nonnull byval(%struct.PriorBoxParamSpec) align 8 %21, ptr noundef nonnull %22, ptr noundef nonnull @_ZL18UT_SERIAL_ARCHINFO)
          to label %230 unwind label %243

230:                                              ; preds = %228
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #10
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #10
  %.not283 = icmp eq i32 %229, 0
  br i1 %.not283, label %245, label %231

231:                                              ; preds = %230
  %232 = call i64 (i64, ...) @syscall(i64 noundef 186) #10
  %233 = trunc i64 %232 to i32
  %234 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %233)
  %235 = load ptr, ptr @stdout, align 8, !tbaa !5
  %236 = call i32 @fflush(ptr noundef %235)
  %237 = call ptr @ee2str(i32 noundef %229)
  %238 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %237)
  %239 = load ptr, ptr @stdout, align 8, !tbaa !5
  %240 = call i32 @fflush(ptr noundef %239)
  call void @exit(i32 noundef 1) #11
  unreachable

241:                                              ; preds = %227
  %242 = landingpad { ptr, i32 }
          cleanup
  br label %312

243:                                              ; preds = %228
  %244 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #10
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #10
  br label %312

245:                                              ; preds = %230
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 8 dereferenceable(32) %12) #10
  %246 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %23, i32 noundef 1)
          to label %247 unwind label %274

247:                                              ; preds = %245
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull align 8 dereferenceable(32) %13) #10
  %248 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %24, i32 noundef 1)
          to label %249 unwind label %276

249:                                              ; preds = %247
  invoke void @_Z10ut_check_vPvS_j8DataTypef(ptr noundef %246, ptr noundef %248, i32 noundef %183, i32 noundef %2, float noundef 0x3FA99999A0000000)
          to label %250 unwind label %276

250:                                              ; preds = %249
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #10
  %251 = invoke noundef double @_Z10ut_time_msv()
          to label %.preheader unwind label %279

.preheader:                                       ; preds = %250
  %.sroa.8.0..sroa_idx64 = getelementptr inbounds i8, ptr %26, i64 4
  %.sroa.9.0..sroa_idx70 = getelementptr inbounds i8, ptr %26, i64 8
  %.sroa.10.0..sroa_idx76 = getelementptr inbounds i8, ptr %26, i64 12
  %.sroa.11.0..sroa_idx82 = getelementptr inbounds i8, ptr %26, i64 16
  %.sroa.12.0..sroa_idx88 = getelementptr inbounds i8, ptr %26, i64 20
  %.sroa.13.0..sroa_idx94 = getelementptr inbounds i8, ptr %26, i64 24
  %.sroa.15.0..sroa_idx100 = getelementptr inbounds i8, ptr %26, i64 28
  %.sroa.16.0..sroa_idx106 = getelementptr inbounds i8, ptr %26, i64 32
  %.sroa.20.0..sroa_idx130 = getelementptr inbounds i8, ptr %26, i64 48
  %.sroa.21.0..sroa_idx136 = getelementptr inbounds i8, ptr %26, i64 52
  %.sroa.22.0..sroa_idx142 = getelementptr inbounds i8, ptr %26, i64 56
  %.sroa.23.0..sroa_idx148 = getelementptr inbounds i8, ptr %26, i64 60
  %.sroa.24.0..sroa_idx154 = getelementptr inbounds i8, ptr %26, i64 64
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %25, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %281 unwind label %294

252:                                              ; preds = %283
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %25, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %253 unwind label %294

253:                                              ; preds = %252
  store float %69, ptr %26, align 8
  store float %.1, ptr %.sroa.8.0..sroa_idx64, align 4, !tbaa !9
  store float %73, ptr %.sroa.9.0..sroa_idx70, align 8
  store float %.1240, ptr %.sroa.10.0..sroa_idx76, align 4, !tbaa !9
  store float %96, ptr %.sroa.11.0..sroa_idx82, align 8
  store float %.0308, ptr %.sroa.12.0..sroa_idx88, align 4, !tbaa !9
  store i32 %76, ptr %.sroa.13.0..sroa_idx94, align 8, !tbaa !10
  store i32 %79, ptr %.sroa.15.0..sroa_idx100, align 4, !tbaa !10
  store <4 x float> <float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FC99999A0000000, float 0x3FC99999A0000000>, ptr %.sroa.16.0..sroa_idx106, align 8
  store i32 %62, ptr %.sroa.20.0..sroa_idx130, align 8, !tbaa !10
  store i32 %65, ptr %.sroa.21.0..sroa_idx136, align 4, !tbaa !10
  store float %83, ptr %.sroa.22.0..sroa_idx142, align 8, !tbaa !12
  store float %83, ptr %.sroa.23.0..sroa_idx148, align 4, !tbaa !12
  store float 5.000000e-01, ptr %.sroa.24.0..sroa_idx154, align 8, !tbaa !12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull align 8 dereferenceable(32) %12) #10
  %254 = invoke noundef i32 @_Z8priorboxSt6vectorI6TensorSaIS0_EE17PriorBoxParamSpecS0_P8ArchInfo(ptr noundef nonnull %25, ptr noundef nonnull byval(%struct.PriorBoxParamSpec) align 8 %26, ptr noundef nonnull %27, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %255 unwind label %296

255:                                              ; preds = %253
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #10
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #10
  %.not302.1 = icmp eq i32 %254, 0
  br i1 %.not302.1, label %256, label %284

256:                                              ; preds = %255
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %25, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %257 unwind label %294

257:                                              ; preds = %256
  store float %69, ptr %26, align 8
  store float %.1, ptr %.sroa.8.0..sroa_idx64, align 4, !tbaa !9
  store float %73, ptr %.sroa.9.0..sroa_idx70, align 8
  store float %.1240, ptr %.sroa.10.0..sroa_idx76, align 4, !tbaa !9
  store float %96, ptr %.sroa.11.0..sroa_idx82, align 8
  store float %.0308, ptr %.sroa.12.0..sroa_idx88, align 4, !tbaa !9
  store i32 %76, ptr %.sroa.13.0..sroa_idx94, align 8, !tbaa !10
  store i32 %79, ptr %.sroa.15.0..sroa_idx100, align 4, !tbaa !10
  store <4 x float> <float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FC99999A0000000, float 0x3FC99999A0000000>, ptr %.sroa.16.0..sroa_idx106, align 8
  store i32 %62, ptr %.sroa.20.0..sroa_idx130, align 8, !tbaa !10
  store i32 %65, ptr %.sroa.21.0..sroa_idx136, align 4, !tbaa !10
  store float %83, ptr %.sroa.22.0..sroa_idx142, align 8, !tbaa !12
  store float %83, ptr %.sroa.23.0..sroa_idx148, align 4, !tbaa !12
  store float 5.000000e-01, ptr %.sroa.24.0..sroa_idx154, align 8, !tbaa !12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull align 8 dereferenceable(32) %12) #10
  %258 = invoke noundef i32 @_Z8priorboxSt6vectorI6TensorSaIS0_EE17PriorBoxParamSpecS0_P8ArchInfo(ptr noundef nonnull %25, ptr noundef nonnull byval(%struct.PriorBoxParamSpec) align 8 %26, ptr noundef nonnull %27, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %259 unwind label %296

259:                                              ; preds = %257
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #10
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #10
  %.not302.2 = icmp eq i32 %258, 0
  br i1 %.not302.2, label %260, label %284

260:                                              ; preds = %259
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %25, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %261 unwind label %294

261:                                              ; preds = %260
  store float %69, ptr %26, align 8
  store float %.1, ptr %.sroa.8.0..sroa_idx64, align 4, !tbaa !9
  store float %73, ptr %.sroa.9.0..sroa_idx70, align 8
  store float %.1240, ptr %.sroa.10.0..sroa_idx76, align 4, !tbaa !9
  store float %96, ptr %.sroa.11.0..sroa_idx82, align 8
  store float %.0308, ptr %.sroa.12.0..sroa_idx88, align 4, !tbaa !9
  store i32 %76, ptr %.sroa.13.0..sroa_idx94, align 8, !tbaa !10
  store i32 %79, ptr %.sroa.15.0..sroa_idx100, align 4, !tbaa !10
  store <4 x float> <float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FC99999A0000000, float 0x3FC99999A0000000>, ptr %.sroa.16.0..sroa_idx106, align 8
  store i32 %62, ptr %.sroa.20.0..sroa_idx130, align 8, !tbaa !10
  store i32 %65, ptr %.sroa.21.0..sroa_idx136, align 4, !tbaa !10
  store float %83, ptr %.sroa.22.0..sroa_idx142, align 8, !tbaa !12
  store float %83, ptr %.sroa.23.0..sroa_idx148, align 4, !tbaa !12
  store float 5.000000e-01, ptr %.sroa.24.0..sroa_idx154, align 8, !tbaa !12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull align 8 dereferenceable(32) %12) #10
  %262 = invoke noundef i32 @_Z8priorboxSt6vectorI6TensorSaIS0_EE17PriorBoxParamSpecS0_P8ArchInfo(ptr noundef nonnull %25, ptr noundef nonnull byval(%struct.PriorBoxParamSpec) align 8 %26, ptr noundef nonnull %27, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %263 unwind label %296

263:                                              ; preds = %261
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #10
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #10
  %.not302.3 = icmp eq i32 %262, 0
  br i1 %.not302.3, label %264, label %284

264:                                              ; preds = %263
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %25, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %265 unwind label %294

265:                                              ; preds = %264
  store float %69, ptr %26, align 8
  store float %.1, ptr %.sroa.8.0..sroa_idx64, align 4, !tbaa !9
  store float %73, ptr %.sroa.9.0..sroa_idx70, align 8
  store float %.1240, ptr %.sroa.10.0..sroa_idx76, align 4, !tbaa !9
  store float %96, ptr %.sroa.11.0..sroa_idx82, align 8
  store float %.0308, ptr %.sroa.12.0..sroa_idx88, align 4, !tbaa !9
  store i32 %76, ptr %.sroa.13.0..sroa_idx94, align 8, !tbaa !10
  store i32 %79, ptr %.sroa.15.0..sroa_idx100, align 4, !tbaa !10
  store <4 x float> <float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FC99999A0000000, float 0x3FC99999A0000000>, ptr %.sroa.16.0..sroa_idx106, align 8
  store i32 %62, ptr %.sroa.20.0..sroa_idx130, align 8, !tbaa !10
  store i32 %65, ptr %.sroa.21.0..sroa_idx136, align 4, !tbaa !10
  store float %83, ptr %.sroa.22.0..sroa_idx142, align 8, !tbaa !12
  store float %83, ptr %.sroa.23.0..sroa_idx148, align 4, !tbaa !12
  store float 5.000000e-01, ptr %.sroa.24.0..sroa_idx154, align 8, !tbaa !12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull align 8 dereferenceable(32) %12) #10
  %266 = invoke noundef i32 @_Z8priorboxSt6vectorI6TensorSaIS0_EE17PriorBoxParamSpecS0_P8ArchInfo(ptr noundef nonnull %25, ptr noundef nonnull byval(%struct.PriorBoxParamSpec) align 8 %26, ptr noundef nonnull %27, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %267 unwind label %296

267:                                              ; preds = %265
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #10
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #10
  %.not302.4 = icmp eq i32 %266, 0
  br i1 %.not302.4, label %268, label %284

268:                                              ; preds = %267
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %25, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %269 unwind label %294

269:                                              ; preds = %268
  store float %69, ptr %26, align 8
  store float %.1, ptr %.sroa.8.0..sroa_idx64, align 4, !tbaa !9
  store float %73, ptr %.sroa.9.0..sroa_idx70, align 8
  store float %.1240, ptr %.sroa.10.0..sroa_idx76, align 4, !tbaa !9
  store float %96, ptr %.sroa.11.0..sroa_idx82, align 8
  store float %.0308, ptr %.sroa.12.0..sroa_idx88, align 4, !tbaa !9
  store i32 %76, ptr %.sroa.13.0..sroa_idx94, align 8, !tbaa !10
  store i32 %79, ptr %.sroa.15.0..sroa_idx100, align 4, !tbaa !10
  store <4 x float> <float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FC99999A0000000, float 0x3FC99999A0000000>, ptr %.sroa.16.0..sroa_idx106, align 8
  store i32 %62, ptr %.sroa.20.0..sroa_idx130, align 8, !tbaa !10
  store i32 %65, ptr %.sroa.21.0..sroa_idx136, align 4, !tbaa !10
  store float %83, ptr %.sroa.22.0..sroa_idx142, align 8, !tbaa !12
  store float %83, ptr %.sroa.23.0..sroa_idx148, align 4, !tbaa !12
  store float 5.000000e-01, ptr %.sroa.24.0..sroa_idx154, align 8, !tbaa !12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull align 8 dereferenceable(32) %12) #10
  %270 = invoke noundef i32 @_Z8priorboxSt6vectorI6TensorSaIS0_EE17PriorBoxParamSpecS0_P8ArchInfo(ptr noundef nonnull %25, ptr noundef nonnull byval(%struct.PriorBoxParamSpec) align 8 %26, ptr noundef nonnull %27, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %271 unwind label %296

271:                                              ; preds = %269
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #10
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #10
  %.not302.5 = icmp eq i32 %270, 0
  br i1 %.not302.5, label %272, label %284

272:                                              ; preds = %271
  %273 = invoke noundef double @_Z10ut_time_msv()
          to label %298 unwind label %307

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

276:                                              ; preds = %249, %247
  %277 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #10
  br label %278

278:                                              ; preds = %276, %274
  %.pn284 = phi { ptr, i32 } [ %277, %276 ], [ %275, %274 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #10
  br label %312

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

281:                                              ; preds = %.preheader
  store float %69, ptr %26, align 8
  store float %.1, ptr %.sroa.8.0..sroa_idx64, align 4, !tbaa !9
  store float %73, ptr %.sroa.9.0..sroa_idx70, align 8
  store float %.1240, ptr %.sroa.10.0..sroa_idx76, align 4, !tbaa !9
  store float %96, ptr %.sroa.11.0..sroa_idx82, align 8
  store float %.0308, ptr %.sroa.12.0..sroa_idx88, align 4, !tbaa !9
  store i32 %76, ptr %.sroa.13.0..sroa_idx94, align 8, !tbaa !10
  store i32 %79, ptr %.sroa.15.0..sroa_idx100, align 4, !tbaa !10
  store <4 x float> <float 0x3FB99999A0000000, float 0x3FB99999A0000000, float 0x3FC99999A0000000, float 0x3FC99999A0000000>, ptr %.sroa.16.0..sroa_idx106, align 8
  store i32 %62, ptr %.sroa.20.0..sroa_idx130, align 8, !tbaa !10
  store i32 %65, ptr %.sroa.21.0..sroa_idx136, align 4, !tbaa !10
  store float %83, ptr %.sroa.22.0..sroa_idx142, align 8, !tbaa !12
  store float %83, ptr %.sroa.23.0..sroa_idx148, align 4, !tbaa !12
  store float 5.000000e-01, ptr %.sroa.24.0..sroa_idx154, align 8, !tbaa !12
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull align 8 dereferenceable(32) %12) #10
  %282 = invoke noundef i32 @_Z8priorboxSt6vectorI6TensorSaIS0_EE17PriorBoxParamSpecS0_P8ArchInfo(ptr noundef nonnull %25, ptr noundef nonnull byval(%struct.PriorBoxParamSpec) align 8 %26, ptr noundef nonnull %27, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %283 unwind label %296

283:                                              ; preds = %281
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #10
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #10
  %.not302 = icmp eq i32 %282, 0
  br i1 %.not302, label %252, label %284

284:                                              ; preds = %271, %267, %263, %259, %255, %283
  %.lcssa310 = phi i32 [ %282, %283 ], [ %254, %255 ], [ %258, %259 ], [ %262, %263 ], [ %266, %267 ], [ %270, %271 ]
  %285 = call i64 (i64, ...) @syscall(i64 noundef 186) #10
  %286 = trunc i64 %285 to i32
  %287 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %286)
  %288 = load ptr, ptr @stdout, align 8, !tbaa !5
  %289 = call i32 @fflush(ptr noundef %288)
  %290 = call ptr @ee2str(i32 noundef %.lcssa310)
  %291 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %290)
  %292 = load ptr, ptr @stdout, align 8, !tbaa !5
  %293 = call i32 @fflush(ptr noundef %292)
  call void @exit(i32 noundef 1) #11
  unreachable

294:                                              ; preds = %268, %264, %260, %256, %252, %.preheader
  %295 = landingpad { ptr, i32 }
          cleanup
  br label %312

296:                                              ; preds = %269, %265, %261, %257, %253, %281
  %297 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #10
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #10
  br label %312

298:                                              ; preds = %272
  %299 = fsub double %273, %251
  %300 = fdiv double %299, 6.000000e+00
  %.not286 = icmp ne i32 %76, 0
  %301 = zext i1 %.not286 to i32
  %spec.select304 = shl nuw nsw i32 %.0247, %301
  %302 = add nuw nsw i32 %spec.select304, 2
  %303 = mul nuw nsw i32 %302, %.1244
  call void @llvm.lifetime.start.p0(i64 150, ptr nonnull %28) #10
  call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %29) #10
  %304 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %29, ptr noundef nonnull dereferenceable(1) @.str.3, i32 noundef 1, i32 noundef %47, i32 noundef %50, i32 noundef %53, i32 noundef 2, i32 noundef 4, i32 noundef %303, i32 noundef 1, i32 noundef 2, i32 noundef %92) #10
  %305 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %28, ptr noundef nonnull dereferenceable(1) @.str.4, ptr noundef nonnull @.str.5, ptr noundef nonnull %29) #10
  %306 = uitofp i32 %183 to double
  invoke void @_Z6ut_log8DataTypePcdd(i32 noundef %2, ptr noundef nonnull %28, double noundef %306, double noundef %300)
          to label %309 unwind label %310

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

309:                                              ; preds = %298
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %29) #10
  call void @llvm.lifetime.end.p0(i64 150, ptr nonnull %28) #10
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %16) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #10
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %11) #10
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %10) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #10
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #10
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #10
  ret i32 0

310:                                              ; preds = %298
  %311 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %29) #10
  call void @llvm.lifetime.end.p0(i64 150, ptr nonnull %28) #10
  br label %312

312:                                              ; preds = %207, %278, %225, %223, %243, %241, %307, %310, %294, %296, %279, %205
  %.pn289.pn.pn.pn = phi { ptr, i32 } [ %206, %205 ], [ %.pn284, %278 ], [ %208, %207 ], [ %226, %225 ], [ %224, %223 ], [ %244, %243 ], [ %242, %241 ], [ %280, %279 ], [ %297, %296 ], [ %295, %294 ], [ %311, %310 ], [ %308, %307 ]
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %16) #10
  br label %313

313:                                              ; preds = %174, %176, %312, %203
  %.pn289.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn289.pn.pn.pn, %312 ], [ %204, %203 ], [ %177, %176 ], [ %175, %174 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #10
  br label %314

314:                                              ; preds = %313, %172
  %.pn289.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn289.pn.pn.pn.pn, %313 ], [ %173, %172 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #10
  br label %315

315:                                              ; preds = %314, %170
  %.pn289.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn289.pn.pn.pn.pn.pn, %314 ], [ %171, %170 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #10
  br label %316

316:                                              ; preds = %315, %168
  %.pn289.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn289.pn.pn.pn.pn.pn.pn, %315 ], [ %169, %168 ]
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %11) #10
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %10) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #10
  br label %317

317:                                              ; preds = %316, %166
  %.pn289.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn289.pn.pn.pn.pn.pn.pn.pn, %316 ], [ %167, %166 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #10
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #10
  br label %318

318:                                              ; preds = %317, %164
  %.pn289.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn289.pn.pn.pn.pn.pn.pn.pn.pn, %317 ], [ %165, %164 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #10
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #10
  br label %319

319:                                              ; preds = %318, %162
  %.pn289.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn289.pn.pn.pn.pn.pn.pn.pn.pn.pn, %318 ], [ %163, %162 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #10
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #10
  br label %320

320:                                              ; preds = %319, %160
  %.pn289.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn289.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %319 ], [ %161, %160 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #10
  resume { ptr, i32 } %.pn289.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn
}

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

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

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

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

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

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

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIP6TensorSaIS1_EEC2EmRKS2_(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #0 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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #6 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6TensorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #6 align 2

declare noundef i32 @_Z26priorbox_infer_output_sizeSt6vectorIP6TensorSaIS1_EE17PriorBoxParamSpecS1_P8ArchInfo(ptr noundef, ptr noundef byval(%struct.PriorBoxParamSpec) align 8, ptr noundef, ptr noundef) local_unnamed_addr #8

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

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

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

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

; 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: mustprogress uwtable
declare dso_local noundef i32 @_ZN6Tensor6lengthEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0 align 2

declare noundef i32 @_Z8priorboxSt6vectorI6TensorSaIS0_EE17PriorBoxParamSpecS0_P8ArchInfo(ptr noundef, ptr noundef byval(%struct.PriorBoxParamSpec) align 8, ptr noundef, ptr noundef) local_unnamed_addr #8

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

; Function Attrs: 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 #7 align 2

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

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

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

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

declare noundef double @_Z10ut_time_msv() local_unnamed_addr #8

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

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

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

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


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