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

; 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.RNNParamSpec = type { i32, i32, i32, i32, float, float, i8, float, i32 }
%struct.TensorDesc = type { i32, i32, i32, [20 x i32] }
%class.Tensor = type { %"class.std::shared_ptr", %"class.std::shared_ptr.0" }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::shared_ptr.0" = type { %"class.std::__shared_ptr.1" }
%"class.std::__shared_ptr.1" = type { ptr, %"class.std::__shared_count" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<TensorDesc, std::allocator<TensorDesc>>::_Vector_impl" }
%"struct.std::_Vector_base<TensorDesc, std::allocator<TensorDesc>>::_Vector_impl" = type { %"struct.std::_Vector_base<TensorDesc, std::allocator<TensorDesc>>::_Vector_impl_data" }
%"struct.std::_Vector_base<TensorDesc, std::allocator<TensorDesc>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator" = type { i8 }
%"class.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = 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.5" = type { i8 }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = 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.10" = type { i8 }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.15" = type { i8 }

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_Z7rnnTestiPPc8DataType7RNNMode(i32 noundef %0, ptr noundef %1, i32 noundef %2, i32 noundef %3) #0 personality ptr @__gxx_personality_v0 {
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca %struct.RNNParamSpec, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca float, align 4
  %21 = alloca i32, align 4
  %22 = alloca %struct.TensorDesc, align 4
  %23 = alloca %class.Tensor, align 8
  %24 = alloca %struct.TensorDesc, align 8
  %25 = alloca ptr, align 8
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca ptr, align 8
  %29 = alloca %class.Tensor, align 8
  %30 = alloca %struct.TensorDesc, align 8
  %31 = alloca i32, align 4
  %32 = alloca %"class.std::vector", align 8
  %33 = alloca %"class.std::allocator", align 1
  %34 = alloca %"class.std::vector", align 8
  %35 = alloca %"class.std::allocator", align 1
  %36 = alloca %struct.TensorDesc, align 4
  %37 = alloca %struct.TensorDesc, align 4
  %38 = alloca %struct.TensorDesc, align 4
  %39 = alloca %struct.TensorDesc, align 4
  %40 = alloca %"class.std::vector.3", align 8
  %41 = alloca %"class.std::allocator.5", align 1
  %42 = alloca %"class.std::vector.3", align 8
  %43 = alloca %"class.std::allocator.5", align 1
  %44 = alloca i32, align 4
  %45 = alloca %struct.TensorDesc, align 8
  %46 = alloca ptr, align 8
  %47 = alloca %struct.TensorDesc, align 8
  %48 = alloca %class.Tensor, align 8
  %49 = alloca %struct.TensorDesc, align 8
  %50 = alloca i32, align 4
  %51 = alloca %struct.TensorDesc, align 8
  %52 = alloca ptr, align 8
  %53 = alloca %struct.TensorDesc, align 8
  %54 = alloca %class.Tensor, align 8
  %55 = alloca %struct.TensorDesc, align 8
  %56 = alloca %class.Tensor, align 8
  %57 = alloca %class.Tensor, align 8
  %58 = alloca %"class.std::vector.8", align 8
  %59 = alloca ptr, align 8
  %60 = alloca %"class.std::allocator.10", align 1
  %61 = alloca %"class.std::vector.8", align 8
  %62 = alloca ptr, align 8
  %63 = alloca %"class.std::allocator.10", align 1
  %64 = alloca i32, align 4
  %65 = alloca %"class.std::vector.8", align 8
  %66 = alloca %struct.RNNParamSpec, align 8
  %67 = alloca %"class.std::vector.8", align 8
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca %struct.TensorDesc, align 4
  %71 = alloca %struct.TensorDesc, align 8
  %72 = alloca i32, align 4
  %73 = alloca %class.Tensor, align 8
  %74 = alloca %class.Tensor, align 8
  %75 = alloca %class.Tensor, align 8
  %76 = alloca %struct.RNNParamSpec, align 8
  %77 = alloca i32, align 4
  %78 = alloca %"class.std::vector.13", align 8
  %79 = alloca %"class.std::allocator.15", align 1
  %80 = alloca i32, align 4
  %81 = alloca %"class.std::vector.3", align 8
  %82 = alloca %struct.RNNParamSpec, align 8
  %83 = alloca i32, align 4
  %84 = alloca %"class.std::vector.3", align 8
  %85 = alloca %"class.std::allocator.5", align 1
  %86 = alloca %"class.std::vector.3", align 8
  %87 = alloca %"class.std::allocator.5", align 1
  %88 = alloca %"class.std::vector.8", align 8
  %89 = alloca %"class.std::allocator.10", align 1
  %90 = alloca %"class.std::vector.8", align 8
  %91 = alloca %"class.std::allocator.10", align 1
  %92 = alloca i32, align 4
  %93 = alloca %struct.TensorDesc, align 8
  %94 = alloca %struct.TensorDesc, align 8
  %95 = alloca %class.Tensor, align 8
  %96 = alloca %struct.TensorDesc, align 8
  %97 = alloca i32, align 4
  %98 = alloca %"class.std::vector.3", align 8
  %99 = alloca %struct.RNNParamSpec, align 8
  %100 = alloca %class.Tensor, align 8
  %101 = alloca %"class.std::vector.8", align 8
  %102 = alloca i32, align 4
  %103 = alloca i32, align 4
  %104 = alloca %"class.std::vector.3", align 8
  %105 = alloca %struct.RNNParamSpec, align 8
  %106 = alloca %class.Tensor, align 8
  %107 = alloca %"class.std::vector.8", align 8
  %108 = alloca i32, align 4
  %109 = alloca %"class.std::vector.3", align 8
  %110 = alloca %"class.std::allocator.5", align 1
  %111 = alloca %"class.std::vector.3", align 8
  %112 = alloca %"class.std::allocator.5", align 1
  %113 = alloca %"class.std::vector.3", align 8
  %114 = alloca %"class.std::allocator.5", align 1
  %115 = alloca %"class.std::vector.3", align 8
  %116 = alloca %"class.std::allocator.5", align 1
  %117 = alloca %class.Tensor, align 8
  %118 = alloca i32, align 4
  %119 = alloca %"class.std::vector.3", align 8
  %120 = alloca %"class.std::vector.3", align 8
  %121 = alloca %"class.std::vector.3", align 8
  %122 = alloca %struct.RNNParamSpec, align 8
  %123 = alloca %"class.std::vector.3", align 8
  %124 = alloca %"class.std::vector.3", align 8
  %125 = alloca i32, align 4
  %126 = alloca %class.Tensor, align 8
  %127 = alloca i32, align 4
  %128 = alloca %"class.std::vector.3", align 8
  %129 = alloca %"class.std::vector.3", align 8
  %130 = alloca %"class.std::vector.3", align 8
  %131 = alloca %struct.RNNParamSpec, align 8
  %132 = alloca %"class.std::vector.3", align 8
  %133 = alloca %"class.std::vector.3", align 8
  %134 = alloca i32, align 4
  %135 = alloca %class.Tensor, align 8
  %136 = alloca %class.Tensor, align 8
  %137 = alloca double, align 8
  %138 = alloca i32, align 4
  %139 = alloca i32, align 4
  %140 = alloca %"class.std::vector.3", align 8
  %141 = alloca %"class.std::vector.3", align 8
  %142 = alloca %"class.std::vector.3", align 8
  %143 = alloca %struct.RNNParamSpec, align 8
  %144 = alloca %"class.std::vector.3", align 8
  %145 = alloca %"class.std::vector.3", align 8
  %146 = alloca i32, align 4
  %147 = alloca double, align 8
  %148 = alloca double, align 8
  %149 = alloca [150 x i8], align 16
  %150 = alloca [120 x i8], align 16
  %151 = alloca double, align 8
  %152 = alloca double, align 8
  store i32 %0, ptr %6, align 4, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !9
  store i32 %2, ptr %8, align 4, !tbaa !11
  store i32 %3, ptr %9, align 4, !tbaa !13
  %153 = load i32, ptr %6, align 4, !tbaa !5
  %154 = icmp eq i32 %153, 5
  br i1 %154, label %165, label %155

155:                                              ; preds = %4
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #11
  %156 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %157 = trunc i64 %156 to i32
  store i32 %157, ptr %10, align 4, !tbaa !5
  %158 = load i32, ptr %10, align 4, !tbaa !5
  %159 = call i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %158)
  %160 = load ptr, ptr @stdout, align 8, !tbaa !9
  %161 = call i32 @fflush(ptr noundef %160)
  %162 = call i32 (ptr, ...) @printf(ptr noundef @.str.1)
  %163 = load ptr, ptr @stdout, align 8, !tbaa !9
  %164 = call i32 @fflush(ptr noundef %163)
  call void @exit(i32 noundef 1) #12
  unreachable

165:                                              ; preds = %4
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #11
  %166 = load ptr, ptr %7, align 8, !tbaa !9
  %167 = getelementptr inbounds ptr, ptr %166, i64 1
  %168 = load ptr, ptr %167, align 8, !tbaa !9
  %169 = call i32 @atoi(ptr noundef %168) #13
  store i32 %169, ptr %11, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #11
  %170 = load ptr, ptr %7, align 8, !tbaa !9
  %171 = getelementptr inbounds ptr, ptr %170, i64 2
  %172 = load ptr, ptr %171, align 8, !tbaa !9
  %173 = call i32 @atoi(ptr noundef %172) #13
  store i32 %173, ptr %12, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #11
  %174 = load ptr, ptr %7, align 8, !tbaa !9
  %175 = getelementptr inbounds ptr, ptr %174, i64 3
  %176 = load ptr, ptr %175, align 8, !tbaa !9
  %177 = call i32 @atoi(ptr noundef %176) #13
  store i32 %177, ptr %13, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #11
  %178 = load ptr, ptr %7, align 8, !tbaa !9
  %179 = getelementptr inbounds ptr, ptr %178, i64 4
  %180 = load ptr, ptr %179, align 8, !tbaa !9
  %181 = call i32 @atoi(ptr noundef %180) #13
  store i32 %181, ptr %14, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 36, ptr %15) #11
  %182 = load i32, ptr %9, align 4, !tbaa !13
  %183 = getelementptr inbounds %struct.RNNParamSpec, ptr %15, i32 0, i32 0
  store i32 %182, ptr %183, align 4, !tbaa !15
  %184 = load i32, ptr %12, align 4, !tbaa !5
  %185 = getelementptr inbounds %struct.RNNParamSpec, ptr %15, i32 0, i32 2
  store i32 %184, ptr %185, align 4, !tbaa !20
  %186 = getelementptr inbounds %struct.RNNParamSpec, ptr %15, i32 0, i32 6
  store i8 0, ptr %186, align 4, !tbaa !21
  %187 = load i32, ptr %14, align 4, !tbaa !5
  %188 = getelementptr inbounds %struct.RNNParamSpec, ptr %15, i32 0, i32 1
  store i32 %187, ptr %188, align 4, !tbaa !22
  %189 = getelementptr inbounds %struct.RNNParamSpec, ptr %15, i32 0, i32 3
  store i32 0, ptr %189, align 4, !tbaa !23
  %190 = getelementptr inbounds %struct.RNNParamSpec, ptr %15, i32 0, i32 7
  store float 1.000000e+00, ptr %190, align 4, !tbaa !24
  %191 = getelementptr inbounds %struct.RNNParamSpec, ptr %15, i32 0, i32 8
  store i32 6, ptr %191, align 4, !tbaa !25
  %192 = getelementptr inbounds %struct.RNNParamSpec, ptr %15, i32 0, i32 4
  store float 0.000000e+00, ptr %192, align 4, !tbaa !26
  %193 = getelementptr inbounds %struct.RNNParamSpec, ptr %15, i32 0, i32 5
  store float 0.000000e+00, ptr %193, align 4, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #11
  store i32 1, ptr %16, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #11
  store i32 1, ptr %17, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #11
  store i32 0, ptr %18, align 4, !tbaa !5
  %194 = load i32, ptr %9, align 4, !tbaa !13
  switch i32 %194, label %201 [
    i32 1, label %195
    i32 2, label %197
    i32 3, label %198
  ]

195:                                              ; preds = %165
  %196 = getelementptr inbounds %struct.RNNParamSpec, ptr %15, i32 0, i32 3
  store i32 1024, ptr %196, align 4, !tbaa !23
  store i32 4, ptr %18, align 4, !tbaa !5
  br label %202

197:                                              ; preds = %165
  store i32 3, ptr %18, align 4, !tbaa !5
  br label %202

198:                                              ; preds = %165
  store i32 3, ptr %18, align 4, !tbaa !5
  %199 = load i32, ptr %17, align 4, !tbaa !5
  %200 = add i32 %199, 1
  store i32 %200, ptr %17, align 4, !tbaa !5
  br label %202

201:                                              ; preds = %165
  store i32 1, ptr %5, align 4
  store i32 1, ptr %19, align 4
  br label %1130

202:                                              ; preds = %198, %197, %195
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #11
  store float 1.000000e+01, ptr %20, align 4, !tbaa !28
  %203 = getelementptr inbounds %struct.RNNParamSpec, ptr %15, i32 0, i32 3
  %204 = load i32, ptr %203, align 4, !tbaa !23
  %205 = icmp sgt i32 %204, 0
  br i1 %205, label %206, label %211

206:                                              ; preds = %202
  %207 = load i32, ptr %16, align 4, !tbaa !5
  %208 = add i32 %207, 1
  store i32 %208, ptr %16, align 4, !tbaa !5
  %209 = load i32, ptr %17, align 4, !tbaa !5
  %210 = add i32 %209, 1
  store i32 %210, ptr %17, align 4, !tbaa !5
  store float 4.000000e+01, ptr %20, align 4, !tbaa !28
  br label %211

211:                                              ; preds = %206, %202
  %212 = getelementptr inbounds %struct.RNNParamSpec, ptr %15, i32 0, i32 0
  %213 = load i32, ptr %212, align 4, !tbaa !15
  %214 = icmp ne i32 %213, 1
  br i1 %214, label %215, label %218

215:                                              ; preds = %211
  %216 = getelementptr inbounds %struct.RNNParamSpec, ptr %15, i32 0, i32 3
  store i32 0, ptr %216, align 4, !tbaa !23
  %217 = getelementptr inbounds %struct.RNNParamSpec, ptr %15, i32 0, i32 7
  store float 0.000000e+00, ptr %217, align 4, !tbaa !24
  br label %218

218:                                              ; preds = %215, %211
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #11
  %219 = getelementptr inbounds %struct.RNNParamSpec, ptr %15, i32 0, i32 3
  %220 = load i32, ptr %219, align 4, !tbaa !23
  %221 = icmp sgt i32 %220, 0
  br i1 %221, label %222, label %225

222:                                              ; preds = %218
  %223 = getelementptr inbounds %struct.RNNParamSpec, ptr %15, i32 0, i32 3
  %224 = load i32, ptr %223, align 4, !tbaa !23
  br label %228

225:                                              ; preds = %218
  %226 = getelementptr inbounds %struct.RNNParamSpec, ptr %15, i32 0, i32 1
  %227 = load i32, ptr %226, align 4, !tbaa !22
  br label %228

228:                                              ; preds = %225, %222
  %229 = phi i32 [ %224, %222 ], [ %227, %225 ]
  store i32 %229, ptr %21, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 92, ptr %22) #11
  %230 = load i32, ptr %8, align 4, !tbaa !11
  %231 = load i32, ptr %11, align 4, !tbaa !5
  %232 = load i32, ptr %12, align 4, !tbaa !5
  %233 = load i32, ptr %13, align 4, !tbaa !5
  call void @_Z9tensor3df8DataType10DataFormatjjj(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %22, i32 noundef %230, i32 noundef 15, i32 noundef %231, i32 noundef %232, i32 noundef %233)
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #11
  call void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %23, i32 noundef 1)
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %24, ptr align 4 %22, i64 92, i1 false), !tbaa.struct !29
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef byval(%struct.TensorDesc) align 8 %24)
          to label %234 unwind label %292

234:                                              ; preds = %228
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %235 unwind label %292

235:                                              ; preds = %234
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #11
  %236 = load i32, ptr %11, align 4, !tbaa !5
  %237 = load i32, ptr %12, align 4, !tbaa !5
  %238 = mul i32 %236, %237
  %239 = load i32, ptr %13, align 4, !tbaa !5
  %240 = mul i32 %238, %239
  store i32 %240, ptr %27, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #11
  %241 = load i32, ptr %27, align 4, !tbaa !5
  %242 = load i32, ptr %8, align 4, !tbaa !11
  %243 = invoke noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef %241, i32 noundef %242, i32 noundef 0)
          to label %244 unwind label %296

244:                                              ; preds = %235
  store ptr %243, ptr %28, align 8, !tbaa !9
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(32) %23) #11
  %245 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %29, i32 noundef 1)
          to label %246 unwind label %300

246:                                              ; preds = %244
  %247 = load ptr, ptr %28, align 8, !tbaa !9
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %30, ptr align 4 %22, i64 92, i1 false), !tbaa.struct !29
  %248 = invoke noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef byval(%struct.TensorDesc) align 8 %30)
          to label %249 unwind label %300

249:                                              ; preds = %246
  %250 = zext i32 %248 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %245, ptr noundef %247, i64 noundef %250)
          to label %251 unwind label %300

251:                                              ; preds = %249
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %32) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %33) #11
  call void @_ZNSaI10TensorDescEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #11
  invoke void @_ZNSt6vectorI10TensorDescSaIS0_EEC2EmRKS1_(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef 2, ptr noundef nonnull align 1 dereferenceable(1) %33)
          to label %252 unwind label %304

252:                                              ; preds = %251
  call void @_ZNSt15__new_allocatorI10TensorDescED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %34) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #11
  call void @_ZNSaI10TensorDescEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #11
  invoke void @_ZNSt6vectorI10TensorDescSaIS0_EEC2EmRKS1_(ptr noundef nonnull align 8 dereferenceable(24) %34, i64 noundef 2, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %253 unwind label %308

253:                                              ; preds = %252
  call void @_ZNSt15__new_allocatorI10TensorDescED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #11
  call void @llvm.lifetime.start.p0(i64 92, ptr %36) #11
  %254 = load i32, ptr %8, align 4, !tbaa !11
  %255 = load i32, ptr %18, align 4, !tbaa !5
  %256 = load i32, ptr %21, align 4, !tbaa !5
  %257 = mul i32 %255, %256
  %258 = load i32, ptr %13, align 4, !tbaa !5
  %259 = load i32, ptr %14, align 4, !tbaa !5
  %260 = add i32 %258, %259
  invoke void @_Z9tensor2df8DataType10DataFormatjj(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %36, i32 noundef %254, i32 noundef 17, i32 noundef %257, i32 noundef %260)
          to label %261 unwind label %312

261:                                              ; preds = %253
  %262 = call noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt6vectorI10TensorDescSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef 0) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %262, ptr align 4 %36, i64 92, i1 false), !tbaa.struct !29
  call void @llvm.lifetime.end.p0(i64 92, ptr %36) #11
  call void @llvm.lifetime.start.p0(i64 92, ptr %37) #11
  %263 = load i32, ptr %8, align 4, !tbaa !11
  %264 = getelementptr inbounds %struct.RNNParamSpec, ptr %15, i32 0, i32 1
  %265 = load i32, ptr %264, align 4, !tbaa !22
  %266 = getelementptr inbounds %struct.RNNParamSpec, ptr %15, i32 0, i32 3
  %267 = load i32, ptr %266, align 4, !tbaa !23
  invoke void @_Z9tensor2df8DataType10DataFormatjj(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %37, i32 noundef %263, i32 noundef 17, i32 noundef %265, i32 noundef %267)
          to label %268 unwind label %316

268:                                              ; preds = %261
  %269 = call noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt6vectorI10TensorDescSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef 1) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %269, ptr align 4 %37, i64 92, i1 false), !tbaa.struct !29
  call void @llvm.lifetime.end.p0(i64 92, ptr %37) #11
  call void @llvm.lifetime.start.p0(i64 92, ptr %38) #11
  %270 = load i32, ptr %8, align 4, !tbaa !11
  %271 = load i32, ptr %21, align 4, !tbaa !5
  %272 = load i32, ptr %18, align 4, !tbaa !5
  %273 = mul i32 %271, %272
  invoke void @_Z8tensor1d8DataTypej(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %38, i32 noundef %270, i32 noundef %273)
          to label %274 unwind label %320

274:                                              ; preds = %268
  %275 = call noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt6vectorI10TensorDescSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %34, i64 noundef 0) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %275, ptr align 4 %38, i64 92, i1 false), !tbaa.struct !29
  call void @llvm.lifetime.end.p0(i64 92, ptr %38) #11
  call void @llvm.lifetime.start.p0(i64 92, ptr %39) #11
  %276 = load i32, ptr %8, align 4, !tbaa !11
  %277 = getelementptr inbounds %struct.RNNParamSpec, ptr %15, i32 0, i32 1
  %278 = load i32, ptr %277, align 4, !tbaa !22
  invoke void @_Z8tensor1d8DataTypej(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %39, i32 noundef %276, i32 noundef %278)
          to label %279 unwind label %324

279:                                              ; preds = %274
  %280 = call noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt6vectorI10TensorDescSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %34, i64 noundef 1) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %280, ptr align 4 %39, i64 92, i1 false), !tbaa.struct !29
  call void @llvm.lifetime.end.p0(i64 92, ptr %39) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %40) #11
  %281 = load i32, ptr %16, align 4, !tbaa !5
  %282 = zext i32 %281 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %41) #11
  call void @_ZNSaI6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2EmRKS1_(ptr noundef nonnull align 8 dereferenceable(24) %40, i64 noundef %282, ptr noundef nonnull align 1 dereferenceable(1) %41)
          to label %283 unwind label %328

283:                                              ; preds = %279
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %42) #11
  %284 = load i32, ptr %17, align 4, !tbaa !5
  %285 = zext i32 %284 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #11
  call void @_ZNSaI6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2EmRKS1_(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef %285, ptr noundef nonnull align 1 dereferenceable(1) %43)
          to label %286 unwind label %332

286:                                              ; preds = %283
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #11
  store i32 0, ptr %44, align 4, !tbaa !5
  br label %287

287:                                              ; preds = %374, %286
  %288 = load i32, ptr %44, align 4, !tbaa !5
  %289 = load i32, ptr %16, align 4, !tbaa !5
  %290 = icmp ult i32 %288, %289
  br i1 %290, label %336, label %291

291:                                              ; preds = %287
  store i32 3, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #11
  br label %391

292:                                              ; preds = %234, %228
  %293 = landingpad { ptr, i32 }
          cleanup
  %294 = extractvalue { ptr, i32 } %293, 0
  store ptr %294, ptr %25, align 8
  %295 = extractvalue { ptr, i32 } %293, 1
  store i32 %295, ptr %26, align 4
  br label %1129

296:                                              ; preds = %235
  %297 = landingpad { ptr, i32 }
          cleanup
  %298 = extractvalue { ptr, i32 } %297, 0
  store ptr %298, ptr %25, align 8
  %299 = extractvalue { ptr, i32 } %297, 1
  store i32 %299, ptr %26, align 4
  br label %1128

300:                                              ; preds = %249, %246, %244
  %301 = landingpad { ptr, i32 }
          cleanup
  %302 = extractvalue { ptr, i32 } %301, 0
  store ptr %302, ptr %25, align 8
  %303 = extractvalue { ptr, i32 } %301, 1
  store i32 %303, ptr %26, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #11
  br label %1128

304:                                              ; preds = %251
  %305 = landingpad { ptr, i32 }
          cleanup
  %306 = extractvalue { ptr, i32 } %305, 0
  store ptr %306, ptr %25, align 8
  %307 = extractvalue { ptr, i32 } %305, 1
  store i32 %307, ptr %26, align 4
  call void @_ZNSt15__new_allocatorI10TensorDescED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #11
  br label %1127

308:                                              ; preds = %252
  %309 = landingpad { ptr, i32 }
          cleanup
  %310 = extractvalue { ptr, i32 } %309, 0
  store ptr %310, ptr %25, align 8
  %311 = extractvalue { ptr, i32 } %309, 1
  store i32 %311, ptr %26, align 4
  call void @_ZNSt15__new_allocatorI10TensorDescED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #11
  br label %1126

312:                                              ; preds = %253
  %313 = landingpad { ptr, i32 }
          cleanup
  %314 = extractvalue { ptr, i32 } %313, 0
  store ptr %314, ptr %25, align 8
  %315 = extractvalue { ptr, i32 } %313, 1
  store i32 %315, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 92, ptr %36) #11
  br label %1125

316:                                              ; preds = %261
  %317 = landingpad { ptr, i32 }
          cleanup
  %318 = extractvalue { ptr, i32 } %317, 0
  store ptr %318, ptr %25, align 8
  %319 = extractvalue { ptr, i32 } %317, 1
  store i32 %319, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 92, ptr %37) #11
  br label %1125

320:                                              ; preds = %268
  %321 = landingpad { ptr, i32 }
          cleanup
  %322 = extractvalue { ptr, i32 } %321, 0
  store ptr %322, ptr %25, align 8
  %323 = extractvalue { ptr, i32 } %321, 1
  store i32 %323, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 92, ptr %38) #11
  br label %1125

324:                                              ; preds = %274
  %325 = landingpad { ptr, i32 }
          cleanup
  %326 = extractvalue { ptr, i32 } %325, 0
  store ptr %326, ptr %25, align 8
  %327 = extractvalue { ptr, i32 } %325, 1
  store i32 %327, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 92, ptr %39) #11
  br label %1125

328:                                              ; preds = %279
  %329 = landingpad { ptr, i32 }
          cleanup
  %330 = extractvalue { ptr, i32 } %329, 0
  store ptr %330, ptr %25, align 8
  %331 = extractvalue { ptr, i32 } %329, 1
  store i32 %331, ptr %26, align 4
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #11
  br label %1124

332:                                              ; preds = %283
  %333 = landingpad { ptr, i32 }
          cleanup
  %334 = extractvalue { ptr, i32 } %333, 0
  store ptr %334, ptr %25, align 8
  %335 = extractvalue { ptr, i32 } %333, 1
  store i32 %335, ptr %26, align 4
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #11
  br label %1123

336:                                              ; preds = %287
  %337 = load i32, ptr %44, align 4, !tbaa !5
  %338 = zext i32 %337 to i64
  %339 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %40, i64 noundef %338) #11
  %340 = load i32, ptr %44, align 4, !tbaa !5
  %341 = zext i32 %340 to i64
  %342 = call noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt6vectorI10TensorDescSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %341) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %45, ptr align 4 %342, i64 92, i1 false), !tbaa.struct !29
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %339, ptr noundef byval(%struct.TensorDesc) align 8 %45)
          to label %343 unwind label %377

343:                                              ; preds = %336
  %344 = load i32, ptr %44, align 4, !tbaa !5
  %345 = zext i32 %344 to i64
  %346 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %40, i64 noundef %345) #11
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %346)
          to label %347 unwind label %377

347:                                              ; preds = %343
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #11
  %348 = load i32, ptr %44, align 4, !tbaa !5
  %349 = zext i32 %348 to i64
  %350 = call noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt6vectorI10TensorDescSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %349) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %47, ptr align 4 %350, i64 92, i1 false), !tbaa.struct !29
  %351 = invoke noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef byval(%struct.TensorDesc) align 8 %47)
          to label %352 unwind label %381

352:                                              ; preds = %347
  %353 = load i32, ptr %8, align 4, !tbaa !11
  %354 = invoke noundef i32 @_Z7bytesOf8DataType(i32 noundef %353)
          to label %355 unwind label %381

355:                                              ; preds = %352
  %356 = udiv i32 %351, %354
  %357 = load i32, ptr %8, align 4, !tbaa !11
  %358 = invoke noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef %356, i32 noundef %357, i32 noundef 0)
          to label %359 unwind label %381

359:                                              ; preds = %355
  store ptr %358, ptr %46, align 8, !tbaa !9
  %360 = load i32, ptr %44, align 4, !tbaa !5
  %361 = zext i32 %360 to i64
  %362 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %40, i64 noundef %361) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull align 8 dereferenceable(32) %362) #11
  %363 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %48, i32 noundef 1)
          to label %364 unwind label %385

364:                                              ; preds = %359
  %365 = load ptr, ptr %46, align 8, !tbaa !9
  %366 = load i32, ptr %44, align 4, !tbaa !5
  %367 = zext i32 %366 to i64
  %368 = call noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt6vectorI10TensorDescSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef %367) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %49, ptr align 4 %368, i64 92, i1 false), !tbaa.struct !29
  %369 = invoke noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef byval(%struct.TensorDesc) align 8 %49)
          to label %370 unwind label %385

370:                                              ; preds = %364
  %371 = zext i32 %369 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %363, ptr noundef %365, i64 noundef %371)
          to label %372 unwind label %385

372:                                              ; preds = %370
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #11
  %373 = load ptr, ptr %46, align 8, !tbaa !9
  call void @free(ptr noundef %373) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #11
  br label %374

374:                                              ; preds = %372
  %375 = load i32, ptr %44, align 4, !tbaa !5
  %376 = add i32 %375, 1
  store i32 %376, ptr %44, align 4, !tbaa !5
  br label %287, !llvm.loop !33

377:                                              ; preds = %343, %336
  %378 = landingpad { ptr, i32 }
          cleanup
  %379 = extractvalue { ptr, i32 } %378, 0
  store ptr %379, ptr %25, align 8
  %380 = extractvalue { ptr, i32 } %378, 1
  store i32 %380, ptr %26, align 4
  br label %390

381:                                              ; preds = %355, %352, %347
  %382 = landingpad { ptr, i32 }
          cleanup
  %383 = extractvalue { ptr, i32 } %382, 0
  store ptr %383, ptr %25, align 8
  %384 = extractvalue { ptr, i32 } %382, 1
  store i32 %384, ptr %26, align 4
  br label %389

385:                                              ; preds = %370, %364, %359
  %386 = landingpad { ptr, i32 }
          cleanup
  %387 = extractvalue { ptr, i32 } %386, 0
  store ptr %387, ptr %25, align 8
  %388 = extractvalue { ptr, i32 } %386, 1
  store i32 %388, ptr %26, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #11
  br label %389

389:                                              ; preds = %385, %381
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #11
  br label %390

390:                                              ; preds = %389, %377
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #11
  br label %1122

391:                                              ; preds = %291
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #11
  store i32 0, ptr %50, align 4, !tbaa !5
  br label %392

392:                                              ; preds = %435, %391
  %393 = load i32, ptr %50, align 4, !tbaa !5
  %394 = load i32, ptr %17, align 4, !tbaa !5
  %395 = icmp ult i32 %393, %394
  br i1 %395, label %397, label %396

396:                                              ; preds = %392
  store i32 6, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #11
  br label %452

397:                                              ; preds = %392
  %398 = load i32, ptr %50, align 4, !tbaa !5
  %399 = zext i32 %398 to i64
  %400 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef %399) #11
  %401 = load i32, ptr %50, align 4, !tbaa !5
  %402 = zext i32 %401 to i64
  %403 = call noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt6vectorI10TensorDescSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %34, i64 noundef %402) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %51, ptr align 4 %403, i64 92, i1 false), !tbaa.struct !29
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %400, ptr noundef byval(%struct.TensorDesc) align 8 %51)
          to label %404 unwind label %438

404:                                              ; preds = %397
  %405 = load i32, ptr %50, align 4, !tbaa !5
  %406 = zext i32 %405 to i64
  %407 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef %406) #11
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %407)
          to label %408 unwind label %438

408:                                              ; preds = %404
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #11
  %409 = load i32, ptr %50, align 4, !tbaa !5
  %410 = zext i32 %409 to i64
  %411 = call noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt6vectorI10TensorDescSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %34, i64 noundef %410) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %53, ptr align 4 %411, i64 92, i1 false), !tbaa.struct !29
  %412 = invoke noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef byval(%struct.TensorDesc) align 8 %53)
          to label %413 unwind label %442

413:                                              ; preds = %408
  %414 = load i32, ptr %8, align 4, !tbaa !11
  %415 = invoke noundef i32 @_Z7bytesOf8DataType(i32 noundef %414)
          to label %416 unwind label %442

416:                                              ; preds = %413
  %417 = udiv i32 %412, %415
  %418 = load i32, ptr %8, align 4, !tbaa !11
  %419 = invoke noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef %417, i32 noundef %418, i32 noundef 0)
          to label %420 unwind label %442

420:                                              ; preds = %416
  store ptr %419, ptr %52, align 8, !tbaa !9
  %421 = load i32, ptr %50, align 4, !tbaa !5
  %422 = zext i32 %421 to i64
  %423 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef %422) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull align 8 dereferenceable(32) %423) #11
  %424 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %54, i32 noundef 1)
          to label %425 unwind label %446

425:                                              ; preds = %420
  %426 = load ptr, ptr %52, align 8, !tbaa !9
  %427 = load i32, ptr %50, align 4, !tbaa !5
  %428 = zext i32 %427 to i64
  %429 = call noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt6vectorI10TensorDescSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %34, i64 noundef %428) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %55, ptr align 4 %429, i64 92, i1 false), !tbaa.struct !29
  %430 = invoke noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef byval(%struct.TensorDesc) align 8 %55)
          to label %431 unwind label %446

431:                                              ; preds = %425
  %432 = zext i32 %430 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %424, ptr noundef %426, i64 noundef %432)
          to label %433 unwind label %446

433:                                              ; preds = %431
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #11
  %434 = load ptr, ptr %52, align 8, !tbaa !9
  call void @free(ptr noundef %434) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #11
  br label %435

435:                                              ; preds = %433
  %436 = load i32, ptr %50, align 4, !tbaa !5
  %437 = add i32 %436, 1
  store i32 %437, ptr %50, align 4, !tbaa !5
  br label %392, !llvm.loop !35

438:                                              ; preds = %404, %397
  %439 = landingpad { ptr, i32 }
          cleanup
  %440 = extractvalue { ptr, i32 } %439, 0
  store ptr %440, ptr %25, align 8
  %441 = extractvalue { ptr, i32 } %439, 1
  store i32 %441, ptr %26, align 4
  br label %451

442:                                              ; preds = %416, %413, %408
  %443 = landingpad { ptr, i32 }
          cleanup
  %444 = extractvalue { ptr, i32 } %443, 0
  store ptr %444, ptr %25, align 8
  %445 = extractvalue { ptr, i32 } %443, 1
  store i32 %445, ptr %26, align 4
  br label %450

446:                                              ; preds = %431, %425, %420
  %447 = landingpad { ptr, i32 }
          cleanup
  %448 = extractvalue { ptr, i32 } %447, 0
  store ptr %448, ptr %25, align 8
  %449 = extractvalue { ptr, i32 } %447, 1
  store i32 %449, ptr %26, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #11
  br label %450

450:                                              ; preds = %446, %442
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #11
  br label %451

451:                                              ; preds = %450, %438
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #11
  br label %1122

452:                                              ; preds = %396
  call void @llvm.lifetime.start.p0(i64 32, ptr %56) #11
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %56, i32 noundef 1)
          to label %453 unwind label %480

453:                                              ; preds = %452
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #11
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %57, i32 noundef 1)
          to label %454 unwind label %484

454:                                              ; preds = %453
  call void @llvm.lifetime.start.p0(i64 24, ptr %58) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #11
  store ptr %23, ptr %59, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %60) #11
  call void @_ZNSaIP6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #11
  invoke void @_ZNSt6vectorIP6TensorSaIS1_EEC2EmRKS1_RKS2_(ptr noundef nonnull align 8 dereferenceable(24) %58, i64 noundef 1, ptr noundef nonnull align 8 dereferenceable(8) %59, ptr noundef nonnull align 1 dereferenceable(1) %60)
          to label %455 unwind label %488

455:                                              ; preds = %454
  call void @_ZNSt15__new_allocatorIP6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %61) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #11
  store ptr %56, ptr %62, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #11
  call void @_ZNSaIP6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #11
  invoke void @_ZNSt6vectorIP6TensorSaIS1_EEC2EmRKS1_RKS2_(ptr noundef nonnull align 8 dereferenceable(24) %61, i64 noundef 1, ptr noundef nonnull align 8 dereferenceable(8) %62, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %456 unwind label %492

456:                                              ; preds = %455
  call void @_ZNSt15__new_allocatorIP6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #11
  invoke void @_ZNSt6vectorIP6TensorSaIS1_EEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %65, ptr noundef nonnull align 8 dereferenceable(24) %58)
          to label %457 unwind label %496

457:                                              ; preds = %456
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %66, ptr align 4 %15, i64 36, i1 false), !tbaa.struct !36
  invoke void @_ZNSt6vectorIP6TensorSaIS1_EEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %67, ptr noundef nonnull align 8 dereferenceable(24) %61)
          to label %458 unwind label %500

458:                                              ; preds = %457
  %459 = invoke noundef i32 @_Z21rnn_infer_output_sizeSt6vectorIP6TensorSaIS1_EE12RNNParamSpecS3_P8ArchInfo(ptr noundef %65, ptr noundef byval(%struct.RNNParamSpec) align 8 %66, ptr noundef %67, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %460 unwind label %504

460:                                              ; preds = %458
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %67) #11
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %65) #11
  store i32 %459, ptr %64, align 4, !tbaa !39
  %461 = load i32, ptr %64, align 4, !tbaa !39
  %462 = icmp ne i32 %461, 0
  br i1 %462, label %463, label %513

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

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

471:                                              ; preds = %468
  %472 = load i32, ptr %64, align 4, !tbaa !39
  %473 = invoke ptr @ee2str(i32 noundef %472)
          to label %474 unwind label %509

474:                                              ; preds = %471
  %475 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %473)
          to label %476 unwind label %509

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

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

480:                                              ; preds = %452
  %481 = landingpad { ptr, i32 }
          cleanup
  %482 = extractvalue { ptr, i32 } %481, 0
  store ptr %482, ptr %25, align 8
  %483 = extractvalue { ptr, i32 } %481, 1
  store i32 %483, ptr %26, align 4
  br label %1121

484:                                              ; preds = %453
  %485 = landingpad { ptr, i32 }
          cleanup
  %486 = extractvalue { ptr, i32 } %485, 0
  store ptr %486, ptr %25, align 8
  %487 = extractvalue { ptr, i32 } %485, 1
  store i32 %487, ptr %26, align 4
  br label %1120

488:                                              ; preds = %454
  %489 = landingpad { ptr, i32 }
          cleanup
  %490 = extractvalue { ptr, i32 } %489, 0
  store ptr %490, ptr %25, align 8
  %491 = extractvalue { ptr, i32 } %489, 1
  store i32 %491, ptr %26, align 4
  call void @_ZNSt15__new_allocatorIP6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #11
  br label %1119

492:                                              ; preds = %455
  %493 = landingpad { ptr, i32 }
          cleanup
  %494 = extractvalue { ptr, i32 } %493, 0
  store ptr %494, ptr %25, align 8
  %495 = extractvalue { ptr, i32 } %493, 1
  store i32 %495, ptr %26, align 4
  call void @_ZNSt15__new_allocatorIP6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #11
  br label %1118

496:                                              ; preds = %456
  %497 = landingpad { ptr, i32 }
          cleanup
  %498 = extractvalue { ptr, i32 } %497, 0
  store ptr %498, ptr %25, align 8
  %499 = extractvalue { ptr, i32 } %497, 1
  store i32 %499, ptr %26, align 4
  br label %542

500:                                              ; preds = %457
  %501 = landingpad { ptr, i32 }
          cleanup
  %502 = extractvalue { ptr, i32 } %501, 0
  store ptr %502, ptr %25, align 8
  %503 = extractvalue { ptr, i32 } %501, 1
  store i32 %503, ptr %26, align 4
  br label %508

504:                                              ; preds = %458
  %505 = landingpad { ptr, i32 }
          cleanup
  %506 = extractvalue { ptr, i32 } %505, 0
  store ptr %506, ptr %25, align 8
  %507 = extractvalue { ptr, i32 } %505, 1
  store i32 %507, ptr %26, align 4
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %67) #11
  br label %508

508:                                              ; preds = %504, %500
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %65) #11
  br label %542

509:                                              ; preds = %476, %474, %471, %468, %463
  %510 = landingpad { ptr, i32 }
          cleanup
  %511 = extractvalue { ptr, i32 } %510, 0
  store ptr %511, ptr %25, align 8
  %512 = extractvalue { ptr, i32 } %510, 1
  store i32 %512, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #11
  br label %542

513:                                              ; preds = %460
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #11
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %56)
          to label %514 unwind label %543

514:                                              ; preds = %513
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #11
  %515 = invoke noundef i32 @_ZN6Tensor6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %56)
          to label %516 unwind label %547

516:                                              ; preds = %514
  store i32 %515, ptr %69, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 92, ptr %70) #11
  invoke void @_ZN6Tensor8get_descEv(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %70, ptr noundef nonnull align 8 dereferenceable(32) %56)
          to label %517 unwind label %551

517:                                              ; preds = %516
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %71, ptr align 4 %70, i64 92, i1 false), !tbaa.struct !29
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef byval(%struct.TensorDesc) align 8 %71)
          to label %518 unwind label %551

518:                                              ; preds = %517
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %57)
          to label %519 unwind label %551

519:                                              ; preds = %518
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull align 8 dereferenceable(32) %23) #11
  %520 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %40, i64 noundef 0) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 8 dereferenceable(32) %520) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull align 8 dereferenceable(32) %56) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %76, ptr align 4 %15, i64 36, i1 false), !tbaa.struct !36
  %521 = invoke noundef i32 @_Z27rnn_infer_forward_tmp_bytes6TensorS_S_12RNNParamSpecPjP8ArchInfo(ptr noundef %73, ptr noundef %74, ptr noundef %75, ptr noundef byval(%struct.RNNParamSpec) align 8 %76, ptr noundef %31, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %522 unwind label %555

522:                                              ; preds = %519
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #11
  store i32 %521, ptr %72, align 4, !tbaa !39
  %523 = load i32, ptr %72, align 4, !tbaa !39
  %524 = icmp ne i32 %523, 0
  br i1 %524, label %525, label %563

525:                                              ; preds = %522
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #11
  %526 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %527 = trunc i64 %526 to i32
  store i32 %527, ptr %77, align 4, !tbaa !5
  %528 = load i32, ptr %77, align 4, !tbaa !5
  %529 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %528)
          to label %530 unwind label %559

530:                                              ; preds = %525
  %531 = load ptr, ptr @stdout, align 8, !tbaa !9
  %532 = invoke i32 @fflush(ptr noundef %531)
          to label %533 unwind label %559

533:                                              ; preds = %530
  %534 = load i32, ptr %72, align 4, !tbaa !39
  %535 = invoke ptr @ee2str(i32 noundef %534)
          to label %536 unwind label %559

536:                                              ; preds = %533
  %537 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %535)
          to label %538 unwind label %559

538:                                              ; preds = %536
  %539 = load ptr, ptr @stdout, align 8, !tbaa !9
  %540 = invoke i32 @fflush(ptr noundef %539)
          to label %541 unwind label %559

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

542:                                              ; preds = %509, %508, %496
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #11
  br label %1117

543:                                              ; preds = %513
  %544 = landingpad { ptr, i32 }
          cleanup
  %545 = extractvalue { ptr, i32 } %544, 0
  store ptr %545, ptr %25, align 8
  %546 = extractvalue { ptr, i32 } %544, 1
  store i32 %546, ptr %26, align 4
  br label %1117

547:                                              ; preds = %514
  %548 = landingpad { ptr, i32 }
          cleanup
  %549 = extractvalue { ptr, i32 } %548, 0
  store ptr %549, ptr %25, align 8
  %550 = extractvalue { ptr, i32 } %548, 1
  store i32 %550, ptr %26, align 4
  br label %1116

551:                                              ; preds = %518, %517, %516
  %552 = landingpad { ptr, i32 }
          cleanup
  %553 = extractvalue { ptr, i32 } %552, 0
  store ptr %553, ptr %25, align 8
  %554 = extractvalue { ptr, i32 } %552, 1
  store i32 %554, ptr %26, align 4
  br label %1115

555:                                              ; preds = %519
  %556 = landingpad { ptr, i32 }
          cleanup
  %557 = extractvalue { ptr, i32 } %556, 0
  store ptr %557, ptr %25, align 8
  %558 = extractvalue { ptr, i32 } %556, 1
  store i32 %558, ptr %26, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #11
  br label %590

559:                                              ; preds = %538, %536, %533, %530, %525
  %560 = landingpad { ptr, i32 }
          cleanup
  %561 = extractvalue { ptr, i32 } %560, 0
  store ptr %561, ptr %25, align 8
  %562 = extractvalue { ptr, i32 } %560, 1
  store i32 %562, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #11
  br label %590

563:                                              ; preds = %522
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %78) #11
  %564 = load i32, ptr %16, align 4, !tbaa !5
  %565 = zext i32 %564 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %79) #11
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #11
  invoke void @_ZNSt6vectorIjSaIjEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %78, i64 noundef %565, ptr noundef nonnull align 1 dereferenceable(1) %79)
          to label %566 unwind label %591

566:                                              ; preds = %563
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %81, ptr noundef nonnull align 8 dereferenceable(24) %40)
          to label %567 unwind label %595

567:                                              ; preds = %566
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %82, ptr align 4 %15, i64 36, i1 false), !tbaa.struct !36
  %568 = call noundef ptr @_ZNSt6vectorIjSaIjEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %78) #11
  %569 = invoke noundef i32 @_Z26rnn_transform_filter_bytesSt6vectorI6TensorSaIS0_EE12RNNParamSpecPvP8ArchInfo(ptr noundef %81, ptr noundef byval(%struct.RNNParamSpec) align 8 %82, ptr noundef %568, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %570 unwind label %599

570:                                              ; preds = %567
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %81) #11
  store i32 %569, ptr %80, align 4, !tbaa !39
  %571 = load i32, ptr %80, align 4, !tbaa !39
  %572 = icmp ne i32 %571, 0
  br i1 %572, label %573, label %607

573:                                              ; preds = %570
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #11
  %574 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %575 = trunc i64 %574 to i32
  store i32 %575, ptr %83, align 4, !tbaa !5
  %576 = load i32, ptr %83, align 4, !tbaa !5
  %577 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %576)
          to label %578 unwind label %603

578:                                              ; preds = %573
  %579 = load ptr, ptr @stdout, align 8, !tbaa !9
  %580 = invoke i32 @fflush(ptr noundef %579)
          to label %581 unwind label %603

581:                                              ; preds = %578
  %582 = load i32, ptr %80, align 4, !tbaa !39
  %583 = invoke ptr @ee2str(i32 noundef %582)
          to label %584 unwind label %603

584:                                              ; preds = %581
  %585 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %583)
          to label %586 unwind label %603

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

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

590:                                              ; preds = %559, %555
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #11
  br label %1115

591:                                              ; preds = %563
  %592 = landingpad { ptr, i32 }
          cleanup
  %593 = extractvalue { ptr, i32 } %592, 0
  store ptr %593, ptr %25, align 8
  %594 = extractvalue { ptr, i32 } %592, 1
  store i32 %594, ptr %26, align 4
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #11
  br label %1114

595:                                              ; preds = %566
  %596 = landingpad { ptr, i32 }
          cleanup
  %597 = extractvalue { ptr, i32 } %596, 0
  store ptr %597, ptr %25, align 8
  %598 = extractvalue { ptr, i32 } %596, 1
  store i32 %598, ptr %26, align 4
  br label %625

599:                                              ; preds = %567
  %600 = landingpad { ptr, i32 }
          cleanup
  %601 = extractvalue { ptr, i32 } %600, 0
  store ptr %601, ptr %25, align 8
  %602 = extractvalue { ptr, i32 } %600, 1
  store i32 %602, ptr %26, align 4
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %81) #11
  br label %625

603:                                              ; preds = %586, %584, %581, %578, %573
  %604 = landingpad { ptr, i32 }
          cleanup
  %605 = extractvalue { ptr, i32 } %604, 0
  store ptr %605, ptr %25, align 8
  %606 = extractvalue { ptr, i32 } %604, 1
  store i32 %606, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #11
  br label %625

607:                                              ; preds = %570
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %84) #11
  %608 = load i32, ptr %16, align 4, !tbaa !5
  %609 = zext i32 %608 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %85) #11
  call void @_ZNSaI6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2EmRKS1_(ptr noundef nonnull align 8 dereferenceable(24) %84, i64 noundef %609, ptr noundef nonnull align 1 dereferenceable(1) %85)
          to label %610 unwind label %626

610:                                              ; preds = %607
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %85) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %86) #11
  %611 = load i32, ptr %16, align 4, !tbaa !5
  %612 = zext i32 %611 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %87) #11
  call void @_ZNSaI6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2EmRKS1_(ptr noundef nonnull align 8 dereferenceable(24) %86, i64 noundef %612, ptr noundef nonnull align 1 dereferenceable(1) %87)
          to label %613 unwind label %630

613:                                              ; preds = %610
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %87) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %88) #11
  %614 = load i32, ptr %16, align 4, !tbaa !5
  %615 = zext i32 %614 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %89) #11
  call void @_ZNSaIP6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %89) #11
  invoke void @_ZNSt6vectorIP6TensorSaIS1_EEC2EmRKS2_(ptr noundef nonnull align 8 dereferenceable(24) %88, i64 noundef %615, ptr noundef nonnull align 1 dereferenceable(1) %89)
          to label %616 unwind label %634

616:                                              ; preds = %613
  call void @_ZNSt15__new_allocatorIP6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %89) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %89) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %90) #11
  %617 = load i32, ptr %16, align 4, !tbaa !5
  %618 = zext i32 %617 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %91) #11
  call void @_ZNSaIP6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #11
  invoke void @_ZNSt6vectorIP6TensorSaIS1_EEC2EmRKS2_(ptr noundef nonnull align 8 dereferenceable(24) %90, i64 noundef %618, ptr noundef nonnull align 1 dereferenceable(1) %91)
          to label %619 unwind label %638

619:                                              ; preds = %616
  call void @_ZNSt15__new_allocatorIP6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #11
  store i32 0, ptr %92, align 4, !tbaa !5
  br label %620

620:                                              ; preds = %681, %619
  %621 = load i32, ptr %92, align 4, !tbaa !5
  %622 = load i32, ptr %16, align 4, !tbaa !5
  %623 = icmp ult i32 %621, %622
  br i1 %623, label %642, label %624

624:                                              ; preds = %620
  store i32 9, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #11
  br label %688

625:                                              ; preds = %603, %599, %595
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #11
  br label %1113

626:                                              ; preds = %607
  %627 = landingpad { ptr, i32 }
          cleanup
  %628 = extractvalue { ptr, i32 } %627, 0
  store ptr %628, ptr %25, align 8
  %629 = extractvalue { ptr, i32 } %627, 1
  store i32 %629, ptr %26, align 4
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %85) #11
  br label %1112

630:                                              ; preds = %610
  %631 = landingpad { ptr, i32 }
          cleanup
  %632 = extractvalue { ptr, i32 } %631, 0
  store ptr %632, ptr %25, align 8
  %633 = extractvalue { ptr, i32 } %631, 1
  store i32 %633, ptr %26, align 4
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %87) #11
  br label %1111

634:                                              ; preds = %613
  %635 = landingpad { ptr, i32 }
          cleanup
  %636 = extractvalue { ptr, i32 } %635, 0
  store ptr %636, ptr %25, align 8
  %637 = extractvalue { ptr, i32 } %635, 1
  store i32 %637, ptr %26, align 4
  call void @_ZNSt15__new_allocatorIP6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %89) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %89) #11
  br label %1110

638:                                              ; preds = %616
  %639 = landingpad { ptr, i32 }
          cleanup
  %640 = extractvalue { ptr, i32 } %639, 0
  store ptr %640, ptr %25, align 8
  %641 = extractvalue { ptr, i32 } %639, 1
  store i32 %641, ptr %26, align 4
  call void @_ZNSt15__new_allocatorIP6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #11
  br label %1109

642:                                              ; preds = %620
  %643 = load i32, ptr %92, align 4, !tbaa !5
  %644 = zext i32 %643 to i64
  %645 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %84, i64 noundef %644) #11
  %646 = load i32, ptr %92, align 4, !tbaa !5
  %647 = zext i32 %646 to i64
  %648 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %78, i64 noundef %647) #11
  %649 = load i32, ptr %648, align 4, !tbaa !5
  invoke void @_Z8tensor1d8DataTypej(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %93, i32 noundef 0, i32 noundef %649)
          to label %650 unwind label %684

650:                                              ; preds = %642
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %645, ptr noundef byval(%struct.TensorDesc) align 8 %93)
          to label %651 unwind label %684

651:                                              ; preds = %650
  %652 = load i32, ptr %92, align 4, !tbaa !5
  %653 = zext i32 %652 to i64
  %654 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %84, i64 noundef %653) #11
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %654)
          to label %655 unwind label %684

655:                                              ; preds = %651
  %656 = load i32, ptr %92, align 4, !tbaa !5
  %657 = zext i32 %656 to i64
  %658 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %84, i64 noundef %657) #11
  %659 = load i32, ptr %92, align 4, !tbaa !5
  %660 = zext i32 %659 to i64
  %661 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6TensorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %88, i64 noundef %660) #11
  store ptr %658, ptr %661, align 8, !tbaa !9
  %662 = load i32, ptr %92, align 4, !tbaa !5
  %663 = zext i32 %662 to i64
  %664 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %86, i64 noundef %663) #11
  %665 = load i32, ptr %92, align 4, !tbaa !5
  %666 = zext i32 %665 to i64
  %667 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %78, i64 noundef %666) #11
  %668 = load i32, ptr %667, align 4, !tbaa !5
  invoke void @_Z8tensor1d8DataTypej(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %94, i32 noundef 0, i32 noundef %668)
          to label %669 unwind label %684

669:                                              ; preds = %655
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %664, ptr noundef byval(%struct.TensorDesc) align 8 %94)
          to label %670 unwind label %684

670:                                              ; preds = %669
  %671 = load i32, ptr %92, align 4, !tbaa !5
  %672 = zext i32 %671 to i64
  %673 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %86, i64 noundef %672) #11
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %673)
          to label %674 unwind label %684

674:                                              ; preds = %670
  %675 = load i32, ptr %92, align 4, !tbaa !5
  %676 = zext i32 %675 to i64
  %677 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %86, i64 noundef %676) #11
  %678 = load i32, ptr %92, align 4, !tbaa !5
  %679 = zext i32 %678 to i64
  %680 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6TensorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %90, i64 noundef %679) #11
  store ptr %677, ptr %680, align 8, !tbaa !9
  br label %681

681:                                              ; preds = %674
  %682 = load i32, ptr %92, align 4, !tbaa !5
  %683 = add i32 %682, 1
  store i32 %683, ptr %92, align 4, !tbaa !5
  br label %620, !llvm.loop !41

684:                                              ; preds = %670, %669, %655, %651, %650, %642
  %685 = landingpad { ptr, i32 }
          cleanup
  %686 = extractvalue { ptr, i32 } %685, 0
  store ptr %686, ptr %25, align 8
  %687 = extractvalue { ptr, i32 } %685, 1
  store i32 %687, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #11
  br label %1108

688:                                              ; preds = %624
  call void @llvm.lifetime.start.p0(i64 32, ptr %95) #11
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %95, i32 noundef 1)
          to label %689 unwind label %717

689:                                              ; preds = %688
  %690 = load i32, ptr %31, align 4, !tbaa !5
  invoke void @_Z8tensor1d8DataTypej(ptr dead_on_unwind writable sret(%struct.TensorDesc) align 4 %96, i32 noundef 0, i32 noundef %690)
          to label %691 unwind label %721

691:                                              ; preds = %689
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef byval(%struct.TensorDesc) align 8 %96)
          to label %692 unwind label %721

692:                                              ; preds = %691
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %95)
          to label %693 unwind label %721

693:                                              ; preds = %692
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %98, ptr noundef nonnull align 8 dereferenceable(24) %40)
          to label %694 unwind label %725

694:                                              ; preds = %693
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %99, ptr align 4 %15, i64 36, i1 false), !tbaa.struct !36
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %100, ptr noundef nonnull align 8 dereferenceable(32) %95) #11
  invoke void @_ZNSt6vectorIP6TensorSaIS1_EEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %101, ptr noundef nonnull align 8 dereferenceable(24) %88)
          to label %695 unwind label %729

695:                                              ; preds = %694
  %696 = invoke noundef i32 @_Z20rnn_transform_filterSt6vectorI6TensorSaIS0_EE12RNNParamSpecS0_S_IPS0_SaIS4_EEP8ArchInfoPv(ptr noundef %98, ptr noundef byval(%struct.RNNParamSpec) align 8 %99, ptr noundef %100, ptr noundef %101, ptr noundef @_ZL15UT_CPU_ARCHINFO, ptr noundef null)
          to label %697 unwind label %733

697:                                              ; preds = %695
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %101) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %98) #11
  store i32 %696, ptr %97, align 4, !tbaa !39
  %698 = load i32, ptr %97, align 4, !tbaa !39
  %699 = icmp ne i32 %698, 0
  br i1 %699, label %700, label %742

700:                                              ; preds = %697
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #11
  %701 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %702 = trunc i64 %701 to i32
  store i32 %702, ptr %102, align 4, !tbaa !5
  %703 = load i32, ptr %102, align 4, !tbaa !5
  %704 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %703)
          to label %705 unwind label %738

705:                                              ; preds = %700
  %706 = load ptr, ptr @stdout, align 8, !tbaa !9
  %707 = invoke i32 @fflush(ptr noundef %706)
          to label %708 unwind label %738

708:                                              ; preds = %705
  %709 = load i32, ptr %97, align 4, !tbaa !39
  %710 = invoke ptr @ee2str(i32 noundef %709)
          to label %711 unwind label %738

711:                                              ; preds = %708
  %712 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %710)
          to label %713 unwind label %738

713:                                              ; preds = %711
  %714 = load ptr, ptr @stdout, align 8, !tbaa !9
  %715 = invoke i32 @fflush(ptr noundef %714)
          to label %716 unwind label %738

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

717:                                              ; preds = %688
  %718 = landingpad { ptr, i32 }
          cleanup
  %719 = extractvalue { ptr, i32 } %718, 0
  store ptr %719, ptr %25, align 8
  %720 = extractvalue { ptr, i32 } %718, 1
  store i32 %720, ptr %26, align 4
  br label %1107

721:                                              ; preds = %692, %691, %689
  %722 = landingpad { ptr, i32 }
          cleanup
  %723 = extractvalue { ptr, i32 } %722, 0
  store ptr %723, ptr %25, align 8
  %724 = extractvalue { ptr, i32 } %722, 1
  store i32 %724, ptr %26, align 4
  br label %1106

725:                                              ; preds = %693
  %726 = landingpad { ptr, i32 }
          cleanup
  %727 = extractvalue { ptr, i32 } %726, 0
  store ptr %727, ptr %25, align 8
  %728 = extractvalue { ptr, i32 } %726, 1
  store i32 %728, ptr %26, align 4
  br label %766

729:                                              ; preds = %694
  %730 = landingpad { ptr, i32 }
          cleanup
  %731 = extractvalue { ptr, i32 } %730, 0
  store ptr %731, ptr %25, align 8
  %732 = extractvalue { ptr, i32 } %730, 1
  store i32 %732, ptr %26, align 4
  br label %737

733:                                              ; preds = %695
  %734 = landingpad { ptr, i32 }
          cleanup
  %735 = extractvalue { ptr, i32 } %734, 0
  store ptr %735, ptr %25, align 8
  %736 = extractvalue { ptr, i32 } %734, 1
  store i32 %736, ptr %26, align 4
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %101) #11
  br label %737

737:                                              ; preds = %733, %729
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %98) #11
  br label %766

738:                                              ; preds = %713, %711, %708, %705, %700
  %739 = landingpad { ptr, i32 }
          cleanup
  %740 = extractvalue { ptr, i32 } %739, 0
  store ptr %740, ptr %25, align 8
  %741 = extractvalue { ptr, i32 } %739, 1
  store i32 %741, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #11
  br label %766

742:                                              ; preds = %697
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %104, ptr noundef nonnull align 8 dereferenceable(24) %40)
          to label %743 unwind label %767

743:                                              ; preds = %742
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %105, ptr align 4 %15, i64 36, i1 false), !tbaa.struct !36
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %106, ptr noundef nonnull align 8 dereferenceable(32) %95) #11
  invoke void @_ZNSt6vectorIP6TensorSaIS1_EEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %107, ptr noundef nonnull align 8 dereferenceable(24) %90)
          to label %744 unwind label %771

744:                                              ; preds = %743
  %745 = invoke noundef i32 @_Z20rnn_transform_filterSt6vectorI6TensorSaIS0_EE12RNNParamSpecS0_S_IPS0_SaIS4_EEP8ArchInfoPv(ptr noundef %104, ptr noundef byval(%struct.RNNParamSpec) align 8 %105, ptr noundef %106, ptr noundef %107, ptr noundef @_ZL18UT_SERIAL_ARCHINFO, ptr noundef null)
          to label %746 unwind label %775

746:                                              ; preds = %744
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %107) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %104) #11
  store i32 %745, ptr %103, align 4, !tbaa !39
  %747 = load i32, ptr %103, align 4, !tbaa !39
  %748 = icmp ne i32 %747, 0
  br i1 %748, label %749, label %784

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

754:                                              ; preds = %749
  %755 = load ptr, ptr @stdout, align 8, !tbaa !9
  %756 = invoke i32 @fflush(ptr noundef %755)
          to label %757 unwind label %780

757:                                              ; preds = %754
  %758 = load i32, ptr %103, align 4, !tbaa !39
  %759 = invoke ptr @ee2str(i32 noundef %758)
          to label %760 unwind label %780

760:                                              ; preds = %757
  %761 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %759)
          to label %762 unwind label %780

762:                                              ; preds = %760
  %763 = load ptr, ptr @stdout, align 8, !tbaa !9
  %764 = invoke i32 @fflush(ptr noundef %763)
          to label %765 unwind label %780

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

766:                                              ; preds = %738, %737, %725
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #11
  br label %1106

767:                                              ; preds = %742
  %768 = landingpad { ptr, i32 }
          cleanup
  %769 = extractvalue { ptr, i32 } %768, 0
  store ptr %769, ptr %25, align 8
  %770 = extractvalue { ptr, i32 } %768, 1
  store i32 %770, ptr %26, align 4
  br label %821

771:                                              ; preds = %743
  %772 = landingpad { ptr, i32 }
          cleanup
  %773 = extractvalue { ptr, i32 } %772, 0
  store ptr %773, ptr %25, align 8
  %774 = extractvalue { ptr, i32 } %772, 1
  store i32 %774, ptr %26, align 4
  br label %779

775:                                              ; preds = %744
  %776 = landingpad { ptr, i32 }
          cleanup
  %777 = extractvalue { ptr, i32 } %776, 0
  store ptr %777, ptr %25, align 8
  %778 = extractvalue { ptr, i32 } %776, 1
  store i32 %778, ptr %26, align 4
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %107) #11
  br label %779

779:                                              ; preds = %775, %771
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %104) #11
  br label %821

780:                                              ; preds = %762, %760, %757, %754, %749
  %781 = landingpad { ptr, i32 }
          cleanup
  %782 = extractvalue { ptr, i32 } %781, 0
  store ptr %782, ptr %25, align 8
  %783 = extractvalue { ptr, i32 } %781, 1
  store i32 %783, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #11
  br label %821

784:                                              ; preds = %746
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %109) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %110) #11
  call void @_ZNSaI6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %110) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2EmRKS0_RKS1_(ptr noundef nonnull align 8 dereferenceable(24) %109, i64 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 1 dereferenceable(1) %110)
          to label %785 unwind label %822

785:                                              ; preds = %784
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %110) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %110) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %111) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %112) #11
  call void @_ZNSaI6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %112) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2EmRKS0_RKS1_(ptr noundef nonnull align 8 dereferenceable(24) %111, i64 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull align 1 dereferenceable(1) %112)
          to label %786 unwind label %826

786:                                              ; preds = %785
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %112) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %112) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %113) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %114) #11
  call void @_ZNSaI6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %114) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2EmRKS0_RKS1_(ptr noundef nonnull align 8 dereferenceable(24) %113, i64 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull align 1 dereferenceable(1) %114)
          to label %787 unwind label %830

787:                                              ; preds = %786
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %114) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %114) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %115) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %116) #11
  call void @_ZNSaI6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %116) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2EmRKS0_RKS1_(ptr noundef nonnull align 8 dereferenceable(24) %115, i64 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef nonnull align 1 dereferenceable(1) %116)
          to label %788 unwind label %834

788:                                              ; preds = %787
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %116) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %116) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %117, ptr noundef nonnull align 8 dereferenceable(32) %95) #11
  %789 = load i32, ptr @_ZL15UT_CPU_ARCHINFO, align 8, !tbaa !42
  %790 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %117, i32 noundef %789)
          to label %791 unwind label %838

791:                                              ; preds = %788
  %792 = load i32, ptr %31, align 4, !tbaa !5
  %793 = zext i32 %792 to i64
  invoke void @_Z10UNI_MEMSETPvim(ptr noundef %790, i32 noundef 0, i64 noundef %793)
          to label %794 unwind label %838

794:                                              ; preds = %791
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %119, ptr noundef nonnull align 8 dereferenceable(24) %109)
          to label %795 unwind label %842

795:                                              ; preds = %794
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %120, ptr noundef nonnull align 8 dereferenceable(24) %84)
          to label %796 unwind label %846

796:                                              ; preds = %795
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %121, ptr noundef nonnull align 8 dereferenceable(24) %42)
          to label %797 unwind label %850

797:                                              ; preds = %796
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %122, ptr align 4 %15, i64 36, i1 false), !tbaa.struct !36
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %123, ptr noundef nonnull align 8 dereferenceable(24) %115)
          to label %798 unwind label %854

798:                                              ; preds = %797
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %124, ptr noundef nonnull align 8 dereferenceable(24) %111)
          to label %799 unwind label %858

799:                                              ; preds = %798
  %800 = invoke noundef i32 @_Z3rnnSt6vectorI6TensorSaIS0_EES2_S2_12RNNParamSpecS2_S2_PvP8ArchInfo(ptr noundef %119, ptr noundef %120, ptr noundef %121, ptr noundef byval(%struct.RNNParamSpec) align 8 %122, ptr noundef %123, ptr noundef %124, ptr noundef null, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %801 unwind label %862

801:                                              ; preds = %799
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %124) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %123) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %121) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %120) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %119) #11
  store i32 %800, ptr %118, align 4, !tbaa !39
  %802 = load i32, ptr %118, align 4, !tbaa !39
  %803 = icmp ne i32 %802, 0
  br i1 %803, label %804, label %874

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

809:                                              ; preds = %804
  %810 = load ptr, ptr @stdout, align 8, !tbaa !9
  %811 = invoke i32 @fflush(ptr noundef %810)
          to label %812 unwind label %870

812:                                              ; preds = %809
  %813 = load i32, ptr %118, align 4, !tbaa !39
  %814 = invoke ptr @ee2str(i32 noundef %813)
          to label %815 unwind label %870

815:                                              ; preds = %812
  %816 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %814)
          to label %817 unwind label %870

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

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

821:                                              ; preds = %780, %779, %767
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #11
  br label %1106

822:                                              ; preds = %784
  %823 = landingpad { ptr, i32 }
          cleanup
  %824 = extractvalue { ptr, i32 } %823, 0
  store ptr %824, ptr %25, align 8
  %825 = extractvalue { ptr, i32 } %823, 1
  store i32 %825, ptr %26, align 4
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %110) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %110) #11
  br label %1105

826:                                              ; preds = %785
  %827 = landingpad { ptr, i32 }
          cleanup
  %828 = extractvalue { ptr, i32 } %827, 0
  store ptr %828, ptr %25, align 8
  %829 = extractvalue { ptr, i32 } %827, 1
  store i32 %829, ptr %26, align 4
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %112) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %112) #11
  br label %1104

830:                                              ; preds = %786
  %831 = landingpad { ptr, i32 }
          cleanup
  %832 = extractvalue { ptr, i32 } %831, 0
  store ptr %832, ptr %25, align 8
  %833 = extractvalue { ptr, i32 } %831, 1
  store i32 %833, ptr %26, align 4
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %114) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %114) #11
  br label %1103

834:                                              ; preds = %787
  %835 = landingpad { ptr, i32 }
          cleanup
  %836 = extractvalue { ptr, i32 } %835, 0
  store ptr %836, ptr %25, align 8
  %837 = extractvalue { ptr, i32 } %835, 1
  store i32 %837, ptr %26, align 4
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %116) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %116) #11
  br label %1102

838:                                              ; preds = %791, %788
  %839 = landingpad { ptr, i32 }
          cleanup
  %840 = extractvalue { ptr, i32 } %839, 0
  store ptr %840, ptr %25, align 8
  %841 = extractvalue { ptr, i32 } %839, 1
  store i32 %841, ptr %26, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #11
  br label %1101

842:                                              ; preds = %794
  %843 = landingpad { ptr, i32 }
          cleanup
  %844 = extractvalue { ptr, i32 } %843, 0
  store ptr %844, ptr %25, align 8
  %845 = extractvalue { ptr, i32 } %843, 1
  store i32 %845, ptr %26, align 4
  br label %907

846:                                              ; preds = %795
  %847 = landingpad { ptr, i32 }
          cleanup
  %848 = extractvalue { ptr, i32 } %847, 0
  store ptr %848, ptr %25, align 8
  %849 = extractvalue { ptr, i32 } %847, 1
  store i32 %849, ptr %26, align 4
  br label %869

850:                                              ; preds = %796
  %851 = landingpad { ptr, i32 }
          cleanup
  %852 = extractvalue { ptr, i32 } %851, 0
  store ptr %852, ptr %25, align 8
  %853 = extractvalue { ptr, i32 } %851, 1
  store i32 %853, ptr %26, align 4
  br label %868

854:                                              ; preds = %797
  %855 = landingpad { ptr, i32 }
          cleanup
  %856 = extractvalue { ptr, i32 } %855, 0
  store ptr %856, ptr %25, align 8
  %857 = extractvalue { ptr, i32 } %855, 1
  store i32 %857, ptr %26, align 4
  br label %867

858:                                              ; preds = %798
  %859 = landingpad { ptr, i32 }
          cleanup
  %860 = extractvalue { ptr, i32 } %859, 0
  store ptr %860, ptr %25, align 8
  %861 = extractvalue { ptr, i32 } %859, 1
  store i32 %861, ptr %26, align 4
  br label %866

862:                                              ; preds = %799
  %863 = landingpad { ptr, i32 }
          cleanup
  %864 = extractvalue { ptr, i32 } %863, 0
  store ptr %864, ptr %25, align 8
  %865 = extractvalue { ptr, i32 } %863, 1
  store i32 %865, ptr %26, align 4
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %124) #11
  br label %866

866:                                              ; preds = %862, %858
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %123) #11
  br label %867

867:                                              ; preds = %866, %854
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %121) #11
  br label %868

868:                                              ; preds = %867, %850
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %120) #11
  br label %869

869:                                              ; preds = %868, %846
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %119) #11
  br label %907

870:                                              ; preds = %817, %815, %812, %809, %804
  %871 = landingpad { ptr, i32 }
          cleanup
  %872 = extractvalue { ptr, i32 } %871, 0
  store ptr %872, ptr %25, align 8
  %873 = extractvalue { ptr, i32 } %871, 1
  store i32 %873, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #11
  br label %907

874:                                              ; preds = %801
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %126, ptr noundef nonnull align 8 dereferenceable(32) %95) #11
  %875 = load i32, ptr @_ZL15UT_CPU_ARCHINFO, align 8, !tbaa !42
  %876 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %126, i32 noundef %875)
          to label %877 unwind label %908

877:                                              ; preds = %874
  %878 = load i32, ptr %31, align 4, !tbaa !5
  %879 = zext i32 %878 to i64
  invoke void @_Z10UNI_MEMSETPvim(ptr noundef %876, i32 noundef 0, i64 noundef %879)
          to label %880 unwind label %908

880:                                              ; preds = %877
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %128, ptr noundef nonnull align 8 dereferenceable(24) %109)
          to label %881 unwind label %912

881:                                              ; preds = %880
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %129, ptr noundef nonnull align 8 dereferenceable(24) %86)
          to label %882 unwind label %916

882:                                              ; preds = %881
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %130, ptr noundef nonnull align 8 dereferenceable(24) %42)
          to label %883 unwind label %920

883:                                              ; preds = %882
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %131, ptr align 4 %15, i64 36, i1 false), !tbaa.struct !36
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %132, ptr noundef nonnull align 8 dereferenceable(24) %115)
          to label %884 unwind label %924

884:                                              ; preds = %883
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %133, ptr noundef nonnull align 8 dereferenceable(24) %113)
          to label %885 unwind label %928

885:                                              ; preds = %884
  %886 = invoke noundef i32 @_Z3rnnSt6vectorI6TensorSaIS0_EES2_S2_12RNNParamSpecS2_S2_PvP8ArchInfo(ptr noundef %128, ptr noundef %129, ptr noundef %130, ptr noundef byval(%struct.RNNParamSpec) align 8 %131, ptr noundef %132, ptr noundef %133, ptr noundef null, ptr noundef @_ZL18UT_SERIAL_ARCHINFO)
          to label %887 unwind label %932

887:                                              ; preds = %885
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %133) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %132) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %130) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %129) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %128) #11
  store i32 %886, ptr %127, align 4, !tbaa !39
  %888 = load i32, ptr %127, align 4, !tbaa !39
  %889 = icmp ne i32 %888, 0
  br i1 %889, label %890, label %944

890:                                              ; preds = %887
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #11
  %891 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %892 = trunc i64 %891 to i32
  store i32 %892, ptr %134, align 4, !tbaa !5
  %893 = load i32, ptr %134, align 4, !tbaa !5
  %894 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %893)
          to label %895 unwind label %940

895:                                              ; preds = %890
  %896 = load ptr, ptr @stdout, align 8, !tbaa !9
  %897 = invoke i32 @fflush(ptr noundef %896)
          to label %898 unwind label %940

898:                                              ; preds = %895
  %899 = load i32, ptr %127, align 4, !tbaa !39
  %900 = invoke ptr @ee2str(i32 noundef %899)
          to label %901 unwind label %940

901:                                              ; preds = %898
  %902 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %900)
          to label %903 unwind label %940

903:                                              ; preds = %901
  %904 = load ptr, ptr @stdout, align 8, !tbaa !9
  %905 = invoke i32 @fflush(ptr noundef %904)
          to label %906 unwind label %940

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

907:                                              ; preds = %870, %869, %842
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #11
  br label %1101

908:                                              ; preds = %877, %874
  %909 = landingpad { ptr, i32 }
          cleanup
  %910 = extractvalue { ptr, i32 } %909, 0
  store ptr %910, ptr %25, align 8
  %911 = extractvalue { ptr, i32 } %909, 1
  store i32 %911, ptr %26, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #11
  br label %1101

912:                                              ; preds = %880
  %913 = landingpad { ptr, i32 }
          cleanup
  %914 = extractvalue { ptr, i32 } %913, 0
  store ptr %914, ptr %25, align 8
  %915 = extractvalue { ptr, i32 } %913, 1
  store i32 %915, ptr %26, align 4
  br label %959

916:                                              ; preds = %881
  %917 = landingpad { ptr, i32 }
          cleanup
  %918 = extractvalue { ptr, i32 } %917, 0
  store ptr %918, ptr %25, align 8
  %919 = extractvalue { ptr, i32 } %917, 1
  store i32 %919, ptr %26, align 4
  br label %939

920:                                              ; preds = %882
  %921 = landingpad { ptr, i32 }
          cleanup
  %922 = extractvalue { ptr, i32 } %921, 0
  store ptr %922, ptr %25, align 8
  %923 = extractvalue { ptr, i32 } %921, 1
  store i32 %923, ptr %26, align 4
  br label %938

924:                                              ; preds = %883
  %925 = landingpad { ptr, i32 }
          cleanup
  %926 = extractvalue { ptr, i32 } %925, 0
  store ptr %926, ptr %25, align 8
  %927 = extractvalue { ptr, i32 } %925, 1
  store i32 %927, ptr %26, align 4
  br label %937

928:                                              ; preds = %884
  %929 = landingpad { ptr, i32 }
          cleanup
  %930 = extractvalue { ptr, i32 } %929, 0
  store ptr %930, ptr %25, align 8
  %931 = extractvalue { ptr, i32 } %929, 1
  store i32 %931, ptr %26, align 4
  br label %936

932:                                              ; preds = %885
  %933 = landingpad { ptr, i32 }
          cleanup
  %934 = extractvalue { ptr, i32 } %933, 0
  store ptr %934, ptr %25, align 8
  %935 = extractvalue { ptr, i32 } %933, 1
  store i32 %935, ptr %26, align 4
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %133) #11
  br label %936

936:                                              ; preds = %932, %928
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %132) #11
  br label %937

937:                                              ; preds = %936, %924
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %130) #11
  br label %938

938:                                              ; preds = %937, %920
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %129) #11
  br label %939

939:                                              ; preds = %938, %916
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %128) #11
  br label %959

940:                                              ; preds = %903, %901, %898, %895, %890
  %941 = landingpad { ptr, i32 }
          cleanup
  %942 = extractvalue { ptr, i32 } %941, 0
  store ptr %942, ptr %25, align 8
  %943 = extractvalue { ptr, i32 } %941, 1
  store i32 %943, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #11
  br label %959

944:                                              ; preds = %887
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #11
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %135, ptr noundef nonnull align 8 dereferenceable(32) %56) #11
  %945 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %135, i32 noundef 1)
          to label %946 unwind label %960

946:                                              ; preds = %944
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %136, ptr noundef nonnull align 8 dereferenceable(32) %57) #11
  %947 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef %136, i32 noundef 1)
          to label %948 unwind label %964

948:                                              ; preds = %946
  %949 = load i32, ptr %69, align 4, !tbaa !5
  %950 = load i32, ptr %8, align 4, !tbaa !11
  %951 = load float, ptr %20, align 4, !tbaa !28
  invoke void @_Z10ut_check_vPvS_j8DataTypef(ptr noundef %945, ptr noundef %947, i32 noundef %949, i32 noundef %950, float noundef %951)
          to label %952 unwind label %964

952:                                              ; preds = %948
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #11
  %953 = invoke noundef double @_Z10ut_time_msv()
          to label %954 unwind label %969

954:                                              ; preds = %952
  store double %953, ptr %137, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #11
  store i32 0, ptr %138, align 4, !tbaa !5
  br label %955

955:                                              ; preds = %1033, %954
  %956 = load i32, ptr %138, align 4, !tbaa !5
  %957 = icmp slt i32 %956, 6
  br i1 %957, label %973, label %958

958:                                              ; preds = %955
  store i32 12, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #11
  br label %1037

959:                                              ; preds = %940, %939, %912
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #11
  br label %1101

960:                                              ; preds = %944
  %961 = landingpad { ptr, i32 }
          cleanup
  %962 = extractvalue { ptr, i32 } %961, 0
  store ptr %962, ptr %25, align 8
  %963 = extractvalue { ptr, i32 } %961, 1
  store i32 %963, ptr %26, align 4
  br label %968

964:                                              ; preds = %948, %946
  %965 = landingpad { ptr, i32 }
          cleanup
  %966 = extractvalue { ptr, i32 } %965, 0
  store ptr %966, ptr %25, align 8
  %967 = extractvalue { ptr, i32 } %965, 1
  store i32 %967, ptr %26, align 4
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #11
  br label %968

968:                                              ; preds = %964, %960
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #11
  br label %1101

969:                                              ; preds = %952
  %970 = landingpad { ptr, i32 }
          cleanup
  %971 = extractvalue { ptr, i32 } %970, 0
  store ptr %971, ptr %25, align 8
  %972 = extractvalue { ptr, i32 } %970, 1
  store i32 %972, ptr %26, align 4
  br label %1100

973:                                              ; preds = %955
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #11
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %140, ptr noundef nonnull align 8 dereferenceable(24) %109)
          to label %974 unwind label %1000

974:                                              ; preds = %973
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %141, ptr noundef nonnull align 8 dereferenceable(24) %84)
          to label %975 unwind label %1004

975:                                              ; preds = %974
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %142, ptr noundef nonnull align 8 dereferenceable(24) %42)
          to label %976 unwind label %1008

976:                                              ; preds = %975
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %143, ptr align 4 %15, i64 36, i1 false), !tbaa.struct !36
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %144, ptr noundef nonnull align 8 dereferenceable(24) %115)
          to label %977 unwind label %1012

977:                                              ; preds = %976
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %145, ptr noundef nonnull align 8 dereferenceable(24) %111)
          to label %978 unwind label %1016

978:                                              ; preds = %977
  %979 = invoke noundef i32 @_Z3rnnSt6vectorI6TensorSaIS0_EES2_S2_12RNNParamSpecS2_S2_PvP8ArchInfo(ptr noundef %140, ptr noundef %141, ptr noundef %142, ptr noundef byval(%struct.RNNParamSpec) align 8 %143, ptr noundef %144, ptr noundef %145, ptr noundef null, ptr noundef @_ZL15UT_CPU_ARCHINFO)
          to label %980 unwind label %1020

980:                                              ; preds = %978
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %145) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %144) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %142) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %141) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %140) #11
  store i32 %979, ptr %139, align 4, !tbaa !39
  %981 = load i32, ptr %139, align 4, !tbaa !39
  %982 = icmp ne i32 %981, 0
  br i1 %982, label %983, label %1032

983:                                              ; preds = %980
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #11
  %984 = call i64 (i64, ...) @syscall(i64 noundef 186) #11
  %985 = trunc i64 %984 to i32
  store i32 %985, ptr %146, align 4, !tbaa !5
  %986 = load i32, ptr %146, align 4, !tbaa !5
  %987 = invoke i32 (ptr, ...) @printf(ptr noundef @.str, i32 noundef %986)
          to label %988 unwind label %1028

988:                                              ; preds = %983
  %989 = load ptr, ptr @stdout, align 8, !tbaa !9
  %990 = invoke i32 @fflush(ptr noundef %989)
          to label %991 unwind label %1028

991:                                              ; preds = %988
  %992 = load i32, ptr %139, align 4, !tbaa !39
  %993 = invoke ptr @ee2str(i32 noundef %992)
          to label %994 unwind label %1028

994:                                              ; preds = %991
  %995 = invoke i32 (ptr, ...) @printf(ptr noundef @.str.2, ptr noundef %993)
          to label %996 unwind label %1028

996:                                              ; preds = %994
  %997 = load ptr, ptr @stdout, align 8, !tbaa !9
  %998 = invoke i32 @fflush(ptr noundef %997)
          to label %999 unwind label %1028

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

1000:                                             ; preds = %973
  %1001 = landingpad { ptr, i32 }
          cleanup
  %1002 = extractvalue { ptr, i32 } %1001, 0
  store ptr %1002, ptr %25, align 8
  %1003 = extractvalue { ptr, i32 } %1001, 1
  store i32 %1003, ptr %26, align 4
  br label %1036

1004:                                             ; preds = %974
  %1005 = landingpad { ptr, i32 }
          cleanup
  %1006 = extractvalue { ptr, i32 } %1005, 0
  store ptr %1006, ptr %25, align 8
  %1007 = extractvalue { ptr, i32 } %1005, 1
  store i32 %1007, ptr %26, align 4
  br label %1027

1008:                                             ; preds = %975
  %1009 = landingpad { ptr, i32 }
          cleanup
  %1010 = extractvalue { ptr, i32 } %1009, 0
  store ptr %1010, ptr %25, align 8
  %1011 = extractvalue { ptr, i32 } %1009, 1
  store i32 %1011, ptr %26, align 4
  br label %1026

1012:                                             ; preds = %976
  %1013 = landingpad { ptr, i32 }
          cleanup
  %1014 = extractvalue { ptr, i32 } %1013, 0
  store ptr %1014, ptr %25, align 8
  %1015 = extractvalue { ptr, i32 } %1013, 1
  store i32 %1015, ptr %26, align 4
  br label %1025

1016:                                             ; preds = %977
  %1017 = landingpad { ptr, i32 }
          cleanup
  %1018 = extractvalue { ptr, i32 } %1017, 0
  store ptr %1018, ptr %25, align 8
  %1019 = extractvalue { ptr, i32 } %1017, 1
  store i32 %1019, ptr %26, align 4
  br label %1024

1020:                                             ; preds = %978
  %1021 = landingpad { ptr, i32 }
          cleanup
  %1022 = extractvalue { ptr, i32 } %1021, 0
  store ptr %1022, ptr %25, align 8
  %1023 = extractvalue { ptr, i32 } %1021, 1
  store i32 %1023, ptr %26, align 4
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %145) #11
  br label %1024

1024:                                             ; preds = %1020, %1016
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %144) #11
  br label %1025

1025:                                             ; preds = %1024, %1012
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %142) #11
  br label %1026

1026:                                             ; preds = %1025, %1008
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %141) #11
  br label %1027

1027:                                             ; preds = %1026, %1004
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %140) #11
  br label %1036

1028:                                             ; preds = %996, %994, %991, %988, %983
  %1029 = landingpad { ptr, i32 }
          cleanup
  %1030 = extractvalue { ptr, i32 } %1029, 0
  store ptr %1030, ptr %25, align 8
  %1031 = extractvalue { ptr, i32 } %1029, 1
  store i32 %1031, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #11
  br label %1036

1032:                                             ; preds = %980
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #11
  br label %1033

1033:                                             ; preds = %1032
  %1034 = load i32, ptr %138, align 4, !tbaa !5
  %1035 = add nsw i32 %1034, 1
  store i32 %1035, ptr %138, align 4, !tbaa !5
  br label %955, !llvm.loop !47

1036:                                             ; preds = %1028, %1027, %1000
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #11
  br label %1100

1037:                                             ; preds = %958
  call void @llvm.lifetime.start.p0(i64 8, ptr %147) #11
  %1038 = invoke noundef double @_Z10ut_time_msv()
          to label %1039 unwind label %1091

1039:                                             ; preds = %1037
  store double %1038, ptr %147, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 8, ptr %148) #11
  %1040 = load double, ptr %147, align 8, !tbaa !45
  %1041 = load double, ptr %137, align 8, !tbaa !45
  %1042 = fsub double %1040, %1041
  %1043 = fdiv double %1042, 6.000000e+00
  store double %1043, ptr %148, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 150, ptr %149) #11
  call void @llvm.lifetime.start.p0(i64 120, ptr %150) #11
  %1044 = getelementptr inbounds [120 x i8], ptr %150, i64 0, i64 0
  %1045 = load i32, ptr %11, align 4, !tbaa !5
  %1046 = load i32, ptr %12, align 4, !tbaa !5
  %1047 = load i32, ptr %13, align 4, !tbaa !5
  %1048 = load i32, ptr %14, align 4, !tbaa !5
  %1049 = load i32, ptr %11, align 4, !tbaa !5
  %1050 = load i32, ptr %14, align 4, !tbaa !5
  %1051 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %1044, ptr noundef @.str.3, i32 noundef %1045, i32 noundef %1046, i32 noundef %1047, i32 noundef %1048, i32 noundef %1049, i32 noundef %1050) #11
  %1052 = getelementptr inbounds [150 x i8], ptr %149, i64 0, i64 0
  %1053 = getelementptr inbounds [120 x i8], ptr %150, i64 0, i64 0
  %1054 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef %1052, ptr noundef @.str.4, ptr noundef @.str.5, ptr noundef %1053) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %151) #11
  %1055 = load i32, ptr %14, align 4, !tbaa !5
  %1056 = load i32, ptr %13, align 4, !tbaa !5
  %1057 = add i32 %1055, %1056
  %1058 = uitofp i32 %1057 to double
  store double %1058, ptr %151, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 8, ptr %152) #11
  %1059 = load i32, ptr %11, align 4, !tbaa !5
  %1060 = uitofp i32 %1059 to double
  %1061 = fmul double 1.000000e+00, %1060
  %1062 = load i32, ptr %12, align 4, !tbaa !5
  %1063 = uitofp i32 %1062 to double
  %1064 = fmul double %1061, %1063
  %1065 = load double, ptr %151, align 8, !tbaa !45
  %1066 = fmul double 2.000000e+00, %1065
  %1067 = load i32, ptr %21, align 4, !tbaa !5
  %1068 = uitofp i32 %1067 to double
  %1069 = fmul double %1066, %1068
  %1070 = load i32, ptr %18, align 4, !tbaa !5
  %1071 = sitofp i32 %1070 to double
  %1072 = load i32, ptr %21, align 4, !tbaa !5
  %1073 = load i32, ptr %18, align 4, !tbaa !5
  %1074 = mul i32 %1072, %1073
  %1075 = uitofp i32 %1074 to double
  %1076 = call double @llvm.fmuladd.f64(double %1069, double %1071, double %1075)
  %1077 = getelementptr inbounds %struct.RNNParamSpec, ptr %15, i32 0, i32 3
  %1078 = load i32, ptr %1077, align 4, !tbaa !23
  %1079 = getelementptr inbounds %struct.RNNParamSpec, ptr %15, i32 0, i32 1
  %1080 = load i32, ptr %1079, align 4, !tbaa !22
  %1081 = mul i32 %1078, %1080
  %1082 = uitofp i32 %1081 to double
  %1083 = fadd double %1076, %1082
  %1084 = fmul double %1064, %1083
  store double %1084, ptr %152, align 8, !tbaa !45
  %1085 = load i32, ptr %8, align 4, !tbaa !11
  %1086 = getelementptr inbounds [150 x i8], ptr %149, i64 0, i64 0
  %1087 = load double, ptr %152, align 8, !tbaa !45
  %1088 = load double, ptr %148, align 8, !tbaa !45
  invoke void @_Z6ut_log8DataTypePcdd(i32 noundef %1085, ptr noundef %1086, double noundef %1087, double noundef %1088)
          to label %1089 unwind label %1095

1089:                                             ; preds = %1039
  %1090 = load ptr, ptr %28, align 8, !tbaa !9
  call void @free(ptr noundef %1090) #11
  store i32 0, ptr %5, align 4
  store i32 1, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %152) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #11
  call void @llvm.lifetime.end.p0(i64 120, ptr %150) #11
  call void @llvm.lifetime.end.p0(i64 150, ptr %149) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %148) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %115) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %115) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %113) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %113) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %111) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %111) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %109) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %109) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %95) #11
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %90) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %90) #11
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %88) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %88) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %86) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %86) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %84) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %84) #11
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %78) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %78) #11
  call void @llvm.lifetime.end.p0(i64 92, ptr %70) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #11
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %61) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %61) #11
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %58) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %58) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %42) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %42) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %40) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %40) #11
  call void @_ZNSt6vectorI10TensorDescSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %34) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %34) #11
  call void @_ZNSt6vectorI10TensorDescSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %32) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %32) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #11
  call void @llvm.lifetime.end.p0(i64 92, ptr %22) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  br label %1130

1091:                                             ; preds = %1037
  %1092 = landingpad { ptr, i32 }
          cleanup
  %1093 = extractvalue { ptr, i32 } %1092, 0
  store ptr %1093, ptr %25, align 8
  %1094 = extractvalue { ptr, i32 } %1092, 1
  store i32 %1094, ptr %26, align 4
  br label %1099

1095:                                             ; preds = %1039
  %1096 = landingpad { ptr, i32 }
          cleanup
  %1097 = extractvalue { ptr, i32 } %1096, 0
  store ptr %1097, ptr %25, align 8
  %1098 = extractvalue { ptr, i32 } %1096, 1
  store i32 %1098, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %152) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #11
  call void @llvm.lifetime.end.p0(i64 120, ptr %150) #11
  call void @llvm.lifetime.end.p0(i64 150, ptr %149) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %148) #11
  br label %1099

1099:                                             ; preds = %1095, %1091
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #11
  br label %1100

1100:                                             ; preds = %1099, %1036, %969
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #11
  br label %1101

1101:                                             ; preds = %1100, %968, %959, %908, %907, %838
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %115) #11
  br label %1102

1102:                                             ; preds = %1101, %834
  call void @llvm.lifetime.end.p0(i64 24, ptr %115) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %113) #11
  br label %1103

1103:                                             ; preds = %1102, %830
  call void @llvm.lifetime.end.p0(i64 24, ptr %113) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %111) #11
  br label %1104

1104:                                             ; preds = %1103, %826
  call void @llvm.lifetime.end.p0(i64 24, ptr %111) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %109) #11
  br label %1105

1105:                                             ; preds = %1104, %822
  call void @llvm.lifetime.end.p0(i64 24, ptr %109) #11
  br label %1106

1106:                                             ; preds = %1105, %821, %766, %721
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #11
  br label %1107

1107:                                             ; preds = %1106, %717
  call void @llvm.lifetime.end.p0(i64 32, ptr %95) #11
  br label %1108

1108:                                             ; preds = %1107, %684
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %90) #11
  br label %1109

1109:                                             ; preds = %1108, %638
  call void @llvm.lifetime.end.p0(i64 24, ptr %90) #11
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %88) #11
  br label %1110

1110:                                             ; preds = %1109, %634
  call void @llvm.lifetime.end.p0(i64 24, ptr %88) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %86) #11
  br label %1111

1111:                                             ; preds = %1110, %630
  call void @llvm.lifetime.end.p0(i64 24, ptr %86) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %84) #11
  br label %1112

1112:                                             ; preds = %1111, %626
  call void @llvm.lifetime.end.p0(i64 24, ptr %84) #11
  br label %1113

1113:                                             ; preds = %1112, %625
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %78) #11
  br label %1114

1114:                                             ; preds = %1113, %591
  call void @llvm.lifetime.end.p0(i64 24, ptr %78) #11
  br label %1115

1115:                                             ; preds = %1114, %590, %551
  call void @llvm.lifetime.end.p0(i64 92, ptr %70) #11
  br label %1116

1116:                                             ; preds = %1115, %547
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #11
  br label %1117

1117:                                             ; preds = %1116, %543, %542
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %61) #11
  br label %1118

1118:                                             ; preds = %1117, %492
  call void @llvm.lifetime.end.p0(i64 24, ptr %61) #11
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %58) #11
  br label %1119

1119:                                             ; preds = %1118, %488
  call void @llvm.lifetime.end.p0(i64 24, ptr %58) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #11
  br label %1120

1120:                                             ; preds = %1119, %484
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #11
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #11
  br label %1121

1121:                                             ; preds = %1120, %480
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #11
  br label %1122

1122:                                             ; preds = %1121, %451, %390
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %42) #11
  br label %1123

1123:                                             ; preds = %1122, %332
  call void @llvm.lifetime.end.p0(i64 24, ptr %42) #11
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %40) #11
  br label %1124

1124:                                             ; preds = %1123, %328
  call void @llvm.lifetime.end.p0(i64 24, ptr %40) #11
  br label %1125

1125:                                             ; preds = %1124, %324, %320, %316, %312
  call void @_ZNSt6vectorI10TensorDescSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %34) #11
  br label %1126

1126:                                             ; preds = %1125, %308
  call void @llvm.lifetime.end.p0(i64 24, ptr %34) #11
  call void @_ZNSt6vectorI10TensorDescSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %32) #11
  br label %1127

1127:                                             ; preds = %1126, %304
  call void @llvm.lifetime.end.p0(i64 24, ptr %32) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #11
  br label %1128

1128:                                             ; preds = %1127, %300, %296
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #11
  br label %1129

1129:                                             ; preds = %1128, %292
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #11
  call void @llvm.lifetime.end.p0(i64 92, ptr %22) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #11
  call void @llvm.lifetime.end.p0(i64 36, ptr %15) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #11
  br label %1132

1130:                                             ; preds = %1089, %201
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #11
  call void @llvm.lifetime.end.p0(i64 36, ptr %15) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #11
  %1131 = load i32, ptr %5, align 4
  ret i32 %1131

1132:                                             ; preds = %1129
  %1133 = load ptr, ptr %25, align 8
  %1134 = load i32, ptr %26, align 4
  %1135 = insertvalue { ptr, i32 } poison, ptr %1133, 0
  %1136 = insertvalue { ptr, i32 } %1135, i32 %1134, 1
  resume { ptr, i32 } %1136
}

; 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 uwtable
declare dso_local void @_Z9tensor3df8DataType10DataFormatjjj(ptr dead_on_unwind noalias writable sret(%struct.TensorDesc) align 4, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #6

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt6vectorI10TensorDescSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #9 align 2

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

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

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

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

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

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

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

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

declare noundef i32 @_Z21rnn_infer_output_sizeSt6vectorIP6TensorSaIS1_EE12RNNParamSpecS3_P8ArchInfo(ptr noundef, ptr noundef byval(%struct.RNNParamSpec) 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 #9 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN6Tensor6lengthEv(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

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

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

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

declare noundef i32 @_Z26rnn_transform_filter_bytesSt6vectorI6TensorSaIS0_EE12RNNParamSpecPvP8ArchInfo(ptr noundef, ptr noundef byval(%struct.RNNParamSpec) 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: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNSt6vectorIjSaIjEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24)) #9 align 2

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

; Function Attrs: 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 nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #9 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) #9 align 2

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

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

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

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

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

declare noundef double @_Z10ut_time_msv() #3

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

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

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_ZTS8DataType", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"_ZTS7RNNMode", !7, i64 0}
!15 = !{!16, !14, i64 0}
!16 = !{!"_ZTS12RNNParamSpec", !14, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !17, i64 16, !17, i64 20, !18, i64 24, !17, i64 28, !19, i64 32}
!17 = !{!"float", !7, i64 0}
!18 = !{!"bool", !7, i64 0}
!19 = !{!"_ZTS14ActivationMode", !7, i64 0}
!20 = !{!16, !6, i64 8}
!21 = !{!16, !18, i64 24}
!22 = !{!16, !6, i64 4}
!23 = !{!16, !6, i64 12}
!24 = !{!16, !17, i64 28}
!25 = !{!16, !19, i64 32}
!26 = !{!16, !17, i64 16}
!27 = !{!16, !17, i64 20}
!28 = !{!17, !17, i64 0}
!29 = !{i64 0, i64 4, !11, i64 4, i64 4, !30, i64 8, i64 4, !5, i64 12, i64 80, !32}
!30 = !{!31, !31, i64 0}
!31 = !{!"_ZTS10DataFormat", !7, i64 0}
!32 = !{!7, !7, i64 0}
!33 = distinct !{!33, !34}
!34 = !{!"llvm.loop.mustprogress"}
!35 = distinct !{!35, !34}
!36 = !{i64 0, i64 4, !13, i64 4, i64 4, !5, i64 8, i64 4, !5, i64 12, i64 4, !5, i64 16, i64 4, !28, i64 20, i64 4, !28, i64 24, i64 1, !37, i64 28, i64 4, !28, i64 32, i64 4, !38}
!37 = !{!18, !18, i64 0}
!38 = !{!19, !19, i64 0}
!39 = !{!40, !40, i64 0}
!40 = !{!"_ZTS2EE", !7, i64 0}
!41 = distinct !{!41, !34}
!42 = !{!43, !44, i64 0}
!43 = !{!"_ZTS8ArchInfo", !44, i64 0, !10, i64 8}
!44 = !{!"_ZTS4Arch", !7, i64 0}
!45 = !{!46, !46, i64 0}
!46 = !{!"double", !7, i64 0}
!47 = distinct !{!47, !34}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.ArchInfo = type { i32, ptr }
%struct.TensorDesc = type { i32, i32, i32, [20 x i32] }
%class.Tensor = type { %"class.std::shared_ptr", %"class.std::shared_ptr.0" }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::shared_ptr.0" = type { %"class.std::__shared_ptr.1" }
%"class.std::__shared_ptr.1" = type { ptr, %"class.std::__shared_count" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<TensorDesc, std::allocator<TensorDesc>>::_Vector_impl" }
%"struct.std::_Vector_base<TensorDesc, std::allocator<TensorDesc>>::_Vector_impl" = type { %"struct.std::_Vector_base<TensorDesc, std::allocator<TensorDesc>>::_Vector_impl_data" }
%"struct.std::_Vector_base<TensorDesc, std::allocator<TensorDesc>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator" = type { i8 }
%"class.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = 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.5" = type { i8 }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = 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.10" = type { i8 }
%struct.RNNParamSpec = type { i32, i32, i32, i32, float, float, i8, float, i32 }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.15" = type { i8 }

@.str = external hidden unnamed_addr constant [20 x i8], align 1
@stdout = external local_unnamed_addr global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [23 x i8], align 1
@_ZL15UT_CPU_ARCHINFO = external hidden global %struct.ArchInfo, align 8
@.str.2 = external hidden unnamed_addr constant [18 x i8], align 1
@_ZL18UT_SERIAL_ARCHINFO = external hidden global %struct.ArchInfo, align 8
@.str.3 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [4 x i8], align 1
@switch.table._Z7rnnTestiPPc8DataType7RNNMode = private unnamed_addr constant [3 x i64] [i64 2, i64 1, i64 2], align 8
@switch.table._Z7rnnTestiPPc8DataType7RNNMode.1 = private unnamed_addr constant [3 x i32] [i32 1024, i32 0, i32 0], align 4
@switch.table._Z7rnnTestiPPc8DataType7RNNMode.2 = private unnamed_addr constant [3 x i32] [i32 4, i32 3, i32 3], align 4
@switch.table._Z7rnnTestiPPc8DataType7RNNMode.3 = private unnamed_addr constant [3 x float] [float 4.000000e+01, float 1.000000e+01, float 1.000000e+01], align 4
@switch.table._Z7rnnTestiPPc8DataType7RNNMode.4 = private unnamed_addr constant [3 x i64] [i64 2, i64 1, i64 1], align 8

; Function Attrs: mustprogress uwtable
define dso_local noundef range(i32 0, 2) i32 @_Z7rnnTestiPPc8DataType7RNNMode(i32 noundef %0, ptr nocapture noundef readonly %1, i32 noundef %2, i32 noundef %3) local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %.sroa.30 = alloca [3 x i8], align 1
  %5 = alloca %struct.TensorDesc, align 8
  %6 = alloca %class.Tensor, align 8
  %7 = alloca %class.Tensor, align 8
  %8 = alloca i32, align 4
  %9 = alloca %"class.std::vector", align 8
  %10 = alloca %"class.std::allocator", align 1
  %11 = alloca %"class.std::vector", align 8
  %12 = alloca %"class.std::allocator", align 1
  %13 = alloca %struct.TensorDesc, align 4
  %14 = alloca %struct.TensorDesc, align 4
  %15 = alloca %struct.TensorDesc, align 4
  %16 = alloca %struct.TensorDesc, align 4
  %17 = alloca %"class.std::vector.3", align 8
  %18 = alloca %"class.std::allocator.5", align 1
  %19 = alloca %"class.std::vector.3", align 8
  %20 = alloca %"class.std::allocator.5", align 1
  %21 = alloca %struct.TensorDesc, align 8
  %22 = alloca %struct.TensorDesc, align 8
  %23 = alloca %class.Tensor, align 8
  %24 = alloca %struct.TensorDesc, align 8
  %25 = alloca %struct.TensorDesc, align 8
  %26 = alloca %struct.TensorDesc, align 8
  %27 = alloca %class.Tensor, align 8
  %28 = alloca %struct.TensorDesc, align 8
  %29 = alloca %class.Tensor, align 8
  %30 = alloca %class.Tensor, align 8
  %31 = alloca %"class.std::vector.8", align 8
  %32 = alloca ptr, align 8
  %33 = alloca %"class.std::allocator.10", align 1
  %34 = alloca %"class.std::vector.8", align 8
  %35 = alloca ptr, align 8
  %36 = alloca %"class.std::allocator.10", align 1
  %37 = alloca %"class.std::vector.8", align 8
  %38 = alloca %struct.RNNParamSpec, align 8
  %39 = alloca %"class.std::vector.8", align 8
  %40 = alloca %struct.TensorDesc, align 8
  %41 = alloca %class.Tensor, align 8
  %42 = alloca %class.Tensor, align 8
  %43 = alloca %class.Tensor, align 8
  %44 = alloca %struct.RNNParamSpec, align 8
  %45 = alloca %"class.std::vector.13", align 8
  %46 = alloca %"class.std::allocator.15", align 1
  %47 = alloca %"class.std::vector.3", align 8
  %48 = alloca %struct.RNNParamSpec, align 8
  %49 = alloca %"class.std::vector.3", align 8
  %50 = alloca %"class.std::allocator.5", align 1
  %51 = alloca %"class.std::vector.3", align 8
  %52 = alloca %"class.std::allocator.5", align 1
  %53 = alloca %"class.std::vector.8", align 8
  %54 = alloca %"class.std::allocator.10", align 1
  %55 = alloca %"class.std::vector.8", align 8
  %56 = alloca %"class.std::allocator.10", align 1
  %57 = alloca %struct.TensorDesc, align 8
  %58 = alloca %struct.TensorDesc, align 8
  %59 = alloca %class.Tensor, align 8
  %60 = alloca %struct.TensorDesc, align 8
  %61 = alloca %"class.std::vector.3", align 8
  %62 = alloca %struct.RNNParamSpec, align 8
  %63 = alloca %class.Tensor, align 8
  %64 = alloca %"class.std::vector.8", align 8
  %65 = alloca %"class.std::vector.3", align 8
  %66 = alloca %struct.RNNParamSpec, align 8
  %67 = alloca %class.Tensor, align 8
  %68 = alloca %"class.std::vector.8", align 8
  %69 = alloca %"class.std::vector.3", align 8
  %70 = alloca %"class.std::allocator.5", align 1
  %71 = alloca %"class.std::vector.3", align 8
  %72 = alloca %"class.std::allocator.5", align 1
  %73 = alloca %"class.std::vector.3", align 8
  %74 = alloca %"class.std::allocator.5", align 1
  %75 = alloca %"class.std::vector.3", align 8
  %76 = alloca %"class.std::allocator.5", align 1
  %77 = alloca %class.Tensor, align 8
  %78 = alloca %"class.std::vector.3", align 8
  %79 = alloca %"class.std::vector.3", align 8
  %80 = alloca %"class.std::vector.3", align 8
  %81 = alloca %struct.RNNParamSpec, align 8
  %82 = alloca %"class.std::vector.3", align 8
  %83 = alloca %"class.std::vector.3", align 8
  %84 = alloca %class.Tensor, align 8
  %85 = alloca %"class.std::vector.3", align 8
  %86 = alloca %"class.std::vector.3", align 8
  %87 = alloca %"class.std::vector.3", align 8
  %88 = alloca %struct.RNNParamSpec, align 8
  %89 = alloca %"class.std::vector.3", align 8
  %90 = alloca %"class.std::vector.3", align 8
  %91 = alloca %class.Tensor, align 8
  %92 = alloca %class.Tensor, align 8
  %93 = alloca %"class.std::vector.3", align 8
  %94 = alloca %"class.std::vector.3", align 8
  %95 = alloca %"class.std::vector.3", align 8
  %96 = alloca %struct.RNNParamSpec, align 8
  %97 = alloca %"class.std::vector.3", align 8
  %98 = alloca %"class.std::vector.3", align 8
  %99 = alloca [150 x i8], align 16
  %100 = alloca [120 x i8], align 16
  %101 = icmp eq i32 %0, 5
  br i1 %101, label %111, label %102

102:                                              ; preds = %4
  %103 = tail call i64 (i64, ...) @syscall(i64 noundef 186) #14
  %104 = trunc i64 %103 to i32
  %105 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %104)
  %106 = load ptr, ptr @stdout, align 8, !tbaa !5
  %107 = tail call i32 @fflush(ptr noundef %106)
  %108 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.1)
  %109 = load ptr, ptr @stdout, align 8, !tbaa !5
  %110 = tail call i32 @fflush(ptr noundef %109)
  tail call void @exit(i32 noundef 1) #15
  unreachable

111:                                              ; preds = %4
  %112 = getelementptr inbounds i8, ptr %1, i64 8
  %113 = load ptr, ptr %112, align 8, !tbaa !5
  %114 = tail call i32 @atoi(ptr nocapture noundef %113) #16
  %115 = getelementptr inbounds i8, ptr %1, i64 16
  %116 = load ptr, ptr %115, align 8, !tbaa !5
  %117 = tail call i32 @atoi(ptr nocapture noundef %116) #16
  %118 = getelementptr inbounds i8, ptr %1, i64 24
  %119 = load ptr, ptr %118, align 8, !tbaa !5
  %120 = tail call i32 @atoi(ptr nocapture noundef %119) #16
  %121 = getelementptr inbounds i8, ptr %1, i64 32
  %122 = load ptr, ptr %121, align 8, !tbaa !5
  %123 = tail call i32 @atoi(ptr nocapture noundef %122) #16
  call void @llvm.lifetime.start.p0(i64 3, ptr nonnull %.sroa.30)
  %switch.tableidx = add i32 %3, -1
  %124 = icmp ult i32 %switch.tableidx, 3
  br i1 %124, label %switch.lookup, label %639

switch.lookup:                                    ; preds = %111
  %125 = zext nneg i32 %switch.tableidx to i64
  %switch.gep = getelementptr inbounds [3 x i64], ptr @switch.table._Z7rnnTestiPPc8DataType7RNNMode, i64 0, i64 %125
  %switch.load = load i64, ptr %switch.gep, align 8
  %126 = zext nneg i32 %switch.tableidx to i64
  %switch.gep460 = getelementptr inbounds [3 x i32], ptr @switch.table._Z7rnnTestiPPc8DataType7RNNMode.1, i64 0, i64 %126
  %switch.load461 = load i32, ptr %switch.gep460, align 4
  %127 = zext nneg i32 %switch.tableidx to i64
  %switch.gep462 = getelementptr inbounds [3 x i32], ptr @switch.table._Z7rnnTestiPPc8DataType7RNNMode.2, i64 0, i64 %127
  %switch.load463 = load i32, ptr %switch.gep462, align 4
  %128 = zext nneg i32 %switch.tableidx to i64
  %switch.gep464 = getelementptr inbounds [3 x float], ptr @switch.table._Z7rnnTestiPPc8DataType7RNNMode.3, i64 0, i64 %128
  %switch.load465 = load float, ptr %switch.gep464, align 4
  %129 = zext nneg i32 %switch.tableidx to i64
  %switch.gep466 = getelementptr inbounds [3 x i64], ptr @switch.table._Z7rnnTestiPPc8DataType7RNNMode.4, i64 0, i64 %129
  %switch.load467 = load i64, ptr %switch.gep466, align 8
  %.not = icmp eq i32 %3, 1
  %.sroa.19.1 = select i1 %.not, i32 %switch.load461, i32 0
  %.sroa.30195.0 = select i1 %.not, float 1.000000e+00, float 0.000000e+00
  %.not439 = icmp eq i32 %.sroa.19.1, 0
  %130 = select i1 %.not439, i32 %123, i32 %.sroa.19.1
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %5) #14
  call void @_Z9tensor3df8DataType10DataFormatjjj(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %5, i32 noundef %2, i32 noundef 15, i32 noundef %114, i32 noundef %117, i32 noundef %120)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #14
  call void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %6, i32 noundef 1)
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %5)
          to label %131 unwind label %157

131:                                              ; preds = %switch.lookup
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %132 unwind label %157

132:                                              ; preds = %131
  %133 = mul i32 %117, %114
  %134 = mul i32 %133, %120
  %135 = invoke noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef %134, i32 noundef %2, i32 noundef 0)
          to label %136 unwind label %159

136:                                              ; preds = %132
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %6) #14
  %137 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %7, i32 noundef 1)
          to label %138 unwind label %161

138:                                              ; preds = %136
  %139 = invoke noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef nonnull byval(%struct.TensorDesc) align 8 %5)
          to label %140 unwind label %161

140:                                              ; preds = %138
  %141 = zext i32 %139 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %137, ptr noundef %135, i64 noundef %141)
          to label %142 unwind label %161

142:                                              ; preds = %140
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #14
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #14
  call void @_ZNSaI10TensorDescEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #14
  invoke void @_ZNSt6vectorI10TensorDescSaIS0_EEC2EmRKS1_(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 2, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %143 unwind label %163

143:                                              ; preds = %142
  call void @_ZNSt15__new_allocatorI10TensorDescED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %11) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #14
  call void @_ZNSaI10TensorDescEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #14
  invoke void @_ZNSt6vectorI10TensorDescSaIS0_EEC2EmRKS1_(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef 2, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %144 unwind label %165

144:                                              ; preds = %143
  call void @_ZNSt15__new_allocatorI10TensorDescED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #14
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %13) #14
  %145 = mul i32 %130, %switch.load463
  %146 = add i32 %123, %120
  invoke void @_Z9tensor2df8DataType10DataFormatjj(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %13, i32 noundef %2, i32 noundef 17, i32 noundef %145, i32 noundef %146)
          to label %147 unwind label %167

147:                                              ; preds = %144
  %148 = call noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt6vectorI10TensorDescSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 0) #14
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(92) %148, ptr noundef nonnull align 4 dereferenceable(92) %13, i64 92, i1 false), !tbaa.struct !9
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %13) #14
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %14) #14
  invoke void @_Z9tensor2df8DataType10DataFormatjj(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %14, i32 noundef %2, i32 noundef 17, i32 noundef %123, i32 noundef %.sroa.19.1)
          to label %149 unwind label %169

149:                                              ; preds = %147
  %150 = call noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt6vectorI10TensorDescSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef 1) #14
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(92) %150, ptr noundef nonnull align 4 dereferenceable(92) %14, i64 92, i1 false), !tbaa.struct !9
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %14) #14
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %15) #14
  invoke void @_Z8tensor1d8DataTypej(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %15, i32 noundef %2, i32 noundef %145)
          to label %151 unwind label %171

151:                                              ; preds = %149
  %152 = call noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt6vectorI10TensorDescSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef 0) #14
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(92) %152, ptr noundef nonnull align 4 dereferenceable(92) %15, i64 92, i1 false), !tbaa.struct !9
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %15) #14
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %16) #14
  invoke void @_Z8tensor1d8DataTypej(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %16, i32 noundef %2, i32 noundef %123)
          to label %153 unwind label %173

153:                                              ; preds = %151
  %154 = call noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt6vectorI10TensorDescSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef 1) #14
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(92) %154, ptr noundef nonnull align 4 dereferenceable(92) %16, i64 92, i1 false), !tbaa.struct !9
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %16) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %17) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %18) #14
  call void @_ZNSaI6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #14
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2EmRKS1_(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %switch.load467, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %155 unwind label %175

155:                                              ; preds = %153
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %19) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #14
  call void @_ZNSaI6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #14
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2EmRKS1_(ptr noundef nonnull align 8 dereferenceable(24) %19, i64 noundef %switch.load, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %156 unwind label %177

156:                                              ; preds = %155
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #14
  br label %179

157:                                              ; preds = %131, %switch.lookup
  %158 = landingpad { ptr, i32 }
          cleanup
  br label %638

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

161:                                              ; preds = %140, %138, %136
  %162 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #14
  br label %638

163:                                              ; preds = %142
  %164 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorI10TensorDescED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #14
  br label %637

165:                                              ; preds = %143
  %166 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorI10TensorDescED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #14
  br label %636

167:                                              ; preds = %144
  %168 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %13) #14
  br label %635

169:                                              ; preds = %147
  %170 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %14) #14
  br label %635

171:                                              ; preds = %149
  %172 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %15) #14
  br label %635

173:                                              ; preds = %151
  %174 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %16) #14
  br label %635

175:                                              ; preds = %153
  %176 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #14
  br label %634

177:                                              ; preds = %155
  %178 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #14
  br label %633

179:                                              ; preds = %156, %200
  %indvars.iv = phi i64 [ 0, %156 ], [ %indvars.iv.next, %200 ]
  %180 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %indvars.iv) #14
  %181 = call noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt6vectorI10TensorDescSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %indvars.iv) #14
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(92) %21, ptr noundef nonnull align 4 dereferenceable(92) %181, i64 92, i1 false), !tbaa.struct !9
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %180, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %21)
          to label %182 unwind label %201

182:                                              ; preds = %179
  %183 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %indvars.iv) #14
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %183)
          to label %184 unwind label %201

184:                                              ; preds = %182
  %185 = call noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt6vectorI10TensorDescSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %indvars.iv) #14
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(92) %22, ptr noundef nonnull align 4 dereferenceable(92) %185, i64 92, i1 false), !tbaa.struct !9
  %186 = invoke noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef nonnull byval(%struct.TensorDesc) align 8 %22)
          to label %187 unwind label %203

187:                                              ; preds = %184
  %188 = invoke noundef i32 @_Z7bytesOf8DataType(i32 noundef %2)
          to label %189 unwind label %203

189:                                              ; preds = %187
  %190 = udiv i32 %186, %188
  %191 = invoke noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef %190, i32 noundef %2, i32 noundef 0)
          to label %192 unwind label %203

192:                                              ; preds = %189
  %193 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %indvars.iv) #14
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 8 dereferenceable(32) %193) #14
  %194 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %23, i32 noundef 1)
          to label %195 unwind label %205

195:                                              ; preds = %192
  %196 = call noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt6vectorI10TensorDescSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %9, i64 noundef %indvars.iv) #14
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(92) %24, ptr noundef nonnull align 4 dereferenceable(92) %196, i64 92, i1 false), !tbaa.struct !9
  %197 = invoke noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef nonnull byval(%struct.TensorDesc) align 8 %24)
          to label %198 unwind label %205

198:                                              ; preds = %195
  %199 = zext i32 %197 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %194, ptr noundef %191, i64 noundef %199)
          to label %200 unwind label %205

200:                                              ; preds = %198
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #14
  call void @free(ptr noundef %191) #14
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %switch.load467
  br i1 %exitcond.not, label %.preheader440, label %179, !llvm.loop !17

201:                                              ; preds = %182, %179
  %202 = landingpad { ptr, i32 }
          cleanup
  br label %632

203:                                              ; preds = %189, %187, %184
  %204 = landingpad { ptr, i32 }
          cleanup
  br label %632

205:                                              ; preds = %198, %195, %192
  %206 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #14
  br label %632

207:                                              ; preds = %228
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #14
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %29, i32 noundef 1)
          to label %235 unwind label %253

.preheader440:                                    ; preds = %200, %228
  %indvars.iv447 = phi i64 [ %indvars.iv.next448, %228 ], [ 0, %200 ]
  %208 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %19, i64 noundef %indvars.iv447) #14
  %209 = call noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt6vectorI10TensorDescSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %indvars.iv447) #14
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(92) %25, ptr noundef nonnull align 4 dereferenceable(92) %209, i64 92, i1 false), !tbaa.struct !9
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %208, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %25)
          to label %210 unwind label %229

210:                                              ; preds = %.preheader440
  %211 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %19, i64 noundef %indvars.iv447) #14
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %211)
          to label %212 unwind label %229

212:                                              ; preds = %210
  %213 = call noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt6vectorI10TensorDescSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %indvars.iv447) #14
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(92) %26, ptr noundef nonnull align 4 dereferenceable(92) %213, i64 92, i1 false), !tbaa.struct !9
  %214 = invoke noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef nonnull byval(%struct.TensorDesc) align 8 %26)
          to label %215 unwind label %231

215:                                              ; preds = %212
  %216 = invoke noundef i32 @_Z7bytesOf8DataType(i32 noundef %2)
          to label %217 unwind label %231

217:                                              ; preds = %215
  %218 = udiv i32 %214, %216
  %219 = invoke noundef ptr @_Z10ut_input_vj8DataType14UT_RANDOM_TYPE(i32 noundef %218, i32 noundef %2, i32 noundef 0)
          to label %220 unwind label %231

220:                                              ; preds = %217
  %221 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %19, i64 noundef %indvars.iv447) #14
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull align 8 dereferenceable(32) %221) #14
  %222 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %27, i32 noundef 1)
          to label %223 unwind label %233

223:                                              ; preds = %220
  %224 = call noundef nonnull align 4 dereferenceable(92) ptr @_ZNSt6vectorI10TensorDescSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %11, i64 noundef %indvars.iv447) #14
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(92) %28, ptr noundef nonnull align 4 dereferenceable(92) %224, i64 92, i1 false), !tbaa.struct !9
  %225 = invoke noundef i32 @_Z14tensorNumBytes10TensorDesc(ptr noundef nonnull byval(%struct.TensorDesc) align 8 %28)
          to label %226 unwind label %233

226:                                              ; preds = %223
  %227 = zext i32 %225 to i64
  invoke void @_Z10UNI_MEMCPYPvPKvm(ptr noundef %222, ptr noundef %219, i64 noundef %227)
          to label %228 unwind label %233

228:                                              ; preds = %226
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #14
  call void @free(ptr noundef %219) #14
  %indvars.iv.next448 = add nuw nsw i64 %indvars.iv447, 1
  %exitcond451.not = icmp eq i64 %indvars.iv.next448, %switch.load
  br i1 %exitcond451.not, label %207, label %.preheader440, !llvm.loop !19

229:                                              ; preds = %210, %.preheader440
  %230 = landingpad { ptr, i32 }
          cleanup
  br label %632

231:                                              ; preds = %217, %215, %212
  %232 = landingpad { ptr, i32 }
          cleanup
  br label %632

233:                                              ; preds = %226, %223, %220
  %234 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #14
  br label %632

235:                                              ; preds = %207
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #14
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %30, i32 noundef 1)
          to label %236 unwind label %255

236:                                              ; preds = %235
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %31) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #14
  store ptr %6, ptr %32, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %33) #14
  call void @_ZNSaIP6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #14
  invoke void @_ZNSt6vectorIP6TensorSaIS1_EEC2EmRKS1_RKS2_(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef 1, ptr noundef nonnull align 8 dereferenceable(8) %32, ptr noundef nonnull align 1 dereferenceable(1) %33)
          to label %237 unwind label %257

237:                                              ; preds = %236
  call void @_ZNSt15__new_allocatorIP6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %34) #14
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #14
  store ptr %29, ptr %35, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %36) #14
  call void @_ZNSaIP6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #14
  invoke void @_ZNSt6vectorIP6TensorSaIS1_EEC2EmRKS1_RKS2_(ptr noundef nonnull align 8 dereferenceable(24) %34, i64 noundef 1, ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %238 unwind label %259

238:                                              ; preds = %237
  call void @_ZNSt15__new_allocatorIP6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #14
  invoke void @_ZNSt6vectorIP6TensorSaIS1_EEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %37, ptr noundef nonnull align 8 dereferenceable(24) %31)
          to label %239 unwind label %261

239:                                              ; preds = %238
  store i32 %3, ptr %38, align 8, !tbaa !20
  %.sroa.13.0..sroa_idx = getelementptr inbounds i8, ptr %38, i64 4
  store i32 %123, ptr %.sroa.13.0..sroa_idx, align 4, !tbaa !14
  %.sroa.18.0..sroa_idx = getelementptr inbounds i8, ptr %38, i64 8
  store i32 %117, ptr %.sroa.18.0..sroa_idx, align 8, !tbaa !14
  %.sroa.19.0..sroa_idx = getelementptr inbounds i8, ptr %38, i64 12
  store i32 %.sroa.19.1, ptr %.sroa.19.0..sroa_idx, align 4, !tbaa !14
  %.sroa.27.0..sroa_idx = getelementptr inbounds i8, ptr %38, i64 16
  %.sroa.30.0..sroa_idx = getelementptr inbounds i8, ptr %38, i64 25
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %.sroa.27.0..sroa_idx, i8 0, i64 9, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %.sroa.30.0..sroa_idx, ptr noundef nonnull align 1 dereferenceable(3) %.sroa.30, i64 3, i1 false), !tbaa.struct !22
  %.sroa.30195.0..sroa_idx = getelementptr inbounds i8, ptr %38, i64 28
  store float %.sroa.30195.0, ptr %.sroa.30195.0..sroa_idx, align 4, !tbaa !23
  %.sroa.32.0..sroa_idx = getelementptr inbounds i8, ptr %38, i64 32
  store i32 6, ptr %.sroa.32.0..sroa_idx, align 8, !tbaa !25
  invoke void @_ZNSt6vectorIP6TensorSaIS1_EEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %39, ptr noundef nonnull align 8 dereferenceable(24) %34)
          to label %240 unwind label %263

240:                                              ; preds = %239
  %241 = invoke noundef i32 @_Z21rnn_infer_output_sizeSt6vectorIP6TensorSaIS1_EE12RNNParamSpecS3_P8ArchInfo(ptr noundef nonnull %37, ptr noundef nonnull byval(%struct.RNNParamSpec) align 8 %38, ptr noundef nonnull %39, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %242 unwind label %265

242:                                              ; preds = %240
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %39) #14
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %37) #14
  %.not343 = icmp eq i32 %241, 0
  br i1 %.not343, label %268, label %243

243:                                              ; preds = %242
  %244 = call i64 (i64, ...) @syscall(i64 noundef 186) #14
  %245 = trunc i64 %244 to i32
  %246 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %245)
  %247 = load ptr, ptr @stdout, align 8, !tbaa !5
  %248 = call i32 @fflush(ptr noundef %247)
  %249 = call ptr @ee2str(i32 noundef %241)
  %250 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %249)
  %251 = load ptr, ptr @stdout, align 8, !tbaa !5
  %252 = call i32 @fflush(ptr noundef %251)
  call void @exit(i32 noundef 1) #15
  unreachable

253:                                              ; preds = %207
  %254 = landingpad { ptr, i32 }
          cleanup
  br label %631

255:                                              ; preds = %235
  %256 = landingpad { ptr, i32 }
          cleanup
  br label %630

257:                                              ; preds = %236
  %258 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIP6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #14
  br label %629

259:                                              ; preds = %237
  %260 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIP6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #14
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #14
  br label %628

261:                                              ; preds = %238
  %262 = landingpad { ptr, i32 }
          cleanup
  br label %627

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

265:                                              ; preds = %240
  %266 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %39) #14
  br label %267

267:                                              ; preds = %265, %263
  %.pn = phi { ptr, i32 } [ %266, %265 ], [ %264, %263 ]
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %37) #14
  br label %627

268:                                              ; preds = %242
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %269 unwind label %288

269:                                              ; preds = %268
  %270 = invoke noundef i32 @_ZN6Tensor6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %271 unwind label %290

271:                                              ; preds = %269
  call void @llvm.lifetime.start.p0(i64 92, ptr nonnull %40) #14
  invoke void @_ZN6Tensor8get_descEv(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %40, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %272 unwind label %292

272:                                              ; preds = %271
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %40)
          to label %273 unwind label %292

273:                                              ; preds = %272
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %274 unwind label %292

274:                                              ; preds = %273
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull align 8 dereferenceable(32) %6) #14
  %275 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef 0) #14
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull align 8 dereferenceable(32) %275) #14
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull align 8 dereferenceable(32) %29) #14
  store i32 %3, ptr %44, align 8, !tbaa !20
  %.sroa.13.0..sroa_idx97 = getelementptr inbounds i8, ptr %44, i64 4
  store i32 %123, ptr %.sroa.13.0..sroa_idx97, align 4, !tbaa !14
  %.sroa.18.0..sroa_idx114 = getelementptr inbounds i8, ptr %44, i64 8
  store i32 %117, ptr %.sroa.18.0..sroa_idx114, align 8, !tbaa !14
  %.sroa.19.0..sroa_idx128 = getelementptr inbounds i8, ptr %44, i64 12
  store i32 %.sroa.19.1, ptr %.sroa.19.0..sroa_idx128, align 4, !tbaa !14
  %.sroa.27.0..sroa_idx146 = getelementptr inbounds i8, ptr %44, i64 16
  %.sroa.30.0..sroa_idx188 = getelementptr inbounds i8, ptr %44, i64 25
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %.sroa.27.0..sroa_idx146, i8 0, i64 9, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %.sroa.30.0..sroa_idx188, ptr noundef nonnull align 1 dereferenceable(3) %.sroa.30, i64 3, i1 false), !tbaa.struct !22
  %.sroa.30195.0..sroa_idx196 = getelementptr inbounds i8, ptr %44, i64 28
  store float %.sroa.30195.0, ptr %.sroa.30195.0..sroa_idx196, align 4, !tbaa !23
  %.sroa.32.0..sroa_idx210 = getelementptr inbounds i8, ptr %44, i64 32
  store i32 6, ptr %.sroa.32.0..sroa_idx210, align 8, !tbaa !25
  %276 = invoke noundef i32 @_Z27rnn_infer_forward_tmp_bytes6TensorS_S_12RNNParamSpecPjP8ArchInfo(ptr noundef nonnull %41, ptr noundef nonnull %42, ptr noundef nonnull %43, ptr noundef nonnull byval(%struct.RNNParamSpec) align 8 %44, ptr noundef nonnull %8, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %277 unwind label %294

277:                                              ; preds = %274
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #14
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #14
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #14
  %.not344 = icmp eq i32 %276, 0
  br i1 %.not344, label %296, label %278

278:                                              ; preds = %277
  %279 = call i64 (i64, ...) @syscall(i64 noundef 186) #14
  %280 = trunc i64 %279 to i32
  %281 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %280)
  %282 = load ptr, ptr @stdout, align 8, !tbaa !5
  %283 = call i32 @fflush(ptr noundef %282)
  %284 = call ptr @ee2str(i32 noundef %276)
  %285 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %284)
  %286 = load ptr, ptr @stdout, align 8, !tbaa !5
  %287 = call i32 @fflush(ptr noundef %286)
  call void @exit(i32 noundef 1) #15
  unreachable

288:                                              ; preds = %268
  %289 = landingpad { ptr, i32 }
          cleanup
  br label %627

290:                                              ; preds = %269
  %291 = landingpad { ptr, i32 }
          cleanup
  br label %627

292:                                              ; preds = %273, %272, %271
  %293 = landingpad { ptr, i32 }
          cleanup
  br label %626

294:                                              ; preds = %274
  %295 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #14
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #14
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #14
  br label %626

296:                                              ; preds = %277
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %45) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %46) #14
  call void @_ZNSaIjEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #14
  invoke void @_ZNSt6vectorIjSaIjEEC2EmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %45, i64 noundef %switch.load467, ptr noundef nonnull align 1 dereferenceable(1) %46)
          to label %297 unwind label %312

297:                                              ; preds = %296
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %46) #14
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %47, ptr noundef nonnull align 8 dereferenceable(24) %17)
          to label %298 unwind label %314

298:                                              ; preds = %297
  store i32 %3, ptr %48, align 8, !tbaa !20
  %.sroa.13.0..sroa_idx99 = getelementptr inbounds i8, ptr %48, i64 4
  store i32 %123, ptr %.sroa.13.0..sroa_idx99, align 4, !tbaa !14
  %.sroa.18.0..sroa_idx116 = getelementptr inbounds i8, ptr %48, i64 8
  store i32 %117, ptr %.sroa.18.0..sroa_idx116, align 8, !tbaa !14
  %.sroa.19.0..sroa_idx130 = getelementptr inbounds i8, ptr %48, i64 12
  store i32 %.sroa.19.1, ptr %.sroa.19.0..sroa_idx130, align 4, !tbaa !14
  %.sroa.27.0..sroa_idx148 = getelementptr inbounds i8, ptr %48, i64 16
  %.sroa.30.0..sroa_idx189 = getelementptr inbounds i8, ptr %48, i64 25
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %.sroa.27.0..sroa_idx148, i8 0, i64 9, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %.sroa.30.0..sroa_idx189, ptr noundef nonnull align 1 dereferenceable(3) %.sroa.30, i64 3, i1 false), !tbaa.struct !22
  %.sroa.30195.0..sroa_idx198 = getelementptr inbounds i8, ptr %48, i64 28
  store float %.sroa.30195.0, ptr %.sroa.30195.0..sroa_idx198, align 4, !tbaa !23
  %.sroa.32.0..sroa_idx212 = getelementptr inbounds i8, ptr %48, i64 32
  store i32 6, ptr %.sroa.32.0..sroa_idx212, align 8, !tbaa !25
  %299 = call noundef ptr @_ZNSt6vectorIjSaIjEE4dataEv(ptr noundef nonnull align 8 dereferenceable(24) %45) #14
  %300 = invoke noundef i32 @_Z26rnn_transform_filter_bytesSt6vectorI6TensorSaIS0_EE12RNNParamSpecPvP8ArchInfo(ptr noundef nonnull %47, ptr noundef nonnull byval(%struct.RNNParamSpec) align 8 %48, ptr noundef %299, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %301 unwind label %316

301:                                              ; preds = %298
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %47) #14
  %.not347 = icmp eq i32 %300, 0
  br i1 %.not347, label %318, label %302

302:                                              ; preds = %301
  %303 = call i64 (i64, ...) @syscall(i64 noundef 186) #14
  %304 = trunc i64 %303 to i32
  %305 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %304)
  %306 = load ptr, ptr @stdout, align 8, !tbaa !5
  %307 = call i32 @fflush(ptr noundef %306)
  %308 = call ptr @ee2str(i32 noundef %300)
  %309 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %308)
  %310 = load ptr, ptr @stdout, align 8, !tbaa !5
  %311 = call i32 @fflush(ptr noundef %310)
  call void @exit(i32 noundef 1) #15
  unreachable

312:                                              ; preds = %296
  %313 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIjED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %46) #14
  br label %625

314:                                              ; preds = %297
  %315 = landingpad { ptr, i32 }
          cleanup
  br label %624

316:                                              ; preds = %298
  %317 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %47) #14
  br label %624

318:                                              ; preds = %301
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %49) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %50) #14
  call void @_ZNSaI6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #14
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2EmRKS1_(ptr noundef nonnull align 8 dereferenceable(24) %49, i64 noundef %switch.load467, ptr noundef nonnull align 1 dereferenceable(1) %50)
          to label %319 unwind label %324

319:                                              ; preds = %318
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %51) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %52) #14
  call void @_ZNSaI6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #14
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2EmRKS1_(ptr noundef nonnull align 8 dereferenceable(24) %51, i64 noundef %switch.load467, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %320 unwind label %326

320:                                              ; preds = %319
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %53) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %54) #14
  call void @_ZNSaIP6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #14
  invoke void @_ZNSt6vectorIP6TensorSaIS1_EEC2EmRKS2_(ptr noundef nonnull align 8 dereferenceable(24) %53, i64 noundef %switch.load467, ptr noundef nonnull align 1 dereferenceable(1) %54)
          to label %321 unwind label %328

321:                                              ; preds = %320
  call void @_ZNSt15__new_allocatorIP6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %54) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %55) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %56) #14
  call void @_ZNSaIP6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #14
  invoke void @_ZNSt6vectorIP6TensorSaIS1_EEC2EmRKS2_(ptr noundef nonnull align 8 dereferenceable(24) %55, i64 noundef %switch.load467, ptr noundef nonnull align 1 dereferenceable(1) %56)
          to label %322 unwind label %330

322:                                              ; preds = %321
  call void @_ZNSt15__new_allocatorIP6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #14
  br label %332

323:                                              ; preds = %348
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %59) #14
  invoke void @_ZN6TensorC2E10MemoryType(ptr noundef nonnull align 8 dereferenceable(32) %59, i32 noundef 1)
          to label %353 unwind label %372

324:                                              ; preds = %318
  %325 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #14
  br label %623

326:                                              ; preds = %319
  %327 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #14
  br label %622

328:                                              ; preds = %320
  %329 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIP6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %54) #14
  br label %621

330:                                              ; preds = %321
  %331 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIP6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #14
  br label %620

332:                                              ; preds = %322, %348
  %indvars.iv452 = phi i64 [ 0, %322 ], [ %indvars.iv.next453, %348 ]
  %333 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %49, i64 noundef %indvars.iv452) #14
  %334 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %45, i64 noundef %indvars.iv452) #14
  %335 = load i32, ptr %334, align 4, !tbaa !14
  invoke void @_Z8tensor1d8DataTypej(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %57, i32 noundef 0, i32 noundef %335)
          to label %336 unwind label %351

336:                                              ; preds = %332
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %333, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %57)
          to label %337 unwind label %351

337:                                              ; preds = %336
  %338 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %49, i64 noundef %indvars.iv452) #14
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %338)
          to label %339 unwind label %351

339:                                              ; preds = %337
  %340 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %49, i64 noundef %indvars.iv452) #14
  %341 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6TensorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %53, i64 noundef %indvars.iv452) #14
  store ptr %340, ptr %341, align 8, !tbaa !5
  %342 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %51, i64 noundef %indvars.iv452) #14
  %343 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %45, i64 noundef %indvars.iv452) #14
  %344 = load i32, ptr %343, align 4, !tbaa !14
  invoke void @_Z8tensor1d8DataTypej(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %58, i32 noundef 0, i32 noundef %344)
          to label %345 unwind label %351

345:                                              ; preds = %339
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %342, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %58)
          to label %346 unwind label %351

346:                                              ; preds = %345
  %347 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %51, i64 noundef %indvars.iv452) #14
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %347)
          to label %348 unwind label %351

348:                                              ; preds = %346
  %349 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorI6TensorSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %51, i64 noundef %indvars.iv452) #14
  %350 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP6TensorSaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %55, i64 noundef %indvars.iv452) #14
  store ptr %349, ptr %350, align 8, !tbaa !5
  %indvars.iv.next453 = add nuw nsw i64 %indvars.iv452, 1
  %exitcond456.not = icmp eq i64 %indvars.iv.next453, %switch.load467
  br i1 %exitcond456.not, label %323, label %332, !llvm.loop !27

351:                                              ; preds = %346, %345, %339, %337, %336, %332
  %352 = landingpad { ptr, i32 }
          cleanup
  br label %619

353:                                              ; preds = %323
  %354 = load i32, ptr %8, align 4, !tbaa !14
  invoke void @_Z8tensor1d8DataTypej(ptr dead_on_unwind nonnull writable sret(%struct.TensorDesc) align 4 %60, i32 noundef 0, i32 noundef %354)
          to label %355 unwind label %374

355:                                              ; preds = %353
  invoke void @_ZN6Tensor6resizeE10TensorDesc(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull byval(%struct.TensorDesc) align 8 %60)
          to label %356 unwind label %374

356:                                              ; preds = %355
  invoke void @_ZN6Tensor5allocEv(ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %357 unwind label %374

357:                                              ; preds = %356
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %61, ptr noundef nonnull align 8 dereferenceable(24) %17)
          to label %358 unwind label %376

358:                                              ; preds = %357
  store i32 %3, ptr %62, align 8, !tbaa !20
  %.sroa.13.0..sroa_idx101 = getelementptr inbounds i8, ptr %62, i64 4
  store i32 %123, ptr %.sroa.13.0..sroa_idx101, align 4, !tbaa !14
  %.sroa.18.0..sroa_idx118 = getelementptr inbounds i8, ptr %62, i64 8
  store i32 %117, ptr %.sroa.18.0..sroa_idx118, align 8, !tbaa !14
  %.sroa.19.0..sroa_idx132 = getelementptr inbounds i8, ptr %62, i64 12
  store i32 %.sroa.19.1, ptr %.sroa.19.0..sroa_idx132, align 4, !tbaa !14
  %.sroa.27.0..sroa_idx150 = getelementptr inbounds i8, ptr %62, i64 16
  %.sroa.30.0..sroa_idx190 = getelementptr inbounds i8, ptr %62, i64 25
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %.sroa.27.0..sroa_idx150, i8 0, i64 9, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %.sroa.30.0..sroa_idx190, ptr noundef nonnull align 1 dereferenceable(3) %.sroa.30, i64 3, i1 false), !tbaa.struct !22
  %.sroa.30195.0..sroa_idx200 = getelementptr inbounds i8, ptr %62, i64 28
  store float %.sroa.30195.0, ptr %.sroa.30195.0..sroa_idx200, align 4, !tbaa !23
  %.sroa.32.0..sroa_idx214 = getelementptr inbounds i8, ptr %62, i64 32
  store i32 6, ptr %.sroa.32.0..sroa_idx214, align 8, !tbaa !25
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull align 8 dereferenceable(32) %59) #14
  invoke void @_ZNSt6vectorIP6TensorSaIS1_EEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %64, ptr noundef nonnull align 8 dereferenceable(24) %53)
          to label %359 unwind label %378

359:                                              ; preds = %358
  %360 = invoke noundef i32 @_Z20rnn_transform_filterSt6vectorI6TensorSaIS0_EE12RNNParamSpecS0_S_IPS0_SaIS4_EEP8ArchInfoPv(ptr noundef nonnull %61, ptr noundef nonnull byval(%struct.RNNParamSpec) align 8 %62, ptr noundef nonnull %63, ptr noundef nonnull %64, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO, ptr noundef null)
          to label %361 unwind label %380

361:                                              ; preds = %359
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %64) #14
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %61) #14
  %.not351 = icmp eq i32 %360, 0
  br i1 %.not351, label %383, label %362

362:                                              ; preds = %361
  %363 = call i64 (i64, ...) @syscall(i64 noundef 186) #14
  %364 = trunc i64 %363 to i32
  %365 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %364)
  %366 = load ptr, ptr @stdout, align 8, !tbaa !5
  %367 = call i32 @fflush(ptr noundef %366)
  %368 = call ptr @ee2str(i32 noundef %360)
  %369 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %368)
  %370 = load ptr, ptr @stdout, align 8, !tbaa !5
  %371 = call i32 @fflush(ptr noundef %370)
  call void @exit(i32 noundef 1) #15
  unreachable

372:                                              ; preds = %323
  %373 = landingpad { ptr, i32 }
          cleanup
  br label %618

374:                                              ; preds = %356, %355, %353
  %375 = landingpad { ptr, i32 }
          cleanup
  br label %617

376:                                              ; preds = %357
  %377 = landingpad { ptr, i32 }
          cleanup
  br label %617

378:                                              ; preds = %358
  %379 = landingpad { ptr, i32 }
          cleanup
  br label %382

380:                                              ; preds = %359
  %381 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %64) #14
  br label %382

382:                                              ; preds = %380, %378
  %.pn348 = phi { ptr, i32 } [ %381, %380 ], [ %379, %378 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %61) #14
  br label %617

383:                                              ; preds = %361
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %65, ptr noundef nonnull align 8 dereferenceable(24) %17)
          to label %384 unwind label %398

384:                                              ; preds = %383
  store i32 %3, ptr %66, align 8, !tbaa !20
  %.sroa.13.0..sroa_idx103 = getelementptr inbounds i8, ptr %66, i64 4
  store i32 %123, ptr %.sroa.13.0..sroa_idx103, align 4, !tbaa !14
  %.sroa.18.0..sroa_idx120 = getelementptr inbounds i8, ptr %66, i64 8
  store i32 %117, ptr %.sroa.18.0..sroa_idx120, align 8, !tbaa !14
  %.sroa.19.0..sroa_idx134 = getelementptr inbounds i8, ptr %66, i64 12
  store i32 %.sroa.19.1, ptr %.sroa.19.0..sroa_idx134, align 4, !tbaa !14
  %.sroa.27.0..sroa_idx152 = getelementptr inbounds i8, ptr %66, i64 16
  %.sroa.30.0..sroa_idx191 = getelementptr inbounds i8, ptr %66, i64 25
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %.sroa.27.0..sroa_idx152, i8 0, i64 9, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %.sroa.30.0..sroa_idx191, ptr noundef nonnull align 1 dereferenceable(3) %.sroa.30, i64 3, i1 false), !tbaa.struct !22
  %.sroa.30195.0..sroa_idx202 = getelementptr inbounds i8, ptr %66, i64 28
  store float %.sroa.30195.0, ptr %.sroa.30195.0..sroa_idx202, align 4, !tbaa !23
  %.sroa.32.0..sroa_idx216 = getelementptr inbounds i8, ptr %66, i64 32
  store i32 6, ptr %.sroa.32.0..sroa_idx216, align 8, !tbaa !25
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull align 8 dereferenceable(32) %59) #14
  invoke void @_ZNSt6vectorIP6TensorSaIS1_EEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %68, ptr noundef nonnull align 8 dereferenceable(24) %55)
          to label %385 unwind label %400

385:                                              ; preds = %384
  %386 = invoke noundef i32 @_Z20rnn_transform_filterSt6vectorI6TensorSaIS0_EE12RNNParamSpecS0_S_IPS0_SaIS4_EEP8ArchInfoPv(ptr noundef nonnull %65, ptr noundef nonnull byval(%struct.RNNParamSpec) align 8 %66, ptr noundef nonnull %67, ptr noundef nonnull %68, ptr noundef nonnull @_ZL18UT_SERIAL_ARCHINFO, ptr noundef null)
          to label %387 unwind label %402

387:                                              ; preds = %385
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %68) #14
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %65) #14
  %.not355 = icmp eq i32 %386, 0
  br i1 %.not355, label %405, label %388

388:                                              ; preds = %387
  %389 = call i64 (i64, ...) @syscall(i64 noundef 186) #14
  %390 = trunc i64 %389 to i32
  %391 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %390)
  %392 = load ptr, ptr @stdout, align 8, !tbaa !5
  %393 = call i32 @fflush(ptr noundef %392)
  %394 = call ptr @ee2str(i32 noundef %386)
  %395 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %394)
  %396 = load ptr, ptr @stdout, align 8, !tbaa !5
  %397 = call i32 @fflush(ptr noundef %396)
  call void @exit(i32 noundef 1) #15
  unreachable

398:                                              ; preds = %383
  %399 = landingpad { ptr, i32 }
          cleanup
  br label %617

400:                                              ; preds = %384
  %401 = landingpad { ptr, i32 }
          cleanup
  br label %404

402:                                              ; preds = %385
  %403 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %68) #14
  br label %404

404:                                              ; preds = %402, %400
  %.pn352 = phi { ptr, i32 } [ %403, %402 ], [ %401, %400 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %65) #14
  br label %617

405:                                              ; preds = %387
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %69) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %70) #14
  call void @_ZNSaI6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #14
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2EmRKS0_RKS1_(ptr noundef nonnull align 8 dereferenceable(24) %69, i64 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 1 dereferenceable(1) %70)
          to label %406 unwind label %432

406:                                              ; preds = %405
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %70) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %71) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %72) #14
  call void @_ZNSaI6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #14
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2EmRKS0_RKS1_(ptr noundef nonnull align 8 dereferenceable(24) %71, i64 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 1 dereferenceable(1) %72)
          to label %407 unwind label %434

407:                                              ; preds = %406
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %72) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %73) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %74) #14
  call void @_ZNSaI6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #14
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2EmRKS0_RKS1_(ptr noundef nonnull align 8 dereferenceable(24) %73, i64 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 1 dereferenceable(1) %74)
          to label %408 unwind label %436

408:                                              ; preds = %407
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %74) #14
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %75) #14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %76) #14
  call void @_ZNSaI6TensorEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #14
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2EmRKS0_RKS1_(ptr noundef nonnull align 8 dereferenceable(24) %75, i64 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull align 1 dereferenceable(1) %76)
          to label %409 unwind label %438

409:                                              ; preds = %408
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %76) #14
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull align 8 dereferenceable(32) %59) #14
  %410 = load i32, ptr @_ZL15UT_CPU_ARCHINFO, align 8, !tbaa !28
  %411 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %77, i32 noundef %410)
          to label %412 unwind label %440

412:                                              ; preds = %409
  %413 = load i32, ptr %8, align 4, !tbaa !14
  %414 = zext i32 %413 to i64
  call void @_Z10UNI_MEMSETPvim(ptr noundef %411, i32 noundef 0, i64 noundef %414)
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #14
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %78, ptr noundef nonnull align 8 dereferenceable(24) %69)
          to label %415 unwind label %442

415:                                              ; preds = %412
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %79, ptr noundef nonnull align 8 dereferenceable(24) %49)
          to label %416 unwind label %444

416:                                              ; preds = %415
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %80, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %417 unwind label %446

417:                                              ; preds = %416
  store i32 %3, ptr %81, align 8, !tbaa !20
  %.sroa.13.0..sroa_idx105 = getelementptr inbounds i8, ptr %81, i64 4
  store i32 %123, ptr %.sroa.13.0..sroa_idx105, align 4, !tbaa !14
  %.sroa.18.0..sroa_idx122 = getelementptr inbounds i8, ptr %81, i64 8
  store i32 %117, ptr %.sroa.18.0..sroa_idx122, align 8, !tbaa !14
  %.sroa.19.0..sroa_idx136 = getelementptr inbounds i8, ptr %81, i64 12
  store i32 %.sroa.19.1, ptr %.sroa.19.0..sroa_idx136, align 4, !tbaa !14
  %.sroa.27.0..sroa_idx154 = getelementptr inbounds i8, ptr %81, i64 16
  %.sroa.30.0..sroa_idx192 = getelementptr inbounds i8, ptr %81, i64 25
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %.sroa.27.0..sroa_idx154, i8 0, i64 9, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %.sroa.30.0..sroa_idx192, ptr noundef nonnull align 1 dereferenceable(3) %.sroa.30, i64 3, i1 false), !tbaa.struct !22
  %.sroa.30195.0..sroa_idx204 = getelementptr inbounds i8, ptr %81, i64 28
  store float %.sroa.30195.0, ptr %.sroa.30195.0..sroa_idx204, align 4, !tbaa !23
  %.sroa.32.0..sroa_idx218 = getelementptr inbounds i8, ptr %81, i64 32
  store i32 6, ptr %.sroa.32.0..sroa_idx218, align 8, !tbaa !25
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %82, ptr noundef nonnull align 8 dereferenceable(24) %75)
          to label %418 unwind label %448

418:                                              ; preds = %417
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %83, ptr noundef nonnull align 8 dereferenceable(24) %71)
          to label %419 unwind label %450

419:                                              ; preds = %418
  %420 = invoke noundef i32 @_Z3rnnSt6vectorI6TensorSaIS0_EES2_S2_12RNNParamSpecS2_S2_PvP8ArchInfo(ptr noundef nonnull %78, ptr noundef nonnull %79, ptr noundef nonnull %80, ptr noundef nonnull byval(%struct.RNNParamSpec) align 8 %81, ptr noundef nonnull %82, ptr noundef nonnull %83, ptr noundef null, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %421 unwind label %452

421:                                              ; preds = %419
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %83) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %82) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %80) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %79) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %78) #14
  %.not362 = icmp eq i32 %420, 0
  br i1 %.not362, label %458, label %422

422:                                              ; preds = %421
  %423 = call i64 (i64, ...) @syscall(i64 noundef 186) #14
  %424 = trunc i64 %423 to i32
  %425 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %424)
  %426 = load ptr, ptr @stdout, align 8, !tbaa !5
  %427 = call i32 @fflush(ptr noundef %426)
  %428 = call ptr @ee2str(i32 noundef %420)
  %429 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %428)
  %430 = load ptr, ptr @stdout, align 8, !tbaa !5
  %431 = call i32 @fflush(ptr noundef %430)
  call void @exit(i32 noundef 1) #15
  unreachable

432:                                              ; preds = %405
  %433 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %70) #14
  br label %616

434:                                              ; preds = %406
  %435 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %72) #14
  br label %615

436:                                              ; preds = %407
  %437 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %74) #14
  br label %614

438:                                              ; preds = %408
  %439 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorI6TensorED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #14
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %76) #14
  br label %613

440:                                              ; preds = %409
  %441 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #14
  br label %612

442:                                              ; preds = %412
  %443 = landingpad { ptr, i32 }
          cleanup
  br label %612

444:                                              ; preds = %415
  %445 = landingpad { ptr, i32 }
          cleanup
  br label %457

446:                                              ; preds = %416
  %447 = landingpad { ptr, i32 }
          cleanup
  br label %456

448:                                              ; preds = %417
  %449 = landingpad { ptr, i32 }
          cleanup
  br label %455

450:                                              ; preds = %418
  %451 = landingpad { ptr, i32 }
          cleanup
  br label %454

452:                                              ; preds = %419
  %453 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %83) #14
  br label %454

454:                                              ; preds = %452, %450
  %.pn356 = phi { ptr, i32 } [ %453, %452 ], [ %451, %450 ]
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %82) #14
  br label %455

455:                                              ; preds = %454, %448
  %.pn356.pn = phi { ptr, i32 } [ %.pn356, %454 ], [ %449, %448 ]
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %80) #14
  br label %456

456:                                              ; preds = %455, %446
  %.pn356.pn.pn = phi { ptr, i32 } [ %.pn356.pn, %455 ], [ %447, %446 ]
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %79) #14
  br label %457

457:                                              ; preds = %456, %444
  %.pn356.pn.pn.pn = phi { ptr, i32 } [ %.pn356.pn.pn, %456 ], [ %445, %444 ]
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %78) #14
  br label %612

458:                                              ; preds = %421
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef nonnull align 8 dereferenceable(32) %59) #14
  %459 = load i32, ptr @_ZL15UT_CPU_ARCHINFO, align 8, !tbaa !28
  %460 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %84, i32 noundef %459)
          to label %461 unwind label %481

461:                                              ; preds = %458
  %462 = load i32, ptr %8, align 4, !tbaa !14
  %463 = zext i32 %462 to i64
  call void @_Z10UNI_MEMSETPvim(ptr noundef %460, i32 noundef 0, i64 noundef %463)
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #14
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %85, ptr noundef nonnull align 8 dereferenceable(24) %69)
          to label %464 unwind label %483

464:                                              ; preds = %461
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %86, ptr noundef nonnull align 8 dereferenceable(24) %51)
          to label %465 unwind label %485

465:                                              ; preds = %464
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %87, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %466 unwind label %487

466:                                              ; preds = %465
  store i32 %3, ptr %88, align 8, !tbaa !20
  %.sroa.13.0..sroa_idx107 = getelementptr inbounds i8, ptr %88, i64 4
  store i32 %123, ptr %.sroa.13.0..sroa_idx107, align 4, !tbaa !14
  %.sroa.18.0..sroa_idx124 = getelementptr inbounds i8, ptr %88, i64 8
  store i32 %117, ptr %.sroa.18.0..sroa_idx124, align 8, !tbaa !14
  %.sroa.19.0..sroa_idx138 = getelementptr inbounds i8, ptr %88, i64 12
  store i32 %.sroa.19.1, ptr %.sroa.19.0..sroa_idx138, align 4, !tbaa !14
  %.sroa.27.0..sroa_idx156 = getelementptr inbounds i8, ptr %88, i64 16
  %.sroa.30.0..sroa_idx193 = getelementptr inbounds i8, ptr %88, i64 25
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %.sroa.27.0..sroa_idx156, i8 0, i64 9, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %.sroa.30.0..sroa_idx193, ptr noundef nonnull align 1 dereferenceable(3) %.sroa.30, i64 3, i1 false), !tbaa.struct !22
  %.sroa.30195.0..sroa_idx206 = getelementptr inbounds i8, ptr %88, i64 28
  store float %.sroa.30195.0, ptr %.sroa.30195.0..sroa_idx206, align 4, !tbaa !23
  %.sroa.32.0..sroa_idx220 = getelementptr inbounds i8, ptr %88, i64 32
  store i32 6, ptr %.sroa.32.0..sroa_idx220, align 8, !tbaa !25
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %89, ptr noundef nonnull align 8 dereferenceable(24) %75)
          to label %467 unwind label %489

467:                                              ; preds = %466
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %90, ptr noundef nonnull align 8 dereferenceable(24) %73)
          to label %468 unwind label %491

468:                                              ; preds = %467
  %469 = invoke noundef i32 @_Z3rnnSt6vectorI6TensorSaIS0_EES2_S2_12RNNParamSpecS2_S2_PvP8ArchInfo(ptr noundef nonnull %85, ptr noundef nonnull %86, ptr noundef nonnull %87, ptr noundef nonnull byval(%struct.RNNParamSpec) align 8 %88, ptr noundef nonnull %89, ptr noundef nonnull %90, ptr noundef null, ptr noundef nonnull @_ZL18UT_SERIAL_ARCHINFO)
          to label %470 unwind label %493

470:                                              ; preds = %468
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %90) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %89) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %87) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %86) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %85) #14
  %.not369 = icmp eq i32 %469, 0
  br i1 %.not369, label %499, label %471

471:                                              ; preds = %470
  %472 = call i64 (i64, ...) @syscall(i64 noundef 186) #14
  %473 = trunc i64 %472 to i32
  %474 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %473)
  %475 = load ptr, ptr @stdout, align 8, !tbaa !5
  %476 = call i32 @fflush(ptr noundef %475)
  %477 = call ptr @ee2str(i32 noundef %469)
  %478 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %477)
  %479 = load ptr, ptr @stdout, align 8, !tbaa !5
  %480 = call i32 @fflush(ptr noundef %479)
  call void @exit(i32 noundef 1) #15
  unreachable

481:                                              ; preds = %458
  %482 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #14
  br label %612

483:                                              ; preds = %461
  %484 = landingpad { ptr, i32 }
          cleanup
  br label %612

485:                                              ; preds = %464
  %486 = landingpad { ptr, i32 }
          cleanup
  br label %498

487:                                              ; preds = %465
  %488 = landingpad { ptr, i32 }
          cleanup
  br label %497

489:                                              ; preds = %466
  %490 = landingpad { ptr, i32 }
          cleanup
  br label %496

491:                                              ; preds = %467
  %492 = landingpad { ptr, i32 }
          cleanup
  br label %495

493:                                              ; preds = %468
  %494 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %90) #14
  br label %495

495:                                              ; preds = %493, %491
  %.pn363 = phi { ptr, i32 } [ %494, %493 ], [ %492, %491 ]
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %89) #14
  br label %496

496:                                              ; preds = %495, %489
  %.pn363.pn = phi { ptr, i32 } [ %.pn363, %495 ], [ %490, %489 ]
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %87) #14
  br label %497

497:                                              ; preds = %496, %487
  %.pn363.pn.pn = phi { ptr, i32 } [ %.pn363.pn, %496 ], [ %488, %487 ]
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %86) #14
  br label %498

498:                                              ; preds = %497, %485
  %.pn363.pn.pn.pn = phi { ptr, i32 } [ %.pn363.pn.pn, %497 ], [ %486, %485 ]
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %85) #14
  br label %612

499:                                              ; preds = %470
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef nonnull align 8 dereferenceable(32) %29) #14
  %500 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %91, i32 noundef 1)
          to label %501 unwind label %548

501:                                              ; preds = %499
  call void @_ZN6TensorC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef nonnull align 8 dereferenceable(32) %30) #14
  %502 = invoke noundef ptr @_Z19get_ptr_from_tensor6Tensor4Arch(ptr noundef nonnull %92, i32 noundef 1)
          to label %503 unwind label %550

503:                                              ; preds = %501
  invoke void @_Z10ut_check_vPvS_j8DataTypef(ptr noundef %500, ptr noundef %502, i32 noundef %270, i32 noundef %2, float noundef %switch.load465)
          to label %504 unwind label %550

504:                                              ; preds = %503
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #14
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #14
  %505 = invoke noundef double @_Z10ut_time_msv()
          to label %.preheader unwind label %553

.preheader:                                       ; preds = %504
  %.sroa.13.0..sroa_idx109 = getelementptr inbounds i8, ptr %96, i64 4
  %.sroa.18.0..sroa_idx126 = getelementptr inbounds i8, ptr %96, i64 8
  %.sroa.19.0..sroa_idx140 = getelementptr inbounds i8, ptr %96, i64 12
  %.sroa.27.0..sroa_idx158 = getelementptr inbounds i8, ptr %96, i64 16
  %.sroa.30.0..sroa_idx194 = getelementptr inbounds i8, ptr %96, i64 25
  %.sroa.30195.0..sroa_idx208 = getelementptr inbounds i8, ptr %96, i64 28
  %.sroa.32.0..sroa_idx222 = getelementptr inbounds i8, ptr %96, i64 32
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %93, ptr noundef nonnull align 8 dereferenceable(24) %69)
          to label %555 unwind label %572

506:                                              ; preds = %561
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %93, ptr noundef nonnull align 8 dereferenceable(24) %69)
          to label %507 unwind label %572

507:                                              ; preds = %506
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %94, ptr noundef nonnull align 8 dereferenceable(24) %49)
          to label %508 unwind label %574

508:                                              ; preds = %507
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %95, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %509 unwind label %576

509:                                              ; preds = %508
  store i32 %3, ptr %96, align 8, !tbaa !20
  store i32 %123, ptr %.sroa.13.0..sroa_idx109, align 4, !tbaa !14
  store i32 %117, ptr %.sroa.18.0..sroa_idx126, align 8, !tbaa !14
  store i32 %.sroa.19.1, ptr %.sroa.19.0..sroa_idx140, align 4, !tbaa !14
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %.sroa.27.0..sroa_idx158, i8 0, i64 9, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %.sroa.30.0..sroa_idx194, ptr noundef nonnull align 1 dereferenceable(3) %.sroa.30, i64 3, i1 false), !tbaa.struct !22
  store float %.sroa.30195.0, ptr %.sroa.30195.0..sroa_idx208, align 4, !tbaa !23
  store i32 6, ptr %.sroa.32.0..sroa_idx222, align 8, !tbaa !25
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %97, ptr noundef nonnull align 8 dereferenceable(24) %75)
          to label %510 unwind label %578

510:                                              ; preds = %509
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %98, ptr noundef nonnull align 8 dereferenceable(24) %71)
          to label %511 unwind label %580

511:                                              ; preds = %510
  %512 = invoke noundef i32 @_Z3rnnSt6vectorI6TensorSaIS0_EES2_S2_12RNNParamSpecS2_S2_PvP8ArchInfo(ptr noundef nonnull %93, ptr noundef nonnull %94, ptr noundef nonnull %95, ptr noundef nonnull byval(%struct.RNNParamSpec) align 8 %96, ptr noundef nonnull %97, ptr noundef nonnull %98, ptr noundef null, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %513 unwind label %582

513:                                              ; preds = %511
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %98) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %97) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %95) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %94) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %93) #14
  %.not388.1 = icmp eq i32 %512, 0
  br i1 %.not388.1, label %514, label %562

514:                                              ; preds = %513
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %93, ptr noundef nonnull align 8 dereferenceable(24) %69)
          to label %515 unwind label %572

515:                                              ; preds = %514
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %94, ptr noundef nonnull align 8 dereferenceable(24) %49)
          to label %516 unwind label %574

516:                                              ; preds = %515
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %95, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %517 unwind label %576

517:                                              ; preds = %516
  store i32 %3, ptr %96, align 8, !tbaa !20
  store i32 %123, ptr %.sroa.13.0..sroa_idx109, align 4, !tbaa !14
  store i32 %117, ptr %.sroa.18.0..sroa_idx126, align 8, !tbaa !14
  store i32 %.sroa.19.1, ptr %.sroa.19.0..sroa_idx140, align 4, !tbaa !14
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %.sroa.27.0..sroa_idx158, i8 0, i64 9, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %.sroa.30.0..sroa_idx194, ptr noundef nonnull align 1 dereferenceable(3) %.sroa.30, i64 3, i1 false), !tbaa.struct !22
  store float %.sroa.30195.0, ptr %.sroa.30195.0..sroa_idx208, align 4, !tbaa !23
  store i32 6, ptr %.sroa.32.0..sroa_idx222, align 8, !tbaa !25
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %97, ptr noundef nonnull align 8 dereferenceable(24) %75)
          to label %518 unwind label %578

518:                                              ; preds = %517
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %98, ptr noundef nonnull align 8 dereferenceable(24) %71)
          to label %519 unwind label %580

519:                                              ; preds = %518
  %520 = invoke noundef i32 @_Z3rnnSt6vectorI6TensorSaIS0_EES2_S2_12RNNParamSpecS2_S2_PvP8ArchInfo(ptr noundef nonnull %93, ptr noundef nonnull %94, ptr noundef nonnull %95, ptr noundef nonnull byval(%struct.RNNParamSpec) align 8 %96, ptr noundef nonnull %97, ptr noundef nonnull %98, ptr noundef null, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %521 unwind label %582

521:                                              ; preds = %519
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %98) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %97) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %95) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %94) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %93) #14
  %.not388.2 = icmp eq i32 %520, 0
  br i1 %.not388.2, label %522, label %562

522:                                              ; preds = %521
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %93, ptr noundef nonnull align 8 dereferenceable(24) %69)
          to label %523 unwind label %572

523:                                              ; preds = %522
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %94, ptr noundef nonnull align 8 dereferenceable(24) %49)
          to label %524 unwind label %574

524:                                              ; preds = %523
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %95, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %525 unwind label %576

525:                                              ; preds = %524
  store i32 %3, ptr %96, align 8, !tbaa !20
  store i32 %123, ptr %.sroa.13.0..sroa_idx109, align 4, !tbaa !14
  store i32 %117, ptr %.sroa.18.0..sroa_idx126, align 8, !tbaa !14
  store i32 %.sroa.19.1, ptr %.sroa.19.0..sroa_idx140, align 4, !tbaa !14
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %.sroa.27.0..sroa_idx158, i8 0, i64 9, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %.sroa.30.0..sroa_idx194, ptr noundef nonnull align 1 dereferenceable(3) %.sroa.30, i64 3, i1 false), !tbaa.struct !22
  store float %.sroa.30195.0, ptr %.sroa.30195.0..sroa_idx208, align 4, !tbaa !23
  store i32 6, ptr %.sroa.32.0..sroa_idx222, align 8, !tbaa !25
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %97, ptr noundef nonnull align 8 dereferenceable(24) %75)
          to label %526 unwind label %578

526:                                              ; preds = %525
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %98, ptr noundef nonnull align 8 dereferenceable(24) %71)
          to label %527 unwind label %580

527:                                              ; preds = %526
  %528 = invoke noundef i32 @_Z3rnnSt6vectorI6TensorSaIS0_EES2_S2_12RNNParamSpecS2_S2_PvP8ArchInfo(ptr noundef nonnull %93, ptr noundef nonnull %94, ptr noundef nonnull %95, ptr noundef nonnull byval(%struct.RNNParamSpec) align 8 %96, ptr noundef nonnull %97, ptr noundef nonnull %98, ptr noundef null, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %529 unwind label %582

529:                                              ; preds = %527
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %98) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %97) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %95) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %94) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %93) #14
  %.not388.3 = icmp eq i32 %528, 0
  br i1 %.not388.3, label %530, label %562

530:                                              ; preds = %529
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %93, ptr noundef nonnull align 8 dereferenceable(24) %69)
          to label %531 unwind label %572

531:                                              ; preds = %530
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %94, ptr noundef nonnull align 8 dereferenceable(24) %49)
          to label %532 unwind label %574

532:                                              ; preds = %531
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %95, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %533 unwind label %576

533:                                              ; preds = %532
  store i32 %3, ptr %96, align 8, !tbaa !20
  store i32 %123, ptr %.sroa.13.0..sroa_idx109, align 4, !tbaa !14
  store i32 %117, ptr %.sroa.18.0..sroa_idx126, align 8, !tbaa !14
  store i32 %.sroa.19.1, ptr %.sroa.19.0..sroa_idx140, align 4, !tbaa !14
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %.sroa.27.0..sroa_idx158, i8 0, i64 9, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %.sroa.30.0..sroa_idx194, ptr noundef nonnull align 1 dereferenceable(3) %.sroa.30, i64 3, i1 false), !tbaa.struct !22
  store float %.sroa.30195.0, ptr %.sroa.30195.0..sroa_idx208, align 4, !tbaa !23
  store i32 6, ptr %.sroa.32.0..sroa_idx222, align 8, !tbaa !25
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %97, ptr noundef nonnull align 8 dereferenceable(24) %75)
          to label %534 unwind label %578

534:                                              ; preds = %533
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %98, ptr noundef nonnull align 8 dereferenceable(24) %71)
          to label %535 unwind label %580

535:                                              ; preds = %534
  %536 = invoke noundef i32 @_Z3rnnSt6vectorI6TensorSaIS0_EES2_S2_12RNNParamSpecS2_S2_PvP8ArchInfo(ptr noundef nonnull %93, ptr noundef nonnull %94, ptr noundef nonnull %95, ptr noundef nonnull byval(%struct.RNNParamSpec) align 8 %96, ptr noundef nonnull %97, ptr noundef nonnull %98, ptr noundef null, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %537 unwind label %582

537:                                              ; preds = %535
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %98) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %97) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %95) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %94) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %93) #14
  %.not388.4 = icmp eq i32 %536, 0
  br i1 %.not388.4, label %538, label %562

538:                                              ; preds = %537
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %93, ptr noundef nonnull align 8 dereferenceable(24) %69)
          to label %539 unwind label %572

539:                                              ; preds = %538
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %94, ptr noundef nonnull align 8 dereferenceable(24) %49)
          to label %540 unwind label %574

540:                                              ; preds = %539
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %95, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %541 unwind label %576

541:                                              ; preds = %540
  store i32 %3, ptr %96, align 8, !tbaa !20
  store i32 %123, ptr %.sroa.13.0..sroa_idx109, align 4, !tbaa !14
  store i32 %117, ptr %.sroa.18.0..sroa_idx126, align 8, !tbaa !14
  store i32 %.sroa.19.1, ptr %.sroa.19.0..sroa_idx140, align 4, !tbaa !14
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %.sroa.27.0..sroa_idx158, i8 0, i64 9, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %.sroa.30.0..sroa_idx194, ptr noundef nonnull align 1 dereferenceable(3) %.sroa.30, i64 3, i1 false), !tbaa.struct !22
  store float %.sroa.30195.0, ptr %.sroa.30195.0..sroa_idx208, align 4, !tbaa !23
  store i32 6, ptr %.sroa.32.0..sroa_idx222, align 8, !tbaa !25
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %97, ptr noundef nonnull align 8 dereferenceable(24) %75)
          to label %542 unwind label %578

542:                                              ; preds = %541
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %98, ptr noundef nonnull align 8 dereferenceable(24) %71)
          to label %543 unwind label %580

543:                                              ; preds = %542
  %544 = invoke noundef i32 @_Z3rnnSt6vectorI6TensorSaIS0_EES2_S2_12RNNParamSpecS2_S2_PvP8ArchInfo(ptr noundef nonnull %93, ptr noundef nonnull %94, ptr noundef nonnull %95, ptr noundef nonnull byval(%struct.RNNParamSpec) align 8 %96, ptr noundef nonnull %97, ptr noundef nonnull %98, ptr noundef null, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %545 unwind label %582

545:                                              ; preds = %543
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %98) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %97) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %95) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %94) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %93) #14
  %.not388.5 = icmp eq i32 %544, 0
  br i1 %.not388.5, label %546, label %562

546:                                              ; preds = %545
  %547 = invoke noundef double @_Z10ut_time_msv()
          to label %588 unwind label %608

548:                                              ; preds = %499
  %549 = landingpad { ptr, i32 }
          cleanup
  br label %552

550:                                              ; preds = %503, %501
  %551 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #14
  br label %552

552:                                              ; preds = %550, %548
  %.pn370 = phi { ptr, i32 } [ %551, %550 ], [ %549, %548 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #14
  br label %612

553:                                              ; preds = %504
  %554 = landingpad { ptr, i32 }
          cleanup
  br label %612

555:                                              ; preds = %.preheader
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %94, ptr noundef nonnull align 8 dereferenceable(24) %49)
          to label %556 unwind label %574

556:                                              ; preds = %555
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %95, ptr noundef nonnull align 8 dereferenceable(24) %19)
          to label %557 unwind label %576

557:                                              ; preds = %556
  store i32 %3, ptr %96, align 8, !tbaa !20
  store i32 %123, ptr %.sroa.13.0..sroa_idx109, align 4, !tbaa !14
  store i32 %117, ptr %.sroa.18.0..sroa_idx126, align 8, !tbaa !14
  store i32 %.sroa.19.1, ptr %.sroa.19.0..sroa_idx140, align 4, !tbaa !14
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %.sroa.27.0..sroa_idx158, i8 0, i64 9, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %.sroa.30.0..sroa_idx194, ptr noundef nonnull align 1 dereferenceable(3) %.sroa.30, i64 3, i1 false), !tbaa.struct !22
  store float %.sroa.30195.0, ptr %.sroa.30195.0..sroa_idx208, align 4, !tbaa !23
  store i32 6, ptr %.sroa.32.0..sroa_idx222, align 8, !tbaa !25
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %97, ptr noundef nonnull align 8 dereferenceable(24) %75)
          to label %558 unwind label %578

558:                                              ; preds = %557
  invoke void @_ZNSt6vectorI6TensorSaIS0_EEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %98, ptr noundef nonnull align 8 dereferenceable(24) %71)
          to label %559 unwind label %580

559:                                              ; preds = %558
  %560 = invoke noundef i32 @_Z3rnnSt6vectorI6TensorSaIS0_EES2_S2_12RNNParamSpecS2_S2_PvP8ArchInfo(ptr noundef nonnull %93, ptr noundef nonnull %94, ptr noundef nonnull %95, ptr noundef nonnull byval(%struct.RNNParamSpec) align 8 %96, ptr noundef nonnull %97, ptr noundef nonnull %98, ptr noundef null, ptr noundef nonnull @_ZL15UT_CPU_ARCHINFO)
          to label %561 unwind label %582

561:                                              ; preds = %559
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %98) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %97) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %95) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %94) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %93) #14
  %.not388 = icmp eq i32 %560, 0
  br i1 %.not388, label %506, label %562

562:                                              ; preds = %545, %537, %529, %521, %513, %561
  %.lcssa = phi i32 [ %560, %561 ], [ %512, %513 ], [ %520, %521 ], [ %528, %529 ], [ %536, %537 ], [ %544, %545 ]
  %563 = call i64 (i64, ...) @syscall(i64 noundef 186) #14
  %564 = trunc i64 %563 to i32
  %565 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str, i32 noundef %564)
  %566 = load ptr, ptr @stdout, align 8, !tbaa !5
  %567 = call i32 @fflush(ptr noundef %566)
  %568 = call ptr @ee2str(i32 noundef %.lcssa)
  %569 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.2, ptr noundef %568)
  %570 = load ptr, ptr @stdout, align 8, !tbaa !5
  %571 = call i32 @fflush(ptr noundef %570)
  call void @exit(i32 noundef 1) #15
  unreachable

572:                                              ; preds = %538, %530, %522, %514, %506, %.preheader
  %573 = landingpad { ptr, i32 }
          cleanup
  br label %612

574:                                              ; preds = %539, %531, %523, %515, %507, %555
  %575 = landingpad { ptr, i32 }
          cleanup
  br label %587

576:                                              ; preds = %540, %532, %524, %516, %508, %556
  %577 = landingpad { ptr, i32 }
          cleanup
  br label %586

578:                                              ; preds = %541, %533, %525, %517, %509, %557
  %579 = landingpad { ptr, i32 }
          cleanup
  br label %585

580:                                              ; preds = %542, %534, %526, %518, %510, %558
  %581 = landingpad { ptr, i32 }
          cleanup
  br label %584

582:                                              ; preds = %543, %535, %527, %519, %511, %559
  %583 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %98) #14
  br label %584

584:                                              ; preds = %582, %580
  %.pn374 = phi { ptr, i32 } [ %583, %582 ], [ %581, %580 ]
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %97) #14
  br label %585

585:                                              ; preds = %584, %578
  %.pn374.pn = phi { ptr, i32 } [ %.pn374, %584 ], [ %579, %578 ]
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %95) #14
  br label %586

586:                                              ; preds = %585, %576
  %.pn374.pn.pn = phi { ptr, i32 } [ %.pn374.pn, %585 ], [ %577, %576 ]
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %94) #14
  br label %587

587:                                              ; preds = %586, %574
  %.pn374.pn.pn.pn = phi { ptr, i32 } [ %.pn374.pn.pn, %586 ], [ %575, %574 ]
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %93) #14
  br label %612

588:                                              ; preds = %546
  %589 = fsub double %547, %505
  %590 = fdiv double %589, 6.000000e+00
  call void @llvm.lifetime.start.p0(i64 150, ptr nonnull %99) #14
  call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %100) #14
  %591 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %100, ptr noundef nonnull dereferenceable(1) @.str.3, i32 noundef %114, i32 noundef %117, i32 noundef %120, i32 noundef %123, i32 noundef %114, i32 noundef %123) #14
  %592 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %99, ptr noundef nonnull dereferenceable(1) @.str.4, ptr noundef nonnull @.str.5, ptr noundef nonnull %100) #14
  %593 = uitofp i32 %146 to double
  %594 = uitofp i32 %114 to double
  %595 = uitofp i32 %117 to double
  %596 = fmul double %594, %595
  %597 = fmul double %593, 2.000000e+00
  %598 = uitofp i32 %130 to double
  %599 = fmul double %597, %598
  %600 = uitofp nneg i32 %switch.load463 to double
  %601 = uitofp i32 %145 to double
  %602 = call double @llvm.fmuladd.f64(double %599, double %600, double %601)
  %603 = mul i32 %.sroa.19.1, %123
  %604 = uitofp i32 %603 to double
  %605 = fadd double %602, %604
  %606 = fmul double %596, %605
  invoke void @_Z6ut_log8DataTypePcdd(i32 noundef %2, ptr noundef nonnull %99, double noundef %606, double noundef %590)
          to label %607 unwind label %610

607:                                              ; preds = %588
  call void @free(ptr noundef %135) #14
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %100) #14
  call void @llvm.lifetime.end.p0(i64 150, ptr nonnull %99) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %75) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %75) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %73) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %73) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %71) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %71) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %69) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %69) #14
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #14
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %55) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %55) #14
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %53) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %53) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %51) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %51) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %49) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %49) #14
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %45) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %45) #14
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %40) #14
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %34) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %34) #14
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #14
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #14
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %17) #14
  call void @_ZNSt6vectorI10TensorDescSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #14
  call void @_ZNSt6vectorI10TensorDescSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #14
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #14
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #14
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %5) #14
  br label %639

608:                                              ; preds = %546
  %609 = landingpad { ptr, i32 }
          cleanup
  br label %612

610:                                              ; preds = %588
  %611 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %100) #14
  call void @llvm.lifetime.end.p0(i64 150, ptr nonnull %99) #14
  br label %612

612:                                              ; preds = %553, %587, %572, %610, %608, %483, %498, %442, %457, %552, %481, %440
  %.pn374.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn370, %552 ], [ %482, %481 ], [ %441, %440 ], [ %.pn356.pn.pn.pn, %457 ], [ %443, %442 ], [ %.pn363.pn.pn.pn, %498 ], [ %484, %483 ], [ %554, %553 ], [ %.pn374.pn.pn.pn, %587 ], [ %573, %572 ], [ %611, %610 ], [ %609, %608 ]
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %75) #14
  br label %613

613:                                              ; preds = %612, %438
  %.pn374.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn374.pn.pn.pn.pn.pn.pn, %612 ], [ %439, %438 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %75) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %73) #14
  br label %614

614:                                              ; preds = %613, %436
  %.pn374.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn374.pn.pn.pn.pn.pn.pn.pn, %613 ], [ %437, %436 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %73) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %71) #14
  br label %615

615:                                              ; preds = %614, %434
  %.pn374.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn374.pn.pn.pn.pn.pn.pn.pn.pn, %614 ], [ %435, %434 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %71) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %69) #14
  br label %616

616:                                              ; preds = %615, %432
  %.pn374.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn374.pn.pn.pn.pn.pn.pn.pn.pn.pn, %615 ], [ %433, %432 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %69) #14
  br label %617

617:                                              ; preds = %398, %404, %376, %382, %616, %374
  %.pn374.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn374.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %616 ], [ %375, %374 ], [ %.pn348, %382 ], [ %377, %376 ], [ %.pn352, %404 ], [ %399, %398 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #14
  br label %618

618:                                              ; preds = %617, %372
  %.pn374.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn374.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %617 ], [ %373, %372 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #14
  br label %619

619:                                              ; preds = %618, %351
  %.pn389 = phi { ptr, i32 } [ %352, %351 ], [ %.pn374.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %618 ]
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %55) #14
  br label %620

620:                                              ; preds = %619, %330
  %.pn389.pn = phi { ptr, i32 } [ %.pn389, %619 ], [ %331, %330 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %55) #14
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %53) #14
  br label %621

621:                                              ; preds = %620, %328
  %.pn389.pn.pn = phi { ptr, i32 } [ %.pn389.pn, %620 ], [ %329, %328 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %53) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %51) #14
  br label %622

622:                                              ; preds = %621, %326
  %.pn389.pn.pn.pn = phi { ptr, i32 } [ %.pn389.pn.pn, %621 ], [ %327, %326 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %51) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %49) #14
  br label %623

623:                                              ; preds = %622, %324
  %.pn389.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn389.pn.pn.pn, %622 ], [ %325, %324 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %49) #14
  br label %624

624:                                              ; preds = %314, %316, %623
  %.pn389.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn389.pn.pn.pn.pn, %623 ], [ %317, %316 ], [ %315, %314 ]
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %45) #14
  br label %625

625:                                              ; preds = %624, %312
  %.pn389.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn389.pn.pn.pn.pn.pn, %624 ], [ %313, %312 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %45) #14
  br label %626

626:                                              ; preds = %625, %294, %292
  %.pn389.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn389.pn.pn.pn.pn.pn.pn, %625 ], [ %295, %294 ], [ %293, %292 ]
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %40) #14
  br label %627

627:                                              ; preds = %290, %626, %261, %267, %288
  %.pn389.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %289, %288 ], [ %.pn, %267 ], [ %262, %261 ], [ %.pn389.pn.pn.pn.pn.pn.pn.pn, %626 ], [ %291, %290 ]
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %34) #14
  br label %628

628:                                              ; preds = %627, %259
  %.pn389.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn389.pn.pn.pn.pn.pn.pn.pn.pn.pn, %627 ], [ %260, %259 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %34) #14
  call void @_ZNSt6vectorIP6TensorSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #14
  br label %629

629:                                              ; preds = %628, %257
  %.pn389.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn389.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %628 ], [ %258, %257 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #14
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #14
  br label %630

630:                                              ; preds = %629, %255
  %.pn389.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn389.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %629 ], [ %256, %255 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #14
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #14
  br label %631

631:                                              ; preds = %630, %253
  %.pn389.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn389.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %630 ], [ %254, %253 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #14
  br label %632

632:                                              ; preds = %229, %233, %231, %201, %205, %203, %631
  %.pn407.pn.pn = phi { ptr, i32 } [ %.pn389.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %631 ], [ %202, %201 ], [ %206, %205 ], [ %204, %203 ], [ %230, %229 ], [ %234, %233 ], [ %232, %231 ]
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #14
  br label %633

633:                                              ; preds = %632, %177
  %.pn407.pn.pn.pn = phi { ptr, i32 } [ %.pn407.pn.pn, %632 ], [ %178, %177 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #14
  call void @_ZNSt6vectorI6TensorSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #14
  br label %634

634:                                              ; preds = %633, %175
  %.pn407.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn407.pn.pn.pn, %633 ], [ %176, %175 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %17) #14
  br label %635

635:                                              ; preds = %634, %173, %171, %169, %167
  %.pn407.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn407.pn.pn.pn.pn, %634 ], [ %174, %173 ], [ %172, %171 ], [ %170, %169 ], [ %168, %167 ]
  call void @_ZNSt6vectorI10TensorDescSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #14
  br label %636

636:                                              ; preds = %635, %165
  %.pn407.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn407.pn.pn.pn.pn.pn, %635 ], [ %166, %165 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #14
  call void @_ZNSt6vectorI10TensorDescSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #14
  br label %637

637:                                              ; preds = %636, %163
  %.pn407.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn407.pn.pn.pn.pn.pn.pn, %636 ], [ %164, %163 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #14
  br label %638

638:                                              ; preds = %159, %161, %637, %157
  %.pn407.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %158, %157 ], [ %.pn407.pn.pn.pn.pn.pn.pn.pn, %637 ], [ %162, %161 ], [ %160, %159 ]
  call void @_ZN6TensorD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #14
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #14
  call void @llvm.lifetime.end.p0(i64 92, ptr nonnull %5) #14
  call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %.sroa.30)
  resume { ptr, i32 } %.pn407.pn.pn.pn.pn.pn.pn.pn.pn.pn

639:                                              ; preds = %111, %607
  %.0 = phi i32 [ 0, %607 ], [ 1, %111 ]
  call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %.sroa.30)
  ret i32 %.0
}

; 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 uwtable
declare dso_local void @_Z9tensor3df8DataType10DataFormatjjj(ptr dead_on_unwind noalias writable sret(%struct.TensorDesc) align 4, i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #6

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare noundef i32 @_Z21rnn_infer_output_sizeSt6vectorIP6TensorSaIS1_EE12RNNParamSpecS3_P8ArchInfo(ptr noundef, ptr noundef byval(%struct.RNNParamSpec) align 8, ptr noundef, ptr noundef) local_unnamed_addr #11

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

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

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

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

declare noundef i32 @_Z27rnn_infer_forward_tmp_bytes6TensorS_S_12RNNParamSpecPjP8ArchInfo(ptr noundef, ptr noundef, ptr noundef, ptr noundef byval(%struct.RNNParamSpec) align 8, ptr noundef, ptr noundef) local_unnamed_addr #11

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

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

declare noundef i32 @_Z26rnn_transform_filter_bytesSt6vectorI6TensorSaIS0_EE12RNNParamSpecPvP8ArchInfo(ptr noundef, ptr noundef byval(%struct.RNNParamSpec) align 8, ptr noundef, ptr noundef) local_unnamed_addr #11

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

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

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

; Function Attrs: 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 nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #9 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 #9 align 2

declare noundef i32 @_Z20rnn_transform_filterSt6vectorI6TensorSaIS0_EE12RNNParamSpecS0_S_IPS0_SaIS4_EEP8ArchInfoPv(ptr noundef, ptr noundef byval(%struct.RNNParamSpec) align 8, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #11

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

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

declare noundef i32 @_Z3rnnSt6vectorI6TensorSaIS0_EES2_S2_12RNNParamSpecS2_S2_PvP8ArchInfo(ptr noundef, ptr noundef, ptr noundef, ptr noundef byval(%struct.RNNParamSpec) align 8, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #11

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

declare noundef double @_Z10ut_time_msv() local_unnamed_addr #11

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

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

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

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

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

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

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

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #13

attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress nofree nounwind willreturn memory(read) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #8 = { inlinehint mustprogress 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 #9 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #12 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #13 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #14 = { nounwind }
attributes #15 = { noreturn nounwind }
attributes #16 = { 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 = !{i64 0, i64 4, !10, i64 4, i64 4, !12, i64 8, i64 4, !14, i64 12, i64 80, !16}
!10 = !{!11, !11, i64 0}
!11 = !{!"_ZTS8DataType", !7, i64 0}
!12 = !{!13, !13, i64 0}
!13 = !{!"_ZTS10DataFormat", !7, i64 0}
!14 = !{!15, !15, i64 0}
!15 = !{!"int", !7, i64 0}
!16 = !{!7, !7, i64 0}
!17 = distinct !{!17, !18}
!18 = !{!"llvm.loop.mustprogress"}
!19 = distinct !{!19, !18}
!20 = !{!21, !21, i64 0}
!21 = !{!"_ZTS7RNNMode", !7, i64 0}
!22 = !{i64 3, i64 4, !23, i64 7, i64 4, !25}
!23 = !{!24, !24, i64 0}
!24 = !{!"float", !7, i64 0}
!25 = !{!26, !26, i64 0}
!26 = !{!"_ZTS14ActivationMode", !7, i64 0}
!27 = distinct !{!27, !18}
!28 = !{!29, !30, i64 0}
!29 = !{!"_ZTS8ArchInfo", !30, i64 0, !6, i64 8}
!30 = !{!"_ZTS4Arch", !7, i64 0}


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