diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10_front/Makefile b/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10_front/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..3dce97f53bba9158bb55f99a5eea9ca5f8bac6f2
--- /dev/null
+++ b/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10_front/Makefile
@@ -0,0 +1,57 @@
+DNN_BENCHMARK_ROOT = $(LLVM_SRC_ROOT)/test/VISC/DNN_Benchmarks
+# NOTE: can configure build directory
+HPVM_BUILD_DIR = $(LLVM_SRC_ROOT)/../build_fresh/
+
+CC = $(HPVM_BUILD_DIR)/bin/clang++
+OPT = $(HPVM_BUILD_DIR)/bin/opt
+LLVM_DIS = $(HPVM_BUILD_DIR)/bin/llvm-dis
+LLVM_LINK = $(HPVM_BUILD_DIR)/bin/llvm-link
+LLVM_INCLUDE_DIR = $(LLVM_SRC_ROOT)/include
+
+
+SRC_DIR = src
+BUILD_DIR = build
+APP = vgg16_cifar10
+
+TENSOR_INCLUDE_DIR = $(DNN_BENCHMARK_ROOT)/common/include
+TENSOR_RT_INCLUDE_DIR = $(LLVM_SRC_ROOT)/projects/hpvm-tensor-rt/tensor_runtime/include
+TENSOR_LIB_DIR = $(LLVM_SRC_ROOT)/projects/hpvm-tensor-rt/lib/libtensor_runtime.a
+TENSOR_AUTOTUNER_DIR = $(LLVM_SRC_ROOT)/projects/hpvm-tensor-rt/lib/libtensor_autotuner.a
+
+CC_FLAGS = -I $(LLVM_INCLUDE_DIR) -I $(TENSOR_INCLUDE_DIR) -I $(TENSOR_RT_INCLUDE_DIR) -I $(CUDA_INCLUDE_PATH)  -fno-exceptions -ffast-math -std=c++11 -O3
+CCFLAGS += -DDEVICE=CUDNN_TARGET
+LINKER_FLAGS = -lpthread -lcudart -lcurand -lcudnn -lcublas -lOpenCL
+
+HPVM_LIB_DIR = $(HPVM_BUILD_DIR)/lib
+#HPVM_LIB_DIR = /home/hsharif3/Gitlab/hpvm/build_new/lib
+
+
+VISC_OPTFLAGS = -load  $(HPVM_LIB_DIR)/LLVMBuildDFG.so -load $(HPVM_LIB_DIR)/LLVMInPlaceDFGAnalysis.so -load  $(HPVM_LIB_DIR)/LLVMDFG2LLVM_CUDNN.so -load  $(HPVM_LIB_DIR)/LLVMDFG2LLVM_X86.so -load  $(HPVM_LIB_DIR)/LLVMClearDFG.so -inplace -dfg2llvm-cudnn -dfg2llvm-x86 -clearDFG
+
+TARGET = $(BUILD_DIR)/$(APP).opt.bc
+SOURCES = $(SRC_DIR)/$(APP).cpp
+VISC_RT_PATH = $(LLVM_SRC_ROOT)/../build/projects/visc-rt/visc-rt.ll
+
+#OBJS = $(BUILD_DIR)/$(wildcabrd *.ll)
+.PRECIOUS: $(BUILD_DIR)/$(APP).ll $(BUILD_DIR)/$(APP).visc.ll
+default: $(BUILD_DIR) $(TARGET)
+
+
+$(BUILD_DIR)/%.ll: $(SRC_DIR)/%.cpp
+	$(CC) $(CC_FLAGS) -emit-llvm -S -o $@ $<
+
+#-visc-timers-gen
+$(BUILD_DIR)/%.visc.ll: $(BUILD_DIR)/%.ll
+	$(OPT) -load LLVMGenVISC.so -genvisc -globaldce  $< -S -o $@
+
+$(BUILD_DIR)/%.opt.bc: $(BUILD_DIR)/%.visc.ll
+	$(OPT) $(VISC_OPTFLAGS) $< -o $@
+	$(LLVM_LINK) $@ $(VISC_RT_PATH) -o $(BUILD_DIR)/$(APP)_linked.bc
+	$(CC) $(BUILD_DIR)/$(APP)_linked.bc $(TENSOR_LIB_DIR) -o $(BUILD_DIR)/$(APP)_linked $(LINKER_FLAGS)
+	$(CC) $(BUILD_DIR)/$(APP)_linked.bc $(TENSOR_AUTOTUNER_DIR) -o $(BUILD_DIR)/$(APP)_tune $(LINKER_FLAGS)
+
+$(BUILD_DIR):
+	mkdir -p $@
+
+clean:
+	rm -rf $(BUILD_DIR)
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10_front/build/final_accuracy b/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10_front/build/final_accuracy
new file mode 100644
index 0000000000000000000000000000000000000000..327358db8f07ecc900e3d5c5e23d99c194dcc4f0
--- /dev/null
+++ b/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10_front/build/final_accuracy
@@ -0,0 +1 @@
+89.500000
\ No newline at end of file
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10_front/build/vgg16_cifar10.ll b/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10_front/build/vgg16_cifar10.ll
new file mode 100644
index 0000000000000000000000000000000000000000..c886277a9b4f2cf13f5b17d8639cd9f4b059898b
--- /dev/null
+++ b/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10_front/build/vgg16_cifar10.ll
@@ -0,0 +1,5615 @@
+; ModuleID = 'src/vgg16_cifar10.cpp'
+source_filename = "src/vgg16_cifar10.cpp"
+target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
+target triple = "x86_64-unknown-linux-gnu"
+
+%struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct._IO_FILE*, i32, i32, i64, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i8*, i8*, i64, i32, [20 x i8] }
+%struct._IO_marker = type { %struct._IO_marker*, %struct._IO_FILE*, i32 }
+%struct.Tensor = type { i32, i32, i32, %struct.cudnnTensorStruct*, %struct.cudnnFilterStruct*, i8*, i8*, i64, i64, %struct.Dimension }
+%struct.cudnnTensorStruct = type opaque
+%struct.cudnnFilterStruct = type opaque
+%struct.Dimension = type { i32, i64* }
+%"class.std::__cxx11::basic_ostringstream" = type { %"class.std::basic_ostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
+%"class.std::basic_ostream.base" = type { i32 (...)** }
+%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
+%"class.std::basic_streambuf" = type { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, %"class.std::locale" }
+%"class.std::locale" = type { %"class.std::locale::_Impl"* }
+%"class.std::locale::_Impl" = type { i32, %"class.std::locale::facet"**, i64, %"class.std::locale::facet"**, i8** }
+%"class.std::locale::facet" = type <{ i32 (...)**, i32, [4 x i8] }>
+%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider", i64, %union.anon }
+%"struct.std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider" = type { i8* }
+%union.anon = type { i64, [8 x i8] }
+%"class.std::basic_ios" = type { %"class.std::ios_base", %"class.std::basic_ostream"*, i8, i8, %"class.std::basic_streambuf"*, %"class.std::ctype"*, %"class.std::num_put"*, %"class.std::num_get"* }
+%"class.std::ios_base" = type { i32 (...)**, i64, i64, i32, i32, i32, %"struct.std::ios_base::_Callback_list"*, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, %"struct.std::ios_base::_Words"*, %"class.std::locale" }
+%"struct.std::ios_base::_Callback_list" = type { %"struct.std::ios_base::_Callback_list"*, void (i32, %"class.std::ios_base"*, i32)*, i32, i32 }
+%"struct.std::ios_base::_Words" = type { i8*, i64 }
+%"class.std::basic_ostream" = type { i32 (...)**, %"class.std::basic_ios" }
+%"class.std::ctype" = type <{ %"class.std::locale::facet.base", [4 x i8], %struct.__locale_struct*, i8, [7 x i8], i32*, i32*, i16*, i8, [256 x i8], [256 x i8], i8, [6 x i8] }>
+%"class.std::locale::facet.base" = type <{ i32 (...)**, i32 }>
+%struct.__locale_struct = type { [13 x %struct.__locale_data*], i16*, i32*, i32*, [13 x i8*] }
+%struct.__locale_data = type opaque
+%"class.std::num_put" = type { %"class.std::locale::facet.base", [4 x i8] }
+%"class.std::num_get" = type { %"class.std::locale::facet.base", [4 x i8] }
+
+@.str.1 = private unnamed_addr constant [19 x i8] c"tensor dims = %d \0A\00", align 1
+@.str.2 = private unnamed_addr constant [18 x i8] c"dim1_size = %zu \0A\00", align 1
+@.str.3 = private unnamed_addr constant [18 x i8] c"dim2_size = %zu \0A\00", align 1
+@.str.4 = private unnamed_addr constant [18 x i8] c"num_elems = %zu \0A\00", align 1
+@.str.5 = private unnamed_addr constant [3 x i8] c"wb\00", align 1
+@.str.6 = private unnamed_addr constant [58 x i8] c"File %s could not be created. Check if directory exists \0A\00", align 1
+@.str.7 = private unnamed_addr constant [22 x i8] c"size_in_bytes = %zu \0A\00", align 1
+@.str.8 = private unnamed_addr constant [21 x i8] c"bytes_written = %zu\0A\00", align 1
+@.str.9 = private unnamed_addr constant [4 x i8] c"%f,\00", align 1
+@.str.11 = private unnamed_addr constant [18 x i8] c"Num_elems = %zu \0A\00", align 1
+@.str.12 = private unnamed_addr constant [16 x i8] c"dim[%d] = %zu \0A\00", align 1
+@.str.13 = private unnamed_addr constant [35 x i8] c"Tensor data mismatch at index %d \0A\00", align 1
+@.str.14 = private unnamed_addr constant [21 x i8] c"Tensor data mismatch\00", align 1
+@.str.15 = private unnamed_addr constant [3 x i8] c"rb\00", align 1
+@.str.16 = private unnamed_addr constant [41 x i8] c"Data file %s is not found. Aborting... \0A\00", align 1
+@.str.17 = private unnamed_addr constant [23 x i8] c"tensor_data[%d] = %f \0A\00", align 1
+@.str.18 = private unnamed_addr constant [40 x i8] c"Data file %s is not found. Aborting...\0A\00", align 1
+@.str.19 = private unnamed_addr constant [26 x i8] c"*Label bytes_read = %zu \0A\00", align 1
+@.str.20 = private unnamed_addr constant [24 x i8] c"****** Accuracy = %f \0A\0A\00", align 1
+@.str.21 = private unnamed_addr constant [15 x i8] c"final_accuracy\00", align 1
+@.str.22 = private unnamed_addr constant [3 x i8] c"w+\00", align 1
+@.str.23 = private unnamed_addr constant [72 x i8] c"../../../../../../projects/hpvm-tensor-rt/model_params/vgg16_cifar10_2/\00", align 1
+@.str.24 = private unnamed_addr constant [10 x i8] c"input.bin\00", align 1
+@.str.25 = private unnamed_addr constant [11 x i8] c"labels.bin\00", align 1
+@.str.26 = private unnamed_addr constant [15 x i8] c"conv2d_1_w.bin\00", align 1
+@.str.27 = private unnamed_addr constant [15 x i8] c"conv2d_1_b.bin\00", align 1
+@.str.28 = private unnamed_addr constant [15 x i8] c"conv2d_2_w.bin\00", align 1
+@.str.29 = private unnamed_addr constant [15 x i8] c"conv2d_2_b.bin\00", align 1
+@.str.30 = private unnamed_addr constant [15 x i8] c"conv2d_3_w.bin\00", align 1
+@.str.31 = private unnamed_addr constant [15 x i8] c"conv2d_3_b.bin\00", align 1
+@.str.32 = private unnamed_addr constant [15 x i8] c"conv2d_4_w.bin\00", align 1
+@.str.33 = private unnamed_addr constant [15 x i8] c"conv2d_4_b.bin\00", align 1
+@.str.34 = private unnamed_addr constant [15 x i8] c"conv2d_5_w.bin\00", align 1
+@.str.35 = private unnamed_addr constant [15 x i8] c"conv2d_5_b.bin\00", align 1
+@.str.36 = private unnamed_addr constant [15 x i8] c"conv2d_6_w.bin\00", align 1
+@.str.37 = private unnamed_addr constant [15 x i8] c"conv2d_6_b.bin\00", align 1
+@.str.38 = private unnamed_addr constant [15 x i8] c"conv2d_7_w.bin\00", align 1
+@.str.39 = private unnamed_addr constant [15 x i8] c"conv2d_7_b.bin\00", align 1
+@.str.40 = private unnamed_addr constant [15 x i8] c"conv2d_8_w.bin\00", align 1
+@.str.41 = private unnamed_addr constant [15 x i8] c"conv2d_8_b.bin\00", align 1
+@.str.42 = private unnamed_addr constant [15 x i8] c"conv2d_9_w.bin\00", align 1
+@.str.43 = private unnamed_addr constant [15 x i8] c"conv2d_9_b.bin\00", align 1
+@.str.44 = private unnamed_addr constant [16 x i8] c"conv2d_10_w.bin\00", align 1
+@.str.45 = private unnamed_addr constant [16 x i8] c"conv2d_10_b.bin\00", align 1
+@.str.46 = private unnamed_addr constant [16 x i8] c"conv2d_11_w.bin\00", align 1
+@.str.47 = private unnamed_addr constant [16 x i8] c"conv2d_11_b.bin\00", align 1
+@.str.48 = private unnamed_addr constant [16 x i8] c"conv2d_12_w.bin\00", align 1
+@.str.49 = private unnamed_addr constant [16 x i8] c"conv2d_12_b.bin\00", align 1
+@.str.50 = private unnamed_addr constant [16 x i8] c"conv2d_13_w.bin\00", align 1
+@.str.51 = private unnamed_addr constant [16 x i8] c"conv2d_13_b.bin\00", align 1
+@.str.52 = private unnamed_addr constant [14 x i8] c"dense_1_w.bin\00", align 1
+@.str.53 = private unnamed_addr constant [14 x i8] c"dense_1_b.bin\00", align 1
+@.str.54 = private unnamed_addr constant [14 x i8] c"dense_2_w.bin\00", align 1
+@.str.55 = private unnamed_addr constant [14 x i8] c"dense_2_b.bin\00", align 1
+@_ZTVNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE = external unnamed_addr constant { [5 x i8*], [5 x i8*] }
+@_ZTTNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE = external unnamed_addr constant [4 x i8*]
+@_ZTVSt9basic_iosIcSt11char_traitsIcEE = external unnamed_addr constant { [4 x i8*] }
+@_ZTVNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEE = external unnamed_addr constant { [16 x i8*] }
+@_ZTVSt15basic_streambufIcSt11char_traitsIcEE = external unnamed_addr constant { [16 x i8*] }
+@str = private unnamed_addr constant [23 x i8] c"Successful cudaMalloc \00"
+
+; Function Attrs: nounwind uwtable
+define void @_Z15printTensorInfoPv(i8* nocapture readonly %tensor_ptr) local_unnamed_addr #0 {
+entry:
+  %gpu_data = getelementptr inbounds i8, i8* %tensor_ptr, i64 40
+  %0 = bitcast i8* %gpu_data to i8**
+  %1 = load i8*, i8** %0, align 8, !tbaa !1
+  %cmp = icmp eq i8* %1, null
+  br i1 %cmp, label %if.end, label %if.then
+
+if.then:                                          ; preds = %entry
+  %puts = tail call i32 @puts(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @str, i64 0, i64 0))
+  br label %if.end
+
+if.end:                                           ; preds = %entry, %if.then
+  %dims = getelementptr inbounds i8, i8* %tensor_ptr, i64 64
+  %num_dims = bitcast i8* %dims to i32*
+  %2 = load i32, i32* %num_dims, align 8, !tbaa !10
+  %call1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1, i64 0, i64 0), i32 %2)
+  %dim_sizes = getelementptr inbounds i8, i8* %tensor_ptr, i64 72
+  %3 = bitcast i8* %dim_sizes to i64**
+  %4 = load i64*, i64** %3, align 8, !tbaa !11
+  %5 = load i64, i64* %4, align 8, !tbaa !12
+  %call3 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.2, i64 0, i64 0), i64 %5)
+  %6 = load i64*, i64** %3, align 8, !tbaa !11
+  %arrayidx6 = getelementptr inbounds i64, i64* %6, i64 1
+  %7 = load i64, i64* %arrayidx6, align 8, !tbaa !12
+  %call7 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.3, i64 0, i64 0), i64 %7)
+  %num_elems = getelementptr inbounds i8, i8* %tensor_ptr, i64 48
+  %8 = bitcast i8* %num_elems to i64*
+  %9 = load i64, i64* %8, align 8, !tbaa !13
+  %call8 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.4, i64 0, i64 0), i64 %9)
+  ret void
+}
+
+; Function Attrs: argmemonly nounwind
+declare void @llvm.lifetime.start(i64, i8* nocapture) #1
+
+; Function Attrs: nounwind
+declare i32 @printf(i8* nocapture readonly, ...) local_unnamed_addr #2
+
+; Function Attrs: argmemonly nounwind
+declare void @llvm.lifetime.end(i64, i8* nocapture) #1
+
+; Function Attrs: nounwind uwtable
+define void @_Z17dumpWeightsToFilePcPv(i8* %file_name, i8* %weights_ptr) local_unnamed_addr #0 {
+entry:
+  tail call void @hpvm_request_tensor(i8* %weights_ptr, i32 0) #7
+  %call = tail call %struct._IO_FILE* @fopen(i8* %file_name, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.5, i64 0, i64 0))
+  %cmp = icmp eq %struct._IO_FILE* %call, null
+  br i1 %cmp, label %if.then, label %if.end
+
+if.then:                                          ; preds = %entry
+  %call1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.6, i64 0, i64 0), i8* %file_name)
+  tail call void @abort() #8
+  unreachable
+
+if.end:                                           ; preds = %entry
+  %size_in_bytes = getelementptr inbounds i8, i8* %weights_ptr, i64 56
+  %0 = bitcast i8* %size_in_bytes to i64*
+  %1 = load i64, i64* %0, align 8, !tbaa !14
+  %call2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.7, i64 0, i64 0), i64 %1)
+  %host_data = getelementptr inbounds i8, i8* %weights_ptr, i64 32
+  %2 = bitcast i8* %host_data to i8**
+  %3 = load i8*, i8** %2, align 8, !tbaa !15
+  %4 = load i64, i64* %0, align 8, !tbaa !14
+  %call4 = tail call i64 @fwrite(i8* %3, i64 1, i64 %4, %struct._IO_FILE* nonnull %call)
+  %call5 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.8, i64 0, i64 0), i64 %call4)
+  %call6 = tail call i32 @fclose(%struct._IO_FILE* nonnull %call)
+  ret void
+}
+
+declare void @hpvm_request_tensor(i8*, i32) local_unnamed_addr #3
+
+; Function Attrs: nounwind
+declare noalias %struct._IO_FILE* @fopen(i8* nocapture readonly, i8* nocapture readonly) local_unnamed_addr #2
+
+; Function Attrs: noreturn nounwind
+declare void @abort() local_unnamed_addr #4
+
+; Function Attrs: nounwind
+declare i64 @fwrite(i8* nocapture, i64, i64, %struct._IO_FILE* nocapture) local_unnamed_addr #2
+
+; Function Attrs: nounwind
+declare i32 @fclose(%struct._IO_FILE* nocapture) local_unnamed_addr #2
+
+; Function Attrs: nounwind uwtable
+define void @_Z18fillTensorWithOnesPv(i8* %tensor_ptr) local_unnamed_addr #0 {
+entry:
+  tail call void @hpvm_request_tensor(i8* %tensor_ptr, i32 0) #7
+  %data_type = bitcast i8* %tensor_ptr to i32*
+  %0 = load i32, i32* %data_type, align 8, !tbaa !16
+  %cmp = icmp eq i32 %0, 0
+  br i1 %cmp, label %if.then, label %if.end
+
+if.then:                                          ; preds = %entry
+  %host_data = getelementptr inbounds i8, i8* %tensor_ptr, i64 32
+  %1 = bitcast i8* %host_data to float**
+  %2 = load float*, float** %1, align 8, !tbaa !15
+  %num_elems = getelementptr inbounds i8, i8* %tensor_ptr, i64 48
+  %3 = bitcast i8* %num_elems to i64*
+  %4 = load i64, i64* %3, align 8, !tbaa !13
+  %cmp110 = icmp eq i64 %4, 0
+  br i1 %cmp110, label %if.end, label %for.body.preheader
+
+for.body.preheader:                               ; preds = %if.then
+  %min.iters.check = icmp ult i64 %4, 8
+  br i1 %min.iters.check, label %for.body.preheader22, label %min.iters.checked
+
+min.iters.checked:                                ; preds = %for.body.preheader
+  %n.vec = and i64 %4, -8
+  %cmp.zero = icmp eq i64 %n.vec, 0
+  br i1 %cmp.zero, label %for.body.preheader22, label %vector.scevcheck
+
+vector.scevcheck:                                 ; preds = %min.iters.checked
+  %5 = add i64 %4, -1
+  %6 = trunc i64 %5 to i32
+  %7 = icmp eq i32 %6, -1
+  %8 = icmp ugt i64 %5, 4294967295
+  %9 = or i1 %7, %8
+  %cast.crd = trunc i64 %n.vec to i32
+  br i1 %9, label %for.body.preheader22, label %vector.body.preheader
+
+vector.body.preheader:                            ; preds = %vector.scevcheck
+  %10 = add i64 %n.vec, -8
+  %11 = lshr exact i64 %10, 3
+  %12 = add nuw nsw i64 %11, 1
+  %xtraiter = and i64 %12, 7
+  %lcmp.mod = icmp eq i64 %xtraiter, 0
+  br i1 %lcmp.mod, label %vector.body.prol.loopexit, label %vector.body.prol.preheader
+
+vector.body.prol.preheader:                       ; preds = %vector.body.preheader
+  br label %vector.body.prol
+
+vector.body.prol:                                 ; preds = %vector.body.prol, %vector.body.prol.preheader
+  %index.prol = phi i64 [ %index.next.prol, %vector.body.prol ], [ 0, %vector.body.prol.preheader ]
+  %prol.iter = phi i64 [ %prol.iter.sub, %vector.body.prol ], [ %xtraiter, %vector.body.prol.preheader ]
+  %13 = getelementptr inbounds float, float* %2, i64 %index.prol
+  %14 = bitcast float* %13 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %14, align 4, !tbaa !17
+  %15 = getelementptr float, float* %13, i64 4
+  %16 = bitcast float* %15 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %16, align 4, !tbaa !17
+  %index.next.prol = add i64 %index.prol, 8
+  %prol.iter.sub = add i64 %prol.iter, -1
+  %prol.iter.cmp = icmp eq i64 %prol.iter.sub, 0
+  br i1 %prol.iter.cmp, label %vector.body.prol.loopexit.unr-lcssa, label %vector.body.prol, !llvm.loop !19
+
+vector.body.prol.loopexit.unr-lcssa:              ; preds = %vector.body.prol
+  br label %vector.body.prol.loopexit
+
+vector.body.prol.loopexit:                        ; preds = %vector.body.preheader, %vector.body.prol.loopexit.unr-lcssa
+  %index.unr = phi i64 [ 0, %vector.body.preheader ], [ %index.next.prol, %vector.body.prol.loopexit.unr-lcssa ]
+  %17 = icmp ult i64 %10, 56
+  br i1 %17, label %middle.block, label %vector.body.preheader.new
+
+vector.body.preheader.new:                        ; preds = %vector.body.prol.loopexit
+  br label %vector.body
+
+vector.body:                                      ; preds = %vector.body, %vector.body.preheader.new
+  %index = phi i64 [ %index.unr, %vector.body.preheader.new ], [ %index.next.7, %vector.body ]
+  %18 = getelementptr inbounds float, float* %2, i64 %index
+  %19 = bitcast float* %18 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %19, align 4, !tbaa !17
+  %20 = getelementptr float, float* %18, i64 4
+  %21 = bitcast float* %20 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %21, align 4, !tbaa !17
+  %index.next = add i64 %index, 8
+  %22 = getelementptr inbounds float, float* %2, i64 %index.next
+  %23 = bitcast float* %22 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %23, align 4, !tbaa !17
+  %24 = getelementptr float, float* %22, i64 4
+  %25 = bitcast float* %24 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %25, align 4, !tbaa !17
+  %index.next.1 = add i64 %index, 16
+  %26 = getelementptr inbounds float, float* %2, i64 %index.next.1
+  %27 = bitcast float* %26 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %27, align 4, !tbaa !17
+  %28 = getelementptr float, float* %26, i64 4
+  %29 = bitcast float* %28 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %29, align 4, !tbaa !17
+  %index.next.2 = add i64 %index, 24
+  %30 = getelementptr inbounds float, float* %2, i64 %index.next.2
+  %31 = bitcast float* %30 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %31, align 4, !tbaa !17
+  %32 = getelementptr float, float* %30, i64 4
+  %33 = bitcast float* %32 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %33, align 4, !tbaa !17
+  %index.next.3 = add i64 %index, 32
+  %34 = getelementptr inbounds float, float* %2, i64 %index.next.3
+  %35 = bitcast float* %34 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %35, align 4, !tbaa !17
+  %36 = getelementptr float, float* %34, i64 4
+  %37 = bitcast float* %36 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %37, align 4, !tbaa !17
+  %index.next.4 = add i64 %index, 40
+  %38 = getelementptr inbounds float, float* %2, i64 %index.next.4
+  %39 = bitcast float* %38 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %39, align 4, !tbaa !17
+  %40 = getelementptr float, float* %38, i64 4
+  %41 = bitcast float* %40 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %41, align 4, !tbaa !17
+  %index.next.5 = add i64 %index, 48
+  %42 = getelementptr inbounds float, float* %2, i64 %index.next.5
+  %43 = bitcast float* %42 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %43, align 4, !tbaa !17
+  %44 = getelementptr float, float* %42, i64 4
+  %45 = bitcast float* %44 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %45, align 4, !tbaa !17
+  %index.next.6 = add i64 %index, 56
+  %46 = getelementptr inbounds float, float* %2, i64 %index.next.6
+  %47 = bitcast float* %46 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %47, align 4, !tbaa !17
+  %48 = getelementptr float, float* %46, i64 4
+  %49 = bitcast float* %48 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %49, align 4, !tbaa !17
+  %index.next.7 = add i64 %index, 64
+  %50 = icmp eq i64 %index.next.7, %n.vec
+  br i1 %50, label %middle.block.unr-lcssa, label %vector.body, !llvm.loop !21
+
+middle.block.unr-lcssa:                           ; preds = %vector.body
+  br label %middle.block
+
+middle.block:                                     ; preds = %vector.body.prol.loopexit, %middle.block.unr-lcssa
+  %cmp.n = icmp eq i64 %4, %n.vec
+  br i1 %cmp.n, label %if.end, label %for.body.preheader22
+
+for.body.preheader22:                             ; preds = %middle.block, %vector.scevcheck, %min.iters.checked, %for.body.preheader
+  %conv12.ph = phi i64 [ 0, %vector.scevcheck ], [ 0, %min.iters.checked ], [ 0, %for.body.preheader ], [ %n.vec, %middle.block ]
+  %i.011.ph = phi i32 [ 0, %vector.scevcheck ], [ 0, %min.iters.checked ], [ 0, %for.body.preheader ], [ %cast.crd, %middle.block ]
+  br label %for.body
+
+for.body:                                         ; preds = %for.body.preheader22, %for.body
+  %conv12 = phi i64 [ %conv, %for.body ], [ %conv12.ph, %for.body.preheader22 ]
+  %i.011 = phi i32 [ %inc, %for.body ], [ %i.011.ph, %for.body.preheader22 ]
+  %arrayidx = getelementptr inbounds float, float* %2, i64 %conv12
+  store float 1.000000e+00, float* %arrayidx, align 4, !tbaa !17
+  %inc = add i32 %i.011, 1
+  %conv = zext i32 %inc to i64
+  %cmp1 = icmp ult i64 %conv, %4
+  br i1 %cmp1, label %for.body, label %if.end.loopexit, !llvm.loop !24
+
+if.end.loopexit:                                  ; preds = %for.body
+  br label %if.end
+
+if.end:                                           ; preds = %if.end.loopexit, %middle.block, %if.then, %entry
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z19fillWithOnesAndTwosPv(i8* %tensor_ptr) local_unnamed_addr #0 {
+entry:
+  tail call void @hpvm_request_tensor(i8* %tensor_ptr, i32 0) #7
+  %data_type = bitcast i8* %tensor_ptr to i32*
+  %0 = load i32, i32* %data_type, align 8, !tbaa !16
+  %cmp = icmp eq i32 %0, 0
+  br i1 %cmp, label %if.then, label %if.end
+
+if.then:                                          ; preds = %entry
+  %host_data = getelementptr inbounds i8, i8* %tensor_ptr, i64 32
+  %1 = bitcast i8* %host_data to float**
+  %2 = load float*, float** %1, align 8, !tbaa !15
+  %num_elems = getelementptr inbounds i8, i8* %tensor_ptr, i64 48
+  %3 = bitcast i8* %num_elems to i64*
+  %4 = load i64, i64* %3, align 8, !tbaa !13
+  %div35 = lshr i64 %4, 1
+  %cmp136 = icmp eq i64 %div35, 0
+  br i1 %cmp136, label %for.cond.cleanup, label %for.body.preheader
+
+for.body.preheader:                               ; preds = %if.then
+  %min.iters.check = icmp ult i64 %4, 16
+  br i1 %min.iters.check, label %for.body.preheader85, label %min.iters.checked
+
+for.body.preheader85:                             ; preds = %middle.block, %vector.scevcheck, %min.iters.checked, %for.body.preheader
+  %conv38.ph = phi i64 [ 0, %vector.scevcheck ], [ 0, %min.iters.checked ], [ 0, %for.body.preheader ], [ %n.vec, %middle.block ]
+  %i.037.ph = phi i32 [ 0, %vector.scevcheck ], [ 0, %min.iters.checked ], [ 0, %for.body.preheader ], [ %cast.crd, %middle.block ]
+  br label %for.body
+
+min.iters.checked:                                ; preds = %for.body.preheader
+  %n.vec = and i64 %div35, 9223372036854775800
+  %cmp.zero = icmp eq i64 %n.vec, 0
+  br i1 %cmp.zero, label %for.body.preheader85, label %vector.scevcheck
+
+vector.scevcheck:                                 ; preds = %min.iters.checked
+  %5 = add nsw i64 %div35, -1
+  %6 = trunc i64 %5 to i32
+  %7 = icmp eq i32 %6, -1
+  %8 = icmp ugt i64 %5, 4294967295
+  %9 = or i1 %7, %8
+  %cast.crd = trunc i64 %n.vec to i32
+  br i1 %9, label %for.body.preheader85, label %vector.body.preheader
+
+vector.body.preheader:                            ; preds = %vector.scevcheck
+  %10 = add nsw i64 %n.vec, -8
+  %11 = lshr exact i64 %10, 3
+  %12 = add nuw nsw i64 %11, 1
+  %xtraiter86 = and i64 %12, 7
+  %lcmp.mod87 = icmp eq i64 %xtraiter86, 0
+  br i1 %lcmp.mod87, label %vector.body.prol.loopexit, label %vector.body.prol.preheader
+
+vector.body.prol.preheader:                       ; preds = %vector.body.preheader
+  br label %vector.body.prol
+
+vector.body.prol:                                 ; preds = %vector.body.prol, %vector.body.prol.preheader
+  %index.prol = phi i64 [ %index.next.prol, %vector.body.prol ], [ 0, %vector.body.prol.preheader ]
+  %prol.iter88 = phi i64 [ %prol.iter88.sub, %vector.body.prol ], [ %xtraiter86, %vector.body.prol.preheader ]
+  %13 = getelementptr inbounds float, float* %2, i64 %index.prol
+  %14 = bitcast float* %13 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %14, align 4, !tbaa !17
+  %15 = getelementptr float, float* %13, i64 4
+  %16 = bitcast float* %15 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %16, align 4, !tbaa !17
+  %index.next.prol = add i64 %index.prol, 8
+  %prol.iter88.sub = add i64 %prol.iter88, -1
+  %prol.iter88.cmp = icmp eq i64 %prol.iter88.sub, 0
+  br i1 %prol.iter88.cmp, label %vector.body.prol.loopexit.unr-lcssa, label %vector.body.prol, !llvm.loop !25
+
+vector.body.prol.loopexit.unr-lcssa:              ; preds = %vector.body.prol
+  br label %vector.body.prol.loopexit
+
+vector.body.prol.loopexit:                        ; preds = %vector.body.preheader, %vector.body.prol.loopexit.unr-lcssa
+  %index.unr = phi i64 [ 0, %vector.body.preheader ], [ %index.next.prol, %vector.body.prol.loopexit.unr-lcssa ]
+  %17 = icmp ult i64 %10, 56
+  br i1 %17, label %middle.block, label %vector.body.preheader.new
+
+vector.body.preheader.new:                        ; preds = %vector.body.prol.loopexit
+  br label %vector.body
+
+vector.body:                                      ; preds = %vector.body, %vector.body.preheader.new
+  %index = phi i64 [ %index.unr, %vector.body.preheader.new ], [ %index.next.7, %vector.body ]
+  %18 = getelementptr inbounds float, float* %2, i64 %index
+  %19 = bitcast float* %18 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %19, align 4, !tbaa !17
+  %20 = getelementptr float, float* %18, i64 4
+  %21 = bitcast float* %20 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %21, align 4, !tbaa !17
+  %index.next = add i64 %index, 8
+  %22 = getelementptr inbounds float, float* %2, i64 %index.next
+  %23 = bitcast float* %22 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %23, align 4, !tbaa !17
+  %24 = getelementptr float, float* %22, i64 4
+  %25 = bitcast float* %24 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %25, align 4, !tbaa !17
+  %index.next.1 = add i64 %index, 16
+  %26 = getelementptr inbounds float, float* %2, i64 %index.next.1
+  %27 = bitcast float* %26 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %27, align 4, !tbaa !17
+  %28 = getelementptr float, float* %26, i64 4
+  %29 = bitcast float* %28 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %29, align 4, !tbaa !17
+  %index.next.2 = add i64 %index, 24
+  %30 = getelementptr inbounds float, float* %2, i64 %index.next.2
+  %31 = bitcast float* %30 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %31, align 4, !tbaa !17
+  %32 = getelementptr float, float* %30, i64 4
+  %33 = bitcast float* %32 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %33, align 4, !tbaa !17
+  %index.next.3 = add i64 %index, 32
+  %34 = getelementptr inbounds float, float* %2, i64 %index.next.3
+  %35 = bitcast float* %34 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %35, align 4, !tbaa !17
+  %36 = getelementptr float, float* %34, i64 4
+  %37 = bitcast float* %36 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %37, align 4, !tbaa !17
+  %index.next.4 = add i64 %index, 40
+  %38 = getelementptr inbounds float, float* %2, i64 %index.next.4
+  %39 = bitcast float* %38 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %39, align 4, !tbaa !17
+  %40 = getelementptr float, float* %38, i64 4
+  %41 = bitcast float* %40 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %41, align 4, !tbaa !17
+  %index.next.5 = add i64 %index, 48
+  %42 = getelementptr inbounds float, float* %2, i64 %index.next.5
+  %43 = bitcast float* %42 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %43, align 4, !tbaa !17
+  %44 = getelementptr float, float* %42, i64 4
+  %45 = bitcast float* %44 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %45, align 4, !tbaa !17
+  %index.next.6 = add i64 %index, 56
+  %46 = getelementptr inbounds float, float* %2, i64 %index.next.6
+  %47 = bitcast float* %46 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %47, align 4, !tbaa !17
+  %48 = getelementptr float, float* %46, i64 4
+  %49 = bitcast float* %48 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %49, align 4, !tbaa !17
+  %index.next.7 = add i64 %index, 64
+  %50 = icmp eq i64 %index.next.7, %n.vec
+  br i1 %50, label %middle.block.unr-lcssa, label %vector.body, !llvm.loop !26
+
+middle.block.unr-lcssa:                           ; preds = %vector.body
+  br label %middle.block
+
+middle.block:                                     ; preds = %vector.body.prol.loopexit, %middle.block.unr-lcssa
+  %cmp.n = icmp eq i64 %div35, %n.vec
+  br i1 %cmp.n, label %for.cond.cleanup, label %for.body.preheader85
+
+for.cond.cleanup.loopexit:                        ; preds = %for.body
+  br label %for.cond.cleanup
+
+for.cond.cleanup:                                 ; preds = %for.cond.cleanup.loopexit, %middle.block, %if.then
+  %div.lcssa = phi i64 [ 0, %if.then ], [ %div35, %middle.block ], [ %div35, %for.cond.cleanup.loopexit ]
+  %conv731 = and i64 %div.lcssa, 4294967295
+  %cmp932 = icmp ult i64 %conv731, %4
+  br i1 %cmp932, label %for.body11.lr.ph, label %if.end
+
+for.body11.lr.ph:                                 ; preds = %for.cond.cleanup
+  %conv5 = trunc i64 %div.lcssa to i32
+  %51 = add nuw i64 %div.lcssa, 1
+  %52 = and i64 %51, 4294967295
+  %53 = icmp ugt i64 %4, %52
+  %umax = select i1 %53, i64 %4, i64 %52
+  %54 = add i64 %umax, 1
+  %55 = sub i64 %54, %52
+  %min.iters.check52 = icmp ult i64 %55, 8
+  br i1 %min.iters.check52, label %for.body11.preheader, label %min.iters.checked53
+
+for.body11.preheader:                             ; preds = %middle.block50, %vector.scevcheck65, %min.iters.checked53, %for.body11.lr.ph
+  %conv734.ph = phi i64 [ %conv731, %vector.scevcheck65 ], [ %conv731, %min.iters.checked53 ], [ %conv731, %for.body11.lr.ph ], [ %ind.end70, %middle.block50 ]
+  %i2.033.ph = phi i32 [ %conv5, %vector.scevcheck65 ], [ %conv5, %min.iters.checked53 ], [ %conv5, %for.body11.lr.ph ], [ %ind.end73, %middle.block50 ]
+  br label %for.body11
+
+min.iters.checked53:                              ; preds = %for.body11.lr.ph
+  %n.vec55 = and i64 %55, -8
+  %cmp.zero56 = icmp eq i64 %n.vec55, 0
+  br i1 %cmp.zero56, label %for.body11.preheader, label %vector.scevcheck65
+
+vector.scevcheck65:                               ; preds = %min.iters.checked53
+  %56 = add i32 %conv5, 1
+  %57 = zext i32 %56 to i64
+  %58 = icmp ugt i64 %4, %57
+  %umax58 = select i1 %58, i64 %4, i64 %57
+  %59 = sub i64 %umax58, %57
+  %60 = trunc i64 %59 to i32
+  %61 = add i32 %56, %60
+  %62 = icmp ult i32 %61, %56
+  %63 = icmp ugt i64 %59, 4294967295
+  %64 = or i1 %62, %63
+  %65 = trunc i64 %59 to i32
+  %66 = add i32 %conv5, %65
+  %67 = icmp ult i32 %66, %conv5
+  %68 = icmp ugt i64 %59, 4294967295
+  %69 = or i1 %67, %68
+  %70 = or i1 %64, %69
+  %ind.end70 = add i64 %conv731, %n.vec55
+  %cast.crd72 = trunc i64 %n.vec55 to i32
+  %ind.end73 = add i32 %conv5, %cast.crd72
+  br i1 %70, label %for.body11.preheader, label %vector.body49.preheader
+
+vector.body49.preheader:                          ; preds = %vector.scevcheck65
+  %71 = add i64 %n.vec55, -8
+  %72 = lshr exact i64 %71, 3
+  %73 = add nuw nsw i64 %72, 1
+  %xtraiter = and i64 %73, 3
+  %lcmp.mod = icmp eq i64 %xtraiter, 0
+  br i1 %lcmp.mod, label %vector.body49.prol.loopexit, label %vector.body49.prol.preheader
+
+vector.body49.prol.preheader:                     ; preds = %vector.body49.preheader
+  br label %vector.body49.prol
+
+vector.body49.prol:                               ; preds = %vector.body49.prol, %vector.body49.prol.preheader
+  %index67.prol = phi i64 [ %index.next68.prol, %vector.body49.prol ], [ 0, %vector.body49.prol.preheader ]
+  %prol.iter = phi i64 [ %prol.iter.sub, %vector.body49.prol ], [ %xtraiter, %vector.body49.prol.preheader ]
+  %74 = add i64 %conv731, %index67.prol
+  %75 = getelementptr inbounds float, float* %2, i64 %74
+  %76 = bitcast float* %75 to <4 x float>*
+  store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %76, align 4, !tbaa !17
+  %77 = getelementptr float, float* %75, i64 4
+  %78 = bitcast float* %77 to <4 x float>*
+  store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %78, align 4, !tbaa !17
+  %index.next68.prol = add i64 %index67.prol, 8
+  %prol.iter.sub = add i64 %prol.iter, -1
+  %prol.iter.cmp = icmp eq i64 %prol.iter.sub, 0
+  br i1 %prol.iter.cmp, label %vector.body49.prol.loopexit.unr-lcssa, label %vector.body49.prol, !llvm.loop !27
+
+vector.body49.prol.loopexit.unr-lcssa:            ; preds = %vector.body49.prol
+  br label %vector.body49.prol.loopexit
+
+vector.body49.prol.loopexit:                      ; preds = %vector.body49.preheader, %vector.body49.prol.loopexit.unr-lcssa
+  %index67.unr = phi i64 [ 0, %vector.body49.preheader ], [ %index.next68.prol, %vector.body49.prol.loopexit.unr-lcssa ]
+  %79 = icmp ult i64 %71, 24
+  br i1 %79, label %middle.block50, label %vector.body49.preheader.new
+
+vector.body49.preheader.new:                      ; preds = %vector.body49.prol.loopexit
+  br label %vector.body49
+
+vector.body49:                                    ; preds = %vector.body49, %vector.body49.preheader.new
+  %index67 = phi i64 [ %index67.unr, %vector.body49.preheader.new ], [ %index.next68.3, %vector.body49 ]
+  %80 = add i64 %conv731, %index67
+  %81 = getelementptr inbounds float, float* %2, i64 %80
+  %82 = bitcast float* %81 to <4 x float>*
+  store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %82, align 4, !tbaa !17
+  %83 = getelementptr float, float* %81, i64 4
+  %84 = bitcast float* %83 to <4 x float>*
+  store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %84, align 4, !tbaa !17
+  %index.next68 = add i64 %index67, 8
+  %85 = add i64 %conv731, %index.next68
+  %86 = getelementptr inbounds float, float* %2, i64 %85
+  %87 = bitcast float* %86 to <4 x float>*
+  store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %87, align 4, !tbaa !17
+  %88 = getelementptr float, float* %86, i64 4
+  %89 = bitcast float* %88 to <4 x float>*
+  store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %89, align 4, !tbaa !17
+  %index.next68.1 = add i64 %index67, 16
+  %90 = add i64 %conv731, %index.next68.1
+  %91 = getelementptr inbounds float, float* %2, i64 %90
+  %92 = bitcast float* %91 to <4 x float>*
+  store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %92, align 4, !tbaa !17
+  %93 = getelementptr float, float* %91, i64 4
+  %94 = bitcast float* %93 to <4 x float>*
+  store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %94, align 4, !tbaa !17
+  %index.next68.2 = add i64 %index67, 24
+  %95 = add i64 %conv731, %index.next68.2
+  %96 = getelementptr inbounds float, float* %2, i64 %95
+  %97 = bitcast float* %96 to <4 x float>*
+  store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %97, align 4, !tbaa !17
+  %98 = getelementptr float, float* %96, i64 4
+  %99 = bitcast float* %98 to <4 x float>*
+  store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %99, align 4, !tbaa !17
+  %index.next68.3 = add i64 %index67, 32
+  %100 = icmp eq i64 %index.next68.3, %n.vec55
+  br i1 %100, label %middle.block50.unr-lcssa, label %vector.body49, !llvm.loop !28
+
+middle.block50.unr-lcssa:                         ; preds = %vector.body49
+  br label %middle.block50
+
+middle.block50:                                   ; preds = %vector.body49.prol.loopexit, %middle.block50.unr-lcssa
+  %cmp.n74 = icmp eq i64 %55, %n.vec55
+  br i1 %cmp.n74, label %if.end, label %for.body11.preheader
+
+for.body:                                         ; preds = %for.body.preheader85, %for.body
+  %conv38 = phi i64 [ %conv, %for.body ], [ %conv38.ph, %for.body.preheader85 ]
+  %i.037 = phi i32 [ %inc, %for.body ], [ %i.037.ph, %for.body.preheader85 ]
+  %arrayidx = getelementptr inbounds float, float* %2, i64 %conv38
+  store float 1.000000e+00, float* %arrayidx, align 4, !tbaa !17
+  %inc = add i32 %i.037, 1
+  %conv = zext i32 %inc to i64
+  %cmp1 = icmp ult i64 %conv, %div35
+  br i1 %cmp1, label %for.body, label %for.cond.cleanup.loopexit, !llvm.loop !29
+
+for.body11:                                       ; preds = %for.body11.preheader, %for.body11
+  %conv734 = phi i64 [ %conv7, %for.body11 ], [ %conv734.ph, %for.body11.preheader ]
+  %i2.033 = phi i32 [ %inc15, %for.body11 ], [ %i2.033.ph, %for.body11.preheader ]
+  %arrayidx13 = getelementptr inbounds float, float* %2, i64 %conv734
+  store float 2.000000e+00, float* %arrayidx13, align 4, !tbaa !17
+  %inc15 = add i32 %i2.033, 1
+  %conv7 = zext i32 %inc15 to i64
+  %cmp9 = icmp ult i64 %conv7, %4
+  br i1 %cmp9, label %for.body11, label %if.end.loopexit, !llvm.loop !30
+
+if.end.loopexit:                                  ; preds = %for.body11
+  br label %if.end
+
+if.end:                                           ; preds = %if.end.loopexit, %middle.block50, %for.cond.cleanup, %entry
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z21fillTensorWithNegOnesPv(i8* %tensor_ptr) local_unnamed_addr #0 {
+entry:
+  tail call void @hpvm_request_tensor(i8* %tensor_ptr, i32 0) #7
+  %data_type = bitcast i8* %tensor_ptr to i32*
+  %0 = load i32, i32* %data_type, align 8, !tbaa !16
+  %cmp = icmp eq i32 %0, 0
+  br i1 %cmp, label %if.then, label %if.end
+
+if.then:                                          ; preds = %entry
+  %host_data = getelementptr inbounds i8, i8* %tensor_ptr, i64 32
+  %1 = bitcast i8* %host_data to float**
+  %2 = load float*, float** %1, align 8, !tbaa !15
+  %num_elems = getelementptr inbounds i8, i8* %tensor_ptr, i64 48
+  %3 = bitcast i8* %num_elems to i64*
+  %4 = load i64, i64* %3, align 8, !tbaa !13
+  %cmp110 = icmp eq i64 %4, 0
+  br i1 %cmp110, label %if.end, label %for.body.preheader
+
+for.body.preheader:                               ; preds = %if.then
+  %min.iters.check = icmp ult i64 %4, 8
+  br i1 %min.iters.check, label %for.body.preheader22, label %min.iters.checked
+
+min.iters.checked:                                ; preds = %for.body.preheader
+  %n.vec = and i64 %4, -8
+  %cmp.zero = icmp eq i64 %n.vec, 0
+  br i1 %cmp.zero, label %for.body.preheader22, label %vector.scevcheck
+
+vector.scevcheck:                                 ; preds = %min.iters.checked
+  %5 = add i64 %4, -1
+  %6 = trunc i64 %5 to i32
+  %7 = icmp eq i32 %6, -1
+  %8 = icmp ugt i64 %5, 4294967295
+  %9 = or i1 %7, %8
+  %cast.crd = trunc i64 %n.vec to i32
+  br i1 %9, label %for.body.preheader22, label %vector.body.preheader
+
+vector.body.preheader:                            ; preds = %vector.scevcheck
+  %10 = add i64 %n.vec, -8
+  %11 = lshr exact i64 %10, 3
+  %12 = add nuw nsw i64 %11, 1
+  %xtraiter = and i64 %12, 7
+  %lcmp.mod = icmp eq i64 %xtraiter, 0
+  br i1 %lcmp.mod, label %vector.body.prol.loopexit, label %vector.body.prol.preheader
+
+vector.body.prol.preheader:                       ; preds = %vector.body.preheader
+  br label %vector.body.prol
+
+vector.body.prol:                                 ; preds = %vector.body.prol, %vector.body.prol.preheader
+  %index.prol = phi i64 [ %index.next.prol, %vector.body.prol ], [ 0, %vector.body.prol.preheader ]
+  %prol.iter = phi i64 [ %prol.iter.sub, %vector.body.prol ], [ %xtraiter, %vector.body.prol.preheader ]
+  %13 = getelementptr inbounds float, float* %2, i64 %index.prol
+  %14 = bitcast float* %13 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %14, align 4, !tbaa !17
+  %15 = getelementptr float, float* %13, i64 4
+  %16 = bitcast float* %15 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %16, align 4, !tbaa !17
+  %index.next.prol = add i64 %index.prol, 8
+  %prol.iter.sub = add i64 %prol.iter, -1
+  %prol.iter.cmp = icmp eq i64 %prol.iter.sub, 0
+  br i1 %prol.iter.cmp, label %vector.body.prol.loopexit.unr-lcssa, label %vector.body.prol, !llvm.loop !31
+
+vector.body.prol.loopexit.unr-lcssa:              ; preds = %vector.body.prol
+  br label %vector.body.prol.loopexit
+
+vector.body.prol.loopexit:                        ; preds = %vector.body.preheader, %vector.body.prol.loopexit.unr-lcssa
+  %index.unr = phi i64 [ 0, %vector.body.preheader ], [ %index.next.prol, %vector.body.prol.loopexit.unr-lcssa ]
+  %17 = icmp ult i64 %10, 56
+  br i1 %17, label %middle.block, label %vector.body.preheader.new
+
+vector.body.preheader.new:                        ; preds = %vector.body.prol.loopexit
+  br label %vector.body
+
+vector.body:                                      ; preds = %vector.body, %vector.body.preheader.new
+  %index = phi i64 [ %index.unr, %vector.body.preheader.new ], [ %index.next.7, %vector.body ]
+  %18 = getelementptr inbounds float, float* %2, i64 %index
+  %19 = bitcast float* %18 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %19, align 4, !tbaa !17
+  %20 = getelementptr float, float* %18, i64 4
+  %21 = bitcast float* %20 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %21, align 4, !tbaa !17
+  %index.next = add i64 %index, 8
+  %22 = getelementptr inbounds float, float* %2, i64 %index.next
+  %23 = bitcast float* %22 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %23, align 4, !tbaa !17
+  %24 = getelementptr float, float* %22, i64 4
+  %25 = bitcast float* %24 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %25, align 4, !tbaa !17
+  %index.next.1 = add i64 %index, 16
+  %26 = getelementptr inbounds float, float* %2, i64 %index.next.1
+  %27 = bitcast float* %26 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %27, align 4, !tbaa !17
+  %28 = getelementptr float, float* %26, i64 4
+  %29 = bitcast float* %28 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %29, align 4, !tbaa !17
+  %index.next.2 = add i64 %index, 24
+  %30 = getelementptr inbounds float, float* %2, i64 %index.next.2
+  %31 = bitcast float* %30 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %31, align 4, !tbaa !17
+  %32 = getelementptr float, float* %30, i64 4
+  %33 = bitcast float* %32 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %33, align 4, !tbaa !17
+  %index.next.3 = add i64 %index, 32
+  %34 = getelementptr inbounds float, float* %2, i64 %index.next.3
+  %35 = bitcast float* %34 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %35, align 4, !tbaa !17
+  %36 = getelementptr float, float* %34, i64 4
+  %37 = bitcast float* %36 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %37, align 4, !tbaa !17
+  %index.next.4 = add i64 %index, 40
+  %38 = getelementptr inbounds float, float* %2, i64 %index.next.4
+  %39 = bitcast float* %38 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %39, align 4, !tbaa !17
+  %40 = getelementptr float, float* %38, i64 4
+  %41 = bitcast float* %40 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %41, align 4, !tbaa !17
+  %index.next.5 = add i64 %index, 48
+  %42 = getelementptr inbounds float, float* %2, i64 %index.next.5
+  %43 = bitcast float* %42 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %43, align 4, !tbaa !17
+  %44 = getelementptr float, float* %42, i64 4
+  %45 = bitcast float* %44 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %45, align 4, !tbaa !17
+  %index.next.6 = add i64 %index, 56
+  %46 = getelementptr inbounds float, float* %2, i64 %index.next.6
+  %47 = bitcast float* %46 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %47, align 4, !tbaa !17
+  %48 = getelementptr float, float* %46, i64 4
+  %49 = bitcast float* %48 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %49, align 4, !tbaa !17
+  %index.next.7 = add i64 %index, 64
+  %50 = icmp eq i64 %index.next.7, %n.vec
+  br i1 %50, label %middle.block.unr-lcssa, label %vector.body, !llvm.loop !32
+
+middle.block.unr-lcssa:                           ; preds = %vector.body
+  br label %middle.block
+
+middle.block:                                     ; preds = %vector.body.prol.loopexit, %middle.block.unr-lcssa
+  %cmp.n = icmp eq i64 %4, %n.vec
+  br i1 %cmp.n, label %if.end, label %for.body.preheader22
+
+for.body.preheader22:                             ; preds = %middle.block, %vector.scevcheck, %min.iters.checked, %for.body.preheader
+  %conv12.ph = phi i64 [ 0, %vector.scevcheck ], [ 0, %min.iters.checked ], [ 0, %for.body.preheader ], [ %n.vec, %middle.block ]
+  %i.011.ph = phi i32 [ 0, %vector.scevcheck ], [ 0, %min.iters.checked ], [ 0, %for.body.preheader ], [ %cast.crd, %middle.block ]
+  br label %for.body
+
+for.body:                                         ; preds = %for.body.preheader22, %for.body
+  %conv12 = phi i64 [ %conv, %for.body ], [ %conv12.ph, %for.body.preheader22 ]
+  %i.011 = phi i32 [ %inc, %for.body ], [ %i.011.ph, %for.body.preheader22 ]
+  %arrayidx = getelementptr inbounds float, float* %2, i64 %conv12
+  store float -1.000000e+00, float* %arrayidx, align 4, !tbaa !17
+  %inc = add i32 %i.011, 1
+  %conv = zext i32 %inc to i64
+  %cmp1 = icmp ult i64 %conv, %4
+  br i1 %cmp1, label %for.body, label %if.end.loopexit, !llvm.loop !33
+
+if.end.loopexit:                                  ; preds = %for.body
+  br label %if.end
+
+if.end:                                           ; preds = %if.end.loopexit, %middle.block, %if.then, %entry
+  ret void
+}
+
+; Function Attrs: norecurse nounwind uwtable
+define void @_Z14fillTensorValsPv(i8* nocapture readonly %tensor_ptr) local_unnamed_addr #5 {
+entry:
+  %data_type = bitcast i8* %tensor_ptr to i32*
+  %0 = load i32, i32* %data_type, align 8, !tbaa !16
+  %cmp = icmp eq i32 %0, 0
+  br i1 %cmp, label %if.then, label %if.end
+
+if.then:                                          ; preds = %entry
+  %host_data = getelementptr inbounds i8, i8* %tensor_ptr, i64 32
+  %1 = bitcast i8* %host_data to float**
+  %2 = load float*, float** %1, align 8, !tbaa !15
+  %num_elems = getelementptr inbounds i8, i8* %tensor_ptr, i64 48
+  %3 = bitcast i8* %num_elems to i64*
+  %4 = load i64, i64* %3, align 8, !tbaa !13
+  %cmp111 = icmp eq i64 %4, 0
+  br i1 %cmp111, label %if.end, label %for.body.preheader
+
+for.body.preheader:                               ; preds = %if.then
+  %min.iters.check = icmp ult i64 %4, 8
+  br i1 %min.iters.check, label %for.body.preheader23, label %min.iters.checked
+
+min.iters.checked:                                ; preds = %for.body.preheader
+  %n.vec = and i64 %4, -8
+  %cmp.zero = icmp eq i64 %n.vec, 0
+  br i1 %cmp.zero, label %for.body.preheader23, label %vector.scevcheck
+
+vector.scevcheck:                                 ; preds = %min.iters.checked
+  %5 = add i64 %4, -1
+  %6 = trunc i64 %5 to i32
+  %7 = icmp eq i32 %6, -1
+  %8 = icmp ugt i64 %5, 4294967295
+  %9 = or i1 %7, %8
+  %cast.crd = trunc i64 %n.vec to i32
+  br i1 %9, label %for.body.preheader23, label %vector.body.preheader
+
+vector.body.preheader:                            ; preds = %vector.scevcheck
+  %10 = add i64 %n.vec, -8
+  %11 = lshr exact i64 %10, 3
+  %12 = and i64 %11, 1
+  %lcmp.mod = icmp eq i64 %12, 0
+  br i1 %lcmp.mod, label %vector.body.prol.preheader, label %vector.body.prol.loopexit
+
+vector.body.prol.preheader:                       ; preds = %vector.body.preheader
+  br label %vector.body.prol
+
+vector.body.prol:                                 ; preds = %vector.body.prol.preheader
+  %13 = bitcast float* %2 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 2.000000e+00, float 3.000000e+00, float 4.000000e+00>, <4 x float>* %13, align 4, !tbaa !17
+  %14 = getelementptr float, float* %2, i64 4
+  %15 = bitcast float* %14 to <4 x float>*
+  store <4 x float> <float 5.000000e+00, float 6.000000e+00, float 7.000000e+00, float 8.000000e+00>, <4 x float>* %15, align 4, !tbaa !17
+  br label %vector.body.prol.loopexit
+
+vector.body.prol.loopexit:                        ; preds = %vector.body.prol, %vector.body.preheader
+  %index.unr = phi i64 [ 0, %vector.body.preheader ], [ 8, %vector.body.prol ]
+  %16 = icmp eq i64 %11, 0
+  br i1 %16, label %middle.block, label %vector.body.preheader.new
+
+vector.body.preheader.new:                        ; preds = %vector.body.prol.loopexit
+  br label %vector.body
+
+vector.body:                                      ; preds = %vector.body, %vector.body.preheader.new
+  %index = phi i64 [ %index.unr, %vector.body.preheader.new ], [ %index.next.1, %vector.body ]
+  %17 = trunc i64 %index to i32
+  %broadcast.splatinsert19 = insertelement <4 x i32> undef, i32 %17, i32 0
+  %broadcast.splat20 = shufflevector <4 x i32> %broadcast.splatinsert19, <4 x i32> undef, <4 x i32> zeroinitializer
+  %18 = add <4 x i32> %broadcast.splat20, <i32 1, i32 2, i32 3, i32 4>
+  %19 = add <4 x i32> %broadcast.splat20, <i32 5, i32 6, i32 7, i32 8>
+  %20 = uitofp <4 x i32> %18 to <4 x float>
+  %21 = uitofp <4 x i32> %19 to <4 x float>
+  %22 = getelementptr inbounds float, float* %2, i64 %index
+  %23 = bitcast float* %22 to <4 x float>*
+  store <4 x float> %20, <4 x float>* %23, align 4, !tbaa !17
+  %24 = getelementptr float, float* %22, i64 4
+  %25 = bitcast float* %24 to <4 x float>*
+  store <4 x float> %21, <4 x float>* %25, align 4, !tbaa !17
+  %index.next = add i64 %index, 8
+  %26 = trunc i64 %index.next to i32
+  %broadcast.splatinsert19.1 = insertelement <4 x i32> undef, i32 %26, i32 0
+  %broadcast.splat20.1 = shufflevector <4 x i32> %broadcast.splatinsert19.1, <4 x i32> undef, <4 x i32> zeroinitializer
+  %27 = add <4 x i32> %broadcast.splat20.1, <i32 1, i32 2, i32 3, i32 4>
+  %28 = add <4 x i32> %broadcast.splat20.1, <i32 5, i32 6, i32 7, i32 8>
+  %29 = uitofp <4 x i32> %27 to <4 x float>
+  %30 = uitofp <4 x i32> %28 to <4 x float>
+  %31 = getelementptr inbounds float, float* %2, i64 %index.next
+  %32 = bitcast float* %31 to <4 x float>*
+  store <4 x float> %29, <4 x float>* %32, align 4, !tbaa !17
+  %33 = getelementptr float, float* %31, i64 4
+  %34 = bitcast float* %33 to <4 x float>*
+  store <4 x float> %30, <4 x float>* %34, align 4, !tbaa !17
+  %index.next.1 = add i64 %index, 16
+  %35 = icmp eq i64 %index.next.1, %n.vec
+  br i1 %35, label %middle.block.unr-lcssa, label %vector.body, !llvm.loop !34
+
+middle.block.unr-lcssa:                           ; preds = %vector.body
+  br label %middle.block
+
+middle.block:                                     ; preds = %vector.body.prol.loopexit, %middle.block.unr-lcssa
+  %cmp.n = icmp eq i64 %4, %n.vec
+  br i1 %cmp.n, label %if.end, label %for.body.preheader23
+
+for.body.preheader23:                             ; preds = %middle.block, %vector.scevcheck, %min.iters.checked, %for.body.preheader
+  %conv13.ph = phi i64 [ 0, %vector.scevcheck ], [ 0, %min.iters.checked ], [ 0, %for.body.preheader ], [ %n.vec, %middle.block ]
+  %i.012.ph = phi i32 [ 0, %vector.scevcheck ], [ 0, %min.iters.checked ], [ 0, %for.body.preheader ], [ %cast.crd, %middle.block ]
+  br label %for.body
+
+for.body:                                         ; preds = %for.body.preheader23, %for.body
+  %conv13 = phi i64 [ %conv, %for.body ], [ %conv13.ph, %for.body.preheader23 ]
+  %i.012 = phi i32 [ %add, %for.body ], [ %i.012.ph, %for.body.preheader23 ]
+  %add = add i32 %i.012, 1
+  %conv2 = uitofp i32 %add to float
+  %arrayidx = getelementptr inbounds float, float* %2, i64 %conv13
+  store float %conv2, float* %arrayidx, align 4, !tbaa !17
+  %conv = zext i32 %add to i64
+  %cmp1 = icmp ult i64 %conv, %4
+  br i1 %cmp1, label %for.body, label %if.end.loopexit, !llvm.loop !35
+
+if.end.loopexit:                                  ; preds = %for.body
+  br label %if.end
+
+if.end:                                           ; preds = %if.end.loopexit, %middle.block, %if.then, %entry
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z17printTensorValuesPv(i8* %tensor_ptr) local_unnamed_addr #0 {
+entry:
+  tail call void @hpvm_request_tensor(i8* %tensor_ptr, i32 0) #7
+  %data_type = bitcast i8* %tensor_ptr to i32*
+  %0 = load i32, i32* %data_type, align 8, !tbaa !16
+  %cmp = icmp eq i32 %0, 0
+  br i1 %cmp, label %if.then, label %if.end
+
+if.then:                                          ; preds = %entry
+  %host_data = getelementptr inbounds i8, i8* %tensor_ptr, i64 32
+  %1 = bitcast i8* %host_data to float**
+  %2 = load float*, float** %1, align 8, !tbaa !15
+  %num_elems = getelementptr inbounds i8, i8* %tensor_ptr, i64 48
+  %3 = bitcast i8* %num_elems to i64*
+  %4 = load i64, i64* %3, align 8, !tbaa !13
+  %cmp112 = icmp eq i64 %4, 0
+  br i1 %cmp112, label %if.end, label %for.body.preheader
+
+for.body.preheader:                               ; preds = %if.then
+  br label %for.body
+
+for.body:                                         ; preds = %for.body.preheader, %for.body
+  %conv14 = phi i64 [ %conv, %for.body ], [ 0, %for.body.preheader ]
+  %i.013 = phi i32 [ %inc, %for.body ], [ 0, %for.body.preheader ]
+  %arrayidx = getelementptr inbounds float, float* %2, i64 %conv14
+  %5 = load float, float* %arrayidx, align 4, !tbaa !17
+  %conv2 = fpext float %5 to double
+  %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.9, i64 0, i64 0), double %conv2)
+  %inc = add i32 %i.013, 1
+  %conv = zext i32 %inc to i64
+  %6 = load i64, i64* %3, align 8, !tbaa !13
+  %cmp1 = icmp ult i64 %conv, %6
+  br i1 %cmp1, label %for.body, label %if.end.loopexit
+
+if.end.loopexit:                                  ; preds = %for.body
+  br label %if.end
+
+if.end:                                           ; preds = %if.end.loopexit, %if.then, %entry
+  %putchar = tail call i32 @putchar(i32 10) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z15printTensorDimsPv(i8* nocapture readonly %tensor_ptr) local_unnamed_addr #0 {
+entry:
+  %num_elems = getelementptr inbounds i8, i8* %tensor_ptr, i64 48
+  %0 = bitcast i8* %num_elems to i64*
+  %1 = load i64, i64* %0, align 8, !tbaa !13
+  %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.11, i64 0, i64 0), i64 %1)
+  %dims = getelementptr inbounds i8, i8* %tensor_ptr, i64 64
+  %num_dims = bitcast i8* %dims to i32*
+  %2 = load i32, i32* %num_dims, align 8, !tbaa !10
+  %cmp10 = icmp sgt i32 %2, 0
+  br i1 %cmp10, label %for.body.lr.ph, label %for.cond.cleanup
+
+for.body.lr.ph:                                   ; preds = %entry
+  %dim_sizes = getelementptr inbounds i8, i8* %tensor_ptr, i64 72
+  %3 = bitcast i8* %dim_sizes to i64**
+  br label %for.body
+
+for.cond.cleanup.loopexit:                        ; preds = %for.body
+  br label %for.cond.cleanup
+
+for.cond.cleanup:                                 ; preds = %for.cond.cleanup.loopexit, %entry
+  ret void
+
+for.body:                                         ; preds = %for.body.lr.ph, %for.body
+  %indvars.iv = phi i64 [ 0, %for.body.lr.ph ], [ %indvars.iv.next, %for.body ]
+  %4 = load i64*, i64** %3, align 8, !tbaa !11
+  %arrayidx = getelementptr inbounds i64, i64* %4, i64 %indvars.iv
+  %5 = load i64, i64* %arrayidx, align 8, !tbaa !12
+  %6 = trunc i64 %indvars.iv to i32
+  %call2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.12, i64 0, i64 0), i32 %6, i64 %5)
+  %indvars.iv.next = add nuw i64 %indvars.iv, 1
+  %7 = load i32, i32* %num_dims, align 8, !tbaa !10
+  %8 = sext i32 %7 to i64
+  %cmp = icmp slt i64 %indvars.iv.next, %8
+  br i1 %cmp, label %for.body, label %for.cond.cleanup.loopexit
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z14compareTensorsPvS_(i8* %tensor1_ptr, i8* %tensor2_ptr) local_unnamed_addr #0 {
+entry:
+  tail call void @hpvm_request_tensor(i8* %tensor1_ptr, i32 0) #7
+  tail call void @hpvm_request_tensor(i8* %tensor2_ptr, i32 0) #7
+  %host_data = getelementptr inbounds i8, i8* %tensor1_ptr, i64 32
+  %0 = bitcast i8* %host_data to float**
+  %1 = load float*, float** %0, align 8, !tbaa !15
+  %host_data1 = getelementptr inbounds i8, i8* %tensor2_ptr, i64 32
+  %2 = bitcast i8* %host_data1 to float**
+  %3 = load float*, float** %2, align 8, !tbaa !15
+  %num_elems = getelementptr inbounds i8, i8* %tensor1_ptr, i64 48
+  %4 = bitcast i8* %num_elems to i64*
+  %5 = load i64, i64* %4, align 8, !tbaa !13
+  %cmp17 = icmp eq i64 %5, 0
+  br i1 %cmp17, label %for.cond.cleanup, label %for.body.preheader
+
+for.body.preheader:                               ; preds = %entry
+  br label %for.body
+
+for.cond.cleanup.loopexit:                        ; preds = %for.inc
+  br label %for.cond.cleanup
+
+for.cond.cleanup:                                 ; preds = %for.cond.cleanup.loopexit, %entry
+  ret void
+
+for.body:                                         ; preds = %for.body.preheader, %for.inc
+  %conv19 = phi i64 [ %conv, %for.inc ], [ 0, %for.body.preheader ]
+  %i.018 = phi i32 [ %inc, %for.inc ], [ 0, %for.body.preheader ]
+  %arrayidx = getelementptr inbounds float, float* %1, i64 %conv19
+  %6 = load float, float* %arrayidx, align 4, !tbaa !17
+  %arrayidx3 = getelementptr inbounds float, float* %3, i64 %conv19
+  %7 = load float, float* %arrayidx3, align 4, !tbaa !17
+  %cmp4 = fcmp fast une float %6, %7
+  br i1 %cmp4, label %if.then, label %for.inc
+
+if.then:                                          ; preds = %for.body
+  %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.13, i64 0, i64 0), i32 %i.018)
+  tail call void @abort() #8
+  unreachable
+
+for.inc:                                          ; preds = %for.body
+  %inc = add i32 %i.018, 1
+  %conv = zext i32 %inc to i64
+  %cmp = icmp ult i64 %conv, %5
+  br i1 %cmp, label %for.body, label %for.cond.cleanup.loopexit
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z13compareValuesPvPfm(i8* %tensor_ptr, float* nocapture readonly %data, i64 %num_elems) local_unnamed_addr #0 {
+entry:
+  tail call void @hpvm_request_tensor(i8* %tensor_ptr, i32 0) #7
+  %host_data = getelementptr inbounds i8, i8* %tensor_ptr, i64 32
+  %0 = bitcast i8* %host_data to float**
+  %1 = load float*, float** %0, align 8, !tbaa !15
+  %cmp11 = icmp eq i64 %num_elems, 0
+  br i1 %cmp11, label %for.cond.cleanup, label %for.body.preheader
+
+for.body.preheader:                               ; preds = %entry
+  br label %for.body
+
+for.cond:                                         ; preds = %for.body
+  %conv = zext i32 %inc to i64
+  %cmp = icmp ult i64 %conv, %num_elems
+  br i1 %cmp, label %for.body, label %for.cond.cleanup.loopexit
+
+for.cond.cleanup.loopexit:                        ; preds = %for.cond
+  br label %for.cond.cleanup
+
+for.cond.cleanup:                                 ; preds = %for.cond.cleanup.loopexit, %entry
+  ret void
+
+for.body:                                         ; preds = %for.body.preheader, %for.cond
+  %conv13 = phi i64 [ %conv, %for.cond ], [ 0, %for.body.preheader ]
+  %i.012 = phi i32 [ %inc, %for.cond ], [ 0, %for.body.preheader ]
+  %arrayidx = getelementptr inbounds float, float* %1, i64 %conv13
+  %2 = load float, float* %arrayidx, align 4, !tbaa !17
+  %arrayidx2 = getelementptr inbounds float, float* %data, i64 %conv13
+  %3 = load float, float* %arrayidx2, align 4, !tbaa !17
+  %cmp3 = fcmp fast une float %2, %3
+  %inc = add i32 %i.012, 1
+  br i1 %cmp3, label %if.then, label %for.cond
+
+if.then:                                          ; preds = %for.body
+  %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.14, i64 0, i64 0))
+  tail call void @abort() #8
+  unreachable
+}
+
+; Function Attrs: nounwind uwtable
+define i8* @_Z15readInputTensorPKciiiii(i8* %file_name, i32 %data_type, i32 %dim1_size, i32 %dim2_size, i32 %dim3_size, i32 %dim4_size) local_unnamed_addr #0 {
+entry:
+  %mul = mul nsw i32 %dim2_size, %dim1_size
+  %mul1 = mul nsw i32 %mul, %dim3_size
+  %mul2 = mul nsw i32 %mul1, %dim4_size
+  %mul3 = shl i32 %dim1_size, 2
+  %mul4 = mul nsw i32 %mul3, %dim2_size
+  %mul5 = mul nsw i32 %mul4, %dim3_size
+  %mul6 = mul nsw i32 %mul5, %dim4_size
+  %conv = sext i32 %mul2 to i64
+  %call = tail call noalias i8* @malloc(i64 %conv) #7
+  %mul9 = shl nsw i64 %conv, 2
+  %call10 = tail call noalias i8* @malloc(i64 %mul9) #7
+  %0 = bitcast i8* %call10 to float*
+  %call11 = tail call %struct._IO_FILE* @fopen(i8* %file_name, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0))
+  %cmp = icmp eq %struct._IO_FILE* %call11, null
+  br i1 %cmp, label %if.then, label %if.end
+
+if.then:                                          ; preds = %entry
+  %call12 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.16, i64 0, i64 0), i8* %file_name)
+  tail call void @abort() #8
+  unreachable
+
+if.end:                                           ; preds = %entry
+  %call14 = tail call i32 @fseek(%struct._IO_FILE* nonnull %call11, i64 16, i32 1)
+  %call17 = tail call i64 @fread(i8* %call, i64 1, i64 %conv, %struct._IO_FILE* nonnull %call11)
+  %cmp1962 = icmp eq i32 %mul2, 0
+  br i1 %cmp1962, label %for.cond.cleanup, label %for.body.preheader
+
+for.body.preheader:                               ; preds = %if.end
+  %1 = icmp ugt i64 %conv, 1
+  %umax = select i1 %1, i64 %conv, i64 1
+  %min.iters.check = icmp ult i64 %umax, 8
+  br i1 %min.iters.check, label %for.body.preheader68, label %min.iters.checked
+
+for.body.preheader68:                             ; preds = %middle.block, %min.iters.checked, %for.body.preheader
+  %i.063.ph = phi i64 [ 0, %min.iters.checked ], [ 0, %for.body.preheader ], [ %n.vec, %middle.block ]
+  br label %for.body
+
+min.iters.checked:                                ; preds = %for.body.preheader
+  %n.vec = and i64 %umax, -8
+  %cmp.zero = icmp eq i64 %n.vec, 0
+  br i1 %cmp.zero, label %for.body.preheader68, label %vector.body.preheader
+
+vector.body.preheader:                            ; preds = %min.iters.checked
+  %2 = add nsw i64 %n.vec, -8
+  %3 = lshr exact i64 %2, 3
+  %4 = and i64 %3, 1
+  %lcmp.mod = icmp eq i64 %4, 0
+  br i1 %lcmp.mod, label %vector.body.prol.preheader, label %vector.body.prol.loopexit
+
+vector.body.prol.preheader:                       ; preds = %vector.body.preheader
+  br label %vector.body.prol
+
+vector.body.prol:                                 ; preds = %vector.body.prol.preheader
+  %5 = bitcast i8* %call to <4 x i8>*
+  %wide.load.prol = load <4 x i8>, <4 x i8>* %5, align 1, !tbaa !36
+  %6 = getelementptr i8, i8* %call, i64 4
+  %7 = bitcast i8* %6 to <4 x i8>*
+  %wide.load67.prol = load <4 x i8>, <4 x i8>* %7, align 1, !tbaa !36
+  %8 = uitofp <4 x i8> %wide.load.prol to <4 x float>
+  %9 = uitofp <4 x i8> %wide.load67.prol to <4 x float>
+  %10 = fmul fast <4 x float> %8, <float 0x3F70101020000000, float 0x3F70101020000000, float 0x3F70101020000000, float 0x3F70101020000000>
+  %11 = fmul fast <4 x float> %9, <float 0x3F70101020000000, float 0x3F70101020000000, float 0x3F70101020000000, float 0x3F70101020000000>
+  %12 = bitcast i8* %call10 to <4 x float>*
+  store <4 x float> %10, <4 x float>* %12, align 4, !tbaa !17
+  %13 = getelementptr i8, i8* %call10, i64 16
+  %14 = bitcast i8* %13 to <4 x float>*
+  store <4 x float> %11, <4 x float>* %14, align 4, !tbaa !17
+  br label %vector.body.prol.loopexit
+
+vector.body.prol.loopexit:                        ; preds = %vector.body.prol, %vector.body.preheader
+  %index.unr = phi i64 [ 0, %vector.body.preheader ], [ 8, %vector.body.prol ]
+  %15 = icmp eq i64 %3, 0
+  br i1 %15, label %middle.block, label %vector.body.preheader.new
+
+vector.body.preheader.new:                        ; preds = %vector.body.prol.loopexit
+  br label %vector.body
+
+vector.body:                                      ; preds = %vector.body, %vector.body.preheader.new
+  %index = phi i64 [ %index.unr, %vector.body.preheader.new ], [ %index.next.1, %vector.body ]
+  %16 = getelementptr inbounds i8, i8* %call, i64 %index
+  %17 = bitcast i8* %16 to <4 x i8>*
+  %wide.load = load <4 x i8>, <4 x i8>* %17, align 1, !tbaa !36
+  %18 = getelementptr i8, i8* %16, i64 4
+  %19 = bitcast i8* %18 to <4 x i8>*
+  %wide.load67 = load <4 x i8>, <4 x i8>* %19, align 1, !tbaa !36
+  %20 = uitofp <4 x i8> %wide.load to <4 x float>
+  %21 = uitofp <4 x i8> %wide.load67 to <4 x float>
+  %22 = fmul fast <4 x float> %20, <float 0x3F70101020000000, float 0x3F70101020000000, float 0x3F70101020000000, float 0x3F70101020000000>
+  %23 = fmul fast <4 x float> %21, <float 0x3F70101020000000, float 0x3F70101020000000, float 0x3F70101020000000, float 0x3F70101020000000>
+  %24 = getelementptr inbounds float, float* %0, i64 %index
+  %25 = bitcast float* %24 to <4 x float>*
+  store <4 x float> %22, <4 x float>* %25, align 4, !tbaa !17
+  %26 = getelementptr float, float* %24, i64 4
+  %27 = bitcast float* %26 to <4 x float>*
+  store <4 x float> %23, <4 x float>* %27, align 4, !tbaa !17
+  %index.next = add i64 %index, 8
+  %28 = getelementptr inbounds i8, i8* %call, i64 %index.next
+  %29 = bitcast i8* %28 to <4 x i8>*
+  %wide.load.1 = load <4 x i8>, <4 x i8>* %29, align 1, !tbaa !36
+  %30 = getelementptr i8, i8* %28, i64 4
+  %31 = bitcast i8* %30 to <4 x i8>*
+  %wide.load67.1 = load <4 x i8>, <4 x i8>* %31, align 1, !tbaa !36
+  %32 = uitofp <4 x i8> %wide.load.1 to <4 x float>
+  %33 = uitofp <4 x i8> %wide.load67.1 to <4 x float>
+  %34 = fmul fast <4 x float> %32, <float 0x3F70101020000000, float 0x3F70101020000000, float 0x3F70101020000000, float 0x3F70101020000000>
+  %35 = fmul fast <4 x float> %33, <float 0x3F70101020000000, float 0x3F70101020000000, float 0x3F70101020000000, float 0x3F70101020000000>
+  %36 = getelementptr inbounds float, float* %0, i64 %index.next
+  %37 = bitcast float* %36 to <4 x float>*
+  store <4 x float> %34, <4 x float>* %37, align 4, !tbaa !17
+  %38 = getelementptr float, float* %36, i64 4
+  %39 = bitcast float* %38 to <4 x float>*
+  store <4 x float> %35, <4 x float>* %39, align 4, !tbaa !17
+  %index.next.1 = add i64 %index, 16
+  %40 = icmp eq i64 %index.next.1, %n.vec
+  br i1 %40, label %middle.block.unr-lcssa, label %vector.body, !llvm.loop !37
+
+middle.block.unr-lcssa:                           ; preds = %vector.body
+  br label %middle.block
+
+middle.block:                                     ; preds = %vector.body.prol.loopexit, %middle.block.unr-lcssa
+  %cmp.n = icmp eq i64 %umax, %n.vec
+  br i1 %cmp.n, label %for.cond.cleanup.loopexit, label %for.body.preheader68
+
+for.cond.cleanup.loopexit.loopexit:               ; preds = %for.body
+  br label %for.cond.cleanup.loopexit
+
+for.cond.cleanup.loopexit:                        ; preds = %for.cond.cleanup.loopexit.loopexit, %middle.block
+  %arrayidx22.phi.trans.insert = getelementptr inbounds i8, i8* %call10, i64 40
+  %.phi.trans.insert = bitcast i8* %arrayidx22.phi.trans.insert to float*
+  %.pre = load float, float* %.phi.trans.insert, align 4, !tbaa !17
+  %phitmp = fpext float %.pre to double
+  br label %for.cond.cleanup
+
+for.cond.cleanup:                                 ; preds = %if.end, %for.cond.cleanup.loopexit
+  %41 = phi double [ %phitmp, %for.cond.cleanup.loopexit ], [ undef, %if.end ]
+  %call24 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.17, i64 0, i64 0), i32 10, double %41)
+  %conv25 = sext i32 %dim1_size to i64
+  %conv26 = sext i32 %dim2_size to i64
+  %conv27 = sext i32 %dim3_size to i64
+  %conv28 = sext i32 %dim4_size to i64
+  %call29 = tail call i8* @create4DTensor(i32 %data_type, i32 0, i64 %conv25, i64 %conv26, i64 %conv27, i64 %conv28) #7
+  %conv30 = sext i32 %mul6 to i64
+  tail call void @initTensorData(i8* %call29, i8* %call10, i64 %conv30) #7
+  ret i8* %call29
+
+for.body:                                         ; preds = %for.body.preheader68, %for.body
+  %i.063 = phi i64 [ %inc, %for.body ], [ %i.063.ph, %for.body.preheader68 ]
+  %arrayidx = getelementptr inbounds i8, i8* %call, i64 %i.063
+  %42 = load i8, i8* %arrayidx, align 1, !tbaa !36
+  %conv20 = uitofp i8 %42 to float
+  %div = fmul fast float %conv20, 0x3F70101020000000
+  %arrayidx21 = getelementptr inbounds float, float* %0, i64 %i.063
+  store float %div, float* %arrayidx21, align 4, !tbaa !17
+  %inc = add nuw i64 %i.063, 1
+  %cmp19 = icmp ult i64 %inc, %conv
+  br i1 %cmp19, label %for.body, label %for.cond.cleanup.loopexit.loopexit, !llvm.loop !38
+}
+
+; Function Attrs: nounwind
+declare noalias i8* @malloc(i64) local_unnamed_addr #2
+
+; Function Attrs: nounwind
+declare i32 @fseek(%struct._IO_FILE* nocapture, i64, i32) local_unnamed_addr #2
+
+; Function Attrs: nounwind
+declare i64 @fread(i8* nocapture, i64, i64, %struct._IO_FILE* nocapture) local_unnamed_addr #2
+
+declare i8* @create4DTensor(i32, i32, i64, i64, i64, i64) local_unnamed_addr #3
+
+declare void @initTensorData(i8*, i8*, i64) local_unnamed_addr #3
+
+; Function Attrs: nounwind uwtable
+define %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %file_name, i32 %data_type, i32 %dim1_size, i32 %dim2_size, i32 %dim3_size, i32 %dim4_size) local_unnamed_addr #0 {
+entry:
+  %mul = mul nsw i32 %dim2_size, %dim1_size
+  %mul1 = mul nsw i32 %mul, %dim3_size
+  %mul2 = mul nsw i32 %mul1, %dim4_size
+  %conv = sext i32 %mul2 to i64
+  %mul7 = shl nsw i64 %conv, 2
+  %call = tail call noalias i8* @malloc(i64 %mul7) #7
+  %call8 = tail call %struct._IO_FILE* @fopen(i8* %file_name, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0))
+  %cmp = icmp eq %struct._IO_FILE* %call8, null
+  br i1 %cmp, label %if.then, label %if.end
+
+if.then:                                          ; preds = %entry
+  %call9 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.16, i64 0, i64 0), i8* %file_name)
+  tail call void @abort() #8
+  unreachable
+
+if.end:                                           ; preds = %entry
+  %0 = bitcast i8* %call to float*
+  %mul3 = shl i32 %dim1_size, 2
+  %mul4 = mul nsw i32 %mul3, %dim2_size
+  %mul5 = mul nsw i32 %mul4, %dim3_size
+  %mul6 = mul nsw i32 %mul5, %dim4_size
+  %call11 = tail call i32 @fseek(%struct._IO_FILE* nonnull %call8, i64 0, i32 1)
+  %conv12 = sext i32 %mul6 to i64
+  %call13 = tail call i64 @fread(i8* %call, i64 1, i64 %conv12, %struct._IO_FILE* nonnull %call8)
+  %conv14 = sext i32 %dim1_size to i64
+  %conv15 = sext i32 %dim2_size to i64
+  %conv16 = sext i32 %dim3_size to i64
+  %conv17 = sext i32 %dim4_size to i64
+  %call18 = tail call i8* @create4DTensor(i32 %data_type, i32 0, i64 %conv14, i64 %conv15, i64 %conv16, i64 %conv17) #7
+  %1 = bitcast i8* %call18 to %struct.Tensor*
+  tail call void @initTensorData(i8* %call18, i8* %call, i64 %conv12) #7
+  tail call void @hpvm_request_tensor(i8* %call18, i32 0) #7
+  %host_data.i = getelementptr inbounds i8, i8* %call18, i64 32
+  %2 = bitcast i8* %host_data.i to float**
+  %3 = load float*, float** %2, align 8, !tbaa !15
+  %cmp11.i = icmp eq i32 %mul2, 0
+  br i1 %cmp11.i, label %_Z13compareValuesPvPfm.exit, label %for.body.i.preheader
+
+for.body.i.preheader:                             ; preds = %if.end
+  br label %for.body.i
+
+for.cond.i:                                       ; preds = %for.body.i
+  %conv.i = zext i32 %inc.i to i64
+  %cmp.i = icmp ult i64 %conv.i, %conv
+  br i1 %cmp.i, label %for.body.i, label %_Z13compareValuesPvPfm.exit.loopexit
+
+for.body.i:                                       ; preds = %for.body.i.preheader, %for.cond.i
+  %conv13.i = phi i64 [ %conv.i, %for.cond.i ], [ 0, %for.body.i.preheader ]
+  %i.012.i = phi i32 [ %inc.i, %for.cond.i ], [ 0, %for.body.i.preheader ]
+  %arrayidx.i = getelementptr inbounds float, float* %3, i64 %conv13.i
+  %4 = load float, float* %arrayidx.i, align 4, !tbaa !17
+  %arrayidx2.i = getelementptr inbounds float, float* %0, i64 %conv13.i
+  %5 = load float, float* %arrayidx2.i, align 4, !tbaa !17
+  %cmp3.i = fcmp fast une float %4, %5
+  %inc.i = add i32 %i.012.i, 1
+  br i1 %cmp3.i, label %if.then.i, label %for.cond.i
+
+if.then.i:                                        ; preds = %for.body.i
+  %call.i = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.14, i64 0, i64 0)) #7
+  tail call void @abort() #8
+  unreachable
+
+_Z13compareValuesPvPfm.exit.loopexit:             ; preds = %for.cond.i
+  br label %_Z13compareValuesPvPfm.exit
+
+_Z13compareValuesPvPfm.exit:                      ; preds = %_Z13compareValuesPvPfm.exit.loopexit, %if.end
+  ret %struct.Tensor* %1
+}
+
+; Function Attrs: nounwind uwtable
+define noalias i8* @_Z10readLabelsPKci(i8* %labels_file, i32 %num_labels) local_unnamed_addr #0 {
+entry:
+  %conv = sext i32 %num_labels to i64
+  %call = tail call noalias i8* @malloc(i64 %conv) #7
+  %call1 = tail call %struct._IO_FILE* @fopen(i8* %labels_file, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0))
+  %cmp = icmp eq %struct._IO_FILE* %call1, null
+  br i1 %cmp, label %if.then, label %if.end
+
+if.then:                                          ; preds = %entry
+  %call2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.18, i64 0, i64 0), i8* %labels_file)
+  tail call void @abort() #8
+  unreachable
+
+if.end:                                           ; preds = %entry
+  %call5 = tail call i64 @fread(i8* %call, i64 1, i64 %conv, %struct._IO_FILE* nonnull %call1)
+  %call6 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.19, i64 0, i64 0), i64 %call5)
+  ret i8* %call
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z15computeAccuracyPciPv(i8* %labels_file, i32 %num_labels, i8* nocapture readonly %result_ptr) local_unnamed_addr #0 {
+entry:
+  %ss = alloca %"class.std::__cxx11::basic_ostringstream", align 16
+  %print_str = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv.i = sext i32 %num_labels to i64
+  %call.i = tail call noalias i8* @malloc(i64 %conv.i) #7
+  %call1.i = tail call %struct._IO_FILE* @fopen(i8* %labels_file, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0)) #7
+  %cmp.i = icmp eq %struct._IO_FILE* %call1.i, null
+  br i1 %cmp.i, label %if.then.i, label %_Z10readLabelsPKci.exit
+
+if.then.i:                                        ; preds = %entry
+  %call2.i = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.18, i64 0, i64 0), i8* %labels_file) #7
+  tail call void @abort() #8
+  unreachable
+
+_Z10readLabelsPKci.exit:                          ; preds = %entry
+  %call5.i = tail call i64 @fread(i8* %call.i, i64 1, i64 %conv.i, %struct._IO_FILE* nonnull %call1.i) #7
+  %call6.i = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.19, i64 0, i64 0), i64 %call5.i) #7
+  %dim_sizes = getelementptr inbounds i8, i8* %result_ptr, i64 72
+  %0 = bitcast i8* %dim_sizes to i64**
+  %1 = load i64*, i64** %0, align 8, !tbaa !11
+  %2 = load i64, i64* %1, align 8, !tbaa !12
+  %arrayidx3 = getelementptr inbounds i64, i64* %1, i64 1
+  %3 = load i64, i64* %arrayidx3, align 8, !tbaa !12
+  %host_data = getelementptr inbounds i8, i8* %result_ptr, i64 32
+  %4 = bitcast i8* %host_data to float**
+  %5 = load float*, float** %4, align 8, !tbaa !15
+  %cmp92 = icmp eq i64 %2, 0
+  br i1 %cmp92, label %for.cond.cleanup, label %for.cond4.preheader.preheader
+
+for.cond4.preheader.preheader:                    ; preds = %_Z10readLabelsPKci.exit
+  br label %for.cond4.preheader
+
+for.cond4.preheader:                              ; preds = %for.cond4.preheader.preheader, %for.cond4.preheader
+  %indvars.iv = phi i64 [ %indvars.iv.next, %for.cond4.preheader ], [ 0, %for.cond4.preheader.preheader ]
+  %num_errors.094 = phi i32 [ %num_errors.0.inc21, %for.cond4.preheader ], [ 0, %for.cond4.preheader.preheader ]
+  %mul = mul i64 %indvars.iv, %3
+  %arrayidx10 = getelementptr inbounds float, float* %5, i64 %mul
+  %6 = load float, float* %arrayidx10, align 4, !tbaa !17
+  %add14 = add i64 %mul, 1
+  %arrayidx15 = getelementptr inbounds float, float* %5, i64 %add14
+  %7 = load float, float* %arrayidx15, align 4, !tbaa !17
+  %cmp16 = fcmp fast olt float %6, %7
+  %chosen.1 = zext i1 %cmp16 to i32
+  %conv9.1 = zext i1 %cmp16 to i64
+  %add.1 = add i64 %conv9.1, %mul
+  %arrayidx10.1 = getelementptr inbounds float, float* %5, i64 %add.1
+  %8 = load float, float* %arrayidx10.1, align 4, !tbaa !17
+  %add14.1 = add i64 %mul, 2
+  %arrayidx15.1 = getelementptr inbounds float, float* %5, i64 %add14.1
+  %9 = load float, float* %arrayidx15.1, align 4, !tbaa !17
+  %cmp16.1 = fcmp fast olt float %8, %9
+  %chosen.1.1 = select i1 %cmp16.1, i32 2, i32 %chosen.1
+  %conv9.296 = zext i32 %chosen.1.1 to i64
+  %add.2 = add i64 %conv9.296, %mul
+  %arrayidx10.2 = getelementptr inbounds float, float* %5, i64 %add.2
+  %10 = load float, float* %arrayidx10.2, align 4, !tbaa !17
+  %add14.2 = add i64 %mul, 3
+  %arrayidx15.2 = getelementptr inbounds float, float* %5, i64 %add14.2
+  %11 = load float, float* %arrayidx15.2, align 4, !tbaa !17
+  %cmp16.2 = fcmp fast olt float %10, %11
+  %chosen.1.2 = select i1 %cmp16.2, i32 3, i32 %chosen.1.1
+  %conv9.397 = zext i32 %chosen.1.2 to i64
+  %add.3 = add i64 %conv9.397, %mul
+  %arrayidx10.3 = getelementptr inbounds float, float* %5, i64 %add.3
+  %12 = load float, float* %arrayidx10.3, align 4, !tbaa !17
+  %add14.3 = add i64 %mul, 4
+  %arrayidx15.3 = getelementptr inbounds float, float* %5, i64 %add14.3
+  %13 = load float, float* %arrayidx15.3, align 4, !tbaa !17
+  %cmp16.3 = fcmp fast olt float %12, %13
+  %chosen.1.3 = select i1 %cmp16.3, i32 4, i32 %chosen.1.2
+  %conv9.498 = zext i32 %chosen.1.3 to i64
+  %add.4 = add i64 %conv9.498, %mul
+  %arrayidx10.4 = getelementptr inbounds float, float* %5, i64 %add.4
+  %14 = load float, float* %arrayidx10.4, align 4, !tbaa !17
+  %add14.4 = add i64 %mul, 5
+  %arrayidx15.4 = getelementptr inbounds float, float* %5, i64 %add14.4
+  %15 = load float, float* %arrayidx15.4, align 4, !tbaa !17
+  %cmp16.4 = fcmp fast olt float %14, %15
+  %chosen.1.4 = select i1 %cmp16.4, i32 5, i32 %chosen.1.3
+  %conv9.599 = zext i32 %chosen.1.4 to i64
+  %add.5 = add i64 %conv9.599, %mul
+  %arrayidx10.5 = getelementptr inbounds float, float* %5, i64 %add.5
+  %16 = load float, float* %arrayidx10.5, align 4, !tbaa !17
+  %add14.5 = add i64 %mul, 6
+  %arrayidx15.5 = getelementptr inbounds float, float* %5, i64 %add14.5
+  %17 = load float, float* %arrayidx15.5, align 4, !tbaa !17
+  %cmp16.5 = fcmp fast olt float %16, %17
+  %chosen.1.5 = select i1 %cmp16.5, i32 6, i32 %chosen.1.4
+  %18 = zext i32 %chosen.1.5 to i64
+  %add.6 = add i64 %18, %mul
+  %arrayidx10.6 = getelementptr inbounds float, float* %5, i64 %add.6
+  %19 = load float, float* %arrayidx10.6, align 4, !tbaa !17
+  %add14.6 = add i64 %mul, 7
+  %arrayidx15.6 = getelementptr inbounds float, float* %5, i64 %add14.6
+  %20 = load float, float* %arrayidx15.6, align 4, !tbaa !17
+  %cmp16.6 = fcmp fast olt float %19, %20
+  %chosen.1.6 = select i1 %cmp16.6, i32 7, i32 %chosen.1.5
+  %conv9.7 = sext i32 %chosen.1.6 to i64
+  %add.7 = add i64 %conv9.7, %mul
+  %arrayidx10.7 = getelementptr inbounds float, float* %5, i64 %add.7
+  %21 = load float, float* %arrayidx10.7, align 4, !tbaa !17
+  %add14.7 = add i64 %mul, 8
+  %arrayidx15.7 = getelementptr inbounds float, float* %5, i64 %add14.7
+  %22 = load float, float* %arrayidx15.7, align 4, !tbaa !17
+  %cmp16.7 = fcmp fast olt float %21, %22
+  %chosen.1.7 = select i1 %cmp16.7, i32 8, i32 %chosen.1.6
+  %conv9.8 = sext i32 %chosen.1.7 to i64
+  %add.8 = add i64 %conv9.8, %mul
+  %arrayidx10.8 = getelementptr inbounds float, float* %5, i64 %add.8
+  %23 = load float, float* %arrayidx10.8, align 4, !tbaa !17
+  %add14.8 = add i64 %mul, 9
+  %arrayidx15.8 = getelementptr inbounds float, float* %5, i64 %add14.8
+  %24 = load float, float* %arrayidx15.8, align 4, !tbaa !17
+  %cmp16.8 = fcmp fast olt float %23, %24
+  %chosen.1.8 = select i1 %cmp16.8, i32 9, i32 %chosen.1.7
+  %arrayidx17 = getelementptr inbounds i8, i8* %call.i, i64 %indvars.iv
+  %25 = load i8, i8* %arrayidx17, align 1, !tbaa !36
+  %conv18 = zext i8 %25 to i32
+  %not.cmp19 = icmp ne i32 %chosen.1.8, %conv18
+  %inc21 = zext i1 %not.cmp19 to i32
+  %num_errors.0.inc21 = add nsw i32 %inc21, %num_errors.094
+  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
+  %exitcond = icmp eq i64 %indvars.iv.next, %2
+  br i1 %exitcond, label %for.cond.cleanup.loopexit, label %for.cond4.preheader
+
+for.cond.cleanup.loopexit:                        ; preds = %for.cond4.preheader
+  %phitmp = sext i32 %num_errors.0.inc21 to i64
+  br label %for.cond.cleanup
+
+for.cond.cleanup:                                 ; preds = %for.cond.cleanup.loopexit, %_Z10readLabelsPKci.exit
+  %num_errors.0.lcssa = phi i64 [ 0, %_Z10readLabelsPKci.exit ], [ %phitmp, %for.cond.cleanup.loopexit ]
+  %sub = sub i64 %2, %num_errors.0.lcssa
+  %conv27 = uitofp i64 %sub to double
+  %conv29 = uitofp i64 %2 to double
+  %div = fdiv fast double %conv27, %conv29
+  %mul31 = fmul fast double %div, 1.000000e+02
+  %conv32 = fptrunc double %mul31 to float
+  %conv33 = fpext float %conv32 to double
+  %call34 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.20, i64 0, i64 0), double %conv33)
+  %call35 = tail call %struct._IO_FILE* @fopen(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.21, i64 0, i64 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.22, i64 0, i64 0))
+  %cmp36 = icmp eq %struct._IO_FILE* %call35, null
+  br i1 %cmp36, label %if.end44, label %if.then37
+
+if.then37:                                        ; preds = %for.cond.cleanup
+  %26 = bitcast %"class.std::__cxx11::basic_ostringstream"* %ss to i8*
+  call void @llvm.lifetime.start(i64 376, i8* nonnull %26) #7
+  %27 = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 2
+  %28 = getelementptr inbounds %"class.std::basic_ios", %"class.std::basic_ios"* %27, i64 0, i32 0
+  call void @_ZNSt8ios_baseC2Ev(%"class.std::ios_base"* %28) #7
+  %29 = getelementptr inbounds %"class.std::basic_ios", %"class.std::basic_ios"* %27, i64 0, i32 0, i32 0
+  store i32 (...)** bitcast (i8** getelementptr inbounds ({ [4 x i8*] }, { [4 x i8*] }* @_ZTVSt9basic_iosIcSt11char_traitsIcEE, i64 0, inrange i32 0, i64 2) to i32 (...)**), i32 (...)*** %29, align 16, !tbaa !40
+  %_M_tie.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 2, i32 1
+  store %"class.std::basic_ostream"* null, %"class.std::basic_ostream"** %_M_tie.i.i, align 8, !tbaa !42
+  %_M_fill.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 2, i32 2
+  store i8 0, i8* %_M_fill.i.i, align 16, !tbaa !45
+  %_M_fill_init.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 2, i32 3
+  store i8 0, i8* %_M_fill_init.i.i, align 1, !tbaa !46
+  %_M_streambuf.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 2, i32 4
+  %30 = bitcast %"class.std::basic_streambuf"** %_M_streambuf.i.i to i8*
+  call void @llvm.memset.p0i8.i64(i8* %30, i8 0, i64 32, i32 8, i1 false) #7
+  %31 = load i64, i64* bitcast (i8** getelementptr inbounds ([4 x i8*], [4 x i8*]* @_ZTTNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE, i64 0, i64 1) to i64*), align 8
+  %32 = bitcast %"class.std::__cxx11::basic_ostringstream"* %ss to i64*
+  store i64 %31, i64* %32, align 16, !tbaa !40
+  %33 = load i64, i64* bitcast (i8** getelementptr inbounds ([4 x i8*], [4 x i8*]* @_ZTTNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE, i64 0, i64 2) to i64*), align 8
+  %34 = bitcast %"class.std::__cxx11::basic_ostringstream"* %ss to i8**
+  %vtable.cast.i.i = inttoptr i64 %31 to i8*
+  %vbase.offset.ptr.i.i = getelementptr i8, i8* %vtable.cast.i.i, i64 -24
+  %35 = bitcast i8* %vbase.offset.ptr.i.i to i64*
+  %vbase.offset.i.i = load i64, i64* %35, align 8
+  %add.ptr.i.i = getelementptr inbounds i8, i8* %26, i64 %vbase.offset.i.i
+  %36 = bitcast i8* %add.ptr.i.i to i64*
+  store i64 %33, i64* %36, align 8, !tbaa !40
+  %vtable3.i.i = load i8*, i8** %34, align 16, !tbaa !40
+  %vbase.offset.ptr4.i.i = getelementptr i8, i8* %vtable3.i.i, i64 -24
+  %37 = bitcast i8* %vbase.offset.ptr4.i.i to i64*
+  %vbase.offset5.i.i = load i64, i64* %37, align 8
+  %add.ptr6.i.i = getelementptr inbounds i8, i8* %26, i64 %vbase.offset5.i.i
+  %38 = bitcast i8* %add.ptr6.i.i to %"class.std::basic_ios"*
+  call void @_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E(%"class.std::basic_ios"* %38, %"class.std::basic_streambuf"* null) #7
+  store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*], [5 x i8*] }, { [5 x i8*], [5 x i8*] }* @_ZTVNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE, i64 0, inrange i32 1, i64 3) to i32 (...)**), i32 (...)*** %29, align 16, !tbaa !40
+  %_M_stringbuf.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1
+  %39 = getelementptr inbounds %"class.std::__cxx11::basic_stringbuf", %"class.std::__cxx11::basic_stringbuf"* %_M_stringbuf.i, i64 0, i32 0, i32 0
+  %40 = bitcast %"class.std::__cxx11::basic_ostringstream"* %ss to <2 x i32 (...)**>*
+  store <2 x i32 (...)**> <i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*], [5 x i8*] }, { [5 x i8*], [5 x i8*] }* @_ZTVNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE, i64 0, inrange i32 0, i64 3) to i32 (...)**), i32 (...)** bitcast (i8** getelementptr inbounds ({ [16 x i8*] }, { [16 x i8*] }* @_ZTVSt15basic_streambufIcSt11char_traitsIcEE, i64 0, inrange i32 0, i64 2) to i32 (...)**)>, <2 x i32 (...)**>* %40, align 16, !tbaa !40
+  %_M_in_beg.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1, i32 0, i32 1
+  %_M_buf_locale.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1, i32 0, i32 7
+  %41 = bitcast i8** %_M_in_beg.i.i.i to i8*
+  call void @llvm.memset.p0i8.i64(i8* %41, i8 0, i64 48, i32 8, i1 false) #7
+  call void @_ZNSt6localeC1Ev(%"class.std::locale"* %_M_buf_locale.i.i.i) #7
+  store i32 (...)** bitcast (i8** getelementptr inbounds ({ [16 x i8*] }, { [16 x i8*] }* @_ZTVNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEE, i64 0, inrange i32 0, i64 2) to i32 (...)**), i32 (...)*** %39, align 8, !tbaa !40
+  %_M_mode.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1, i32 1
+  store i32 16, i32* %_M_mode.i.i, align 8, !tbaa !47
+  %_M_string.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1, i32 2
+  %42 = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1, i32 2, i32 2
+  %43 = bitcast %"class.std::__cxx11::basic_string"* %_M_string.i.i to %union.anon**
+  store %union.anon* %42, %union.anon** %43, align 8, !tbaa !52
+  %_M_string_length.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1, i32 2, i32 1
+  store i64 0, i64* %_M_string_length.i.i.i.i.i, align 8, !tbaa !53
+  %.cast.i.i.i = bitcast %union.anon* %42 to i8*
+  store i8 0, i8* %.cast.i.i.i, align 8, !tbaa !36
+  %vtable.i = load i8*, i8** %34, align 16, !tbaa !40
+  %vbase.offset.ptr.i = getelementptr i8, i8* %vtable.i, i64 -24
+  %44 = bitcast i8* %vbase.offset.ptr.i to i64*
+  %vbase.offset.i = load i64, i64* %44, align 8
+  %add.ptr2.i = getelementptr inbounds i8, i8* %26, i64 %vbase.offset.i
+  %45 = bitcast i8* %add.ptr2.i to %"class.std::basic_ios"*
+  %46 = getelementptr inbounds %"class.std::__cxx11::basic_stringbuf", %"class.std::__cxx11::basic_stringbuf"* %_M_stringbuf.i, i64 0, i32 0
+  call void @_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E(%"class.std::basic_ios"* %45, %"class.std::basic_streambuf"* %46) #7
+  %47 = bitcast %"class.std::__cxx11::basic_ostringstream"* %ss to %"class.std::basic_ostream"*
+  %vtable.i74 = load i8*, i8** %34, align 16, !tbaa !40
+  %vbase.offset.ptr.i75 = getelementptr i8, i8* %vtable.i74, i64 -24
+  %48 = bitcast i8* %vbase.offset.ptr.i75 to i64*
+  %vbase.offset.i76 = load i64, i64* %48, align 8
+  %add.ptr.i = getelementptr inbounds i8, i8* %26, i64 %vbase.offset.i76
+  %_M_flags.i = getelementptr inbounds i8, i8* %add.ptr.i, i64 24
+  %49 = bitcast i8* %_M_flags.i to i32*
+  %50 = load i32, i32* %49, align 4, !tbaa !54
+  %and.i = and i32 %50, -261
+  %or.i = or i32 %and.i, 4
+  store i32 %or.i, i32* %49, align 4, !tbaa !54
+  %call.i84 = call dereferenceable(272) %"class.std::basic_ostream"* @_ZNSo9_M_insertIdEERSoT_(%"class.std::basic_ostream"* nonnull %47, double %conv33) #7
+  %51 = bitcast %"class.std::__cxx11::basic_string"* %print_str to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %51) #7
+  call void @_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv(%"class.std::__cxx11::basic_string"* nonnull sret %print_str, %"class.std::__cxx11::basic_stringbuf"* %_M_stringbuf.i) #7
+  %_M_p.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %print_str, i64 0, i32 0, i32 0
+  %52 = load i8*, i8** %_M_p.i.i, align 8, !tbaa !56
+  %_M_string_length.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %print_str, i64 0, i32 1
+  %53 = load i64, i64* %_M_string_length.i, align 8, !tbaa !53
+  %call42 = call i64 @fwrite(i8* %52, i64 1, i64 %53, %struct._IO_FILE* nonnull %call35)
+  %call43 = call i32 @fclose(%struct._IO_FILE* nonnull %call35)
+  %54 = load i8*, i8** %_M_p.i.i, align 8, !tbaa !56
+  %55 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %print_str, i64 0, i32 2
+  %arraydecay.i.i.i.i = bitcast %union.anon* %55 to i8*
+  %cmp.i.i.i = icmp eq i8* %54, %arraydecay.i.i.i.i
+  br i1 %cmp.i.i.i, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit, label %if.then.i.i
+
+if.then.i.i:                                      ; preds = %if.then37
+  call void @_ZdlPv(i8* %54) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit: ; preds = %if.then37, %if.then.i.i
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %51) #7
+  %56 = load i64, i64* bitcast ([4 x i8*]* @_ZTTNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE to i64*), align 8
+  store i64 %56, i64* %32, align 16, !tbaa !40
+  %57 = load i64, i64* bitcast (i8** getelementptr inbounds ([4 x i8*], [4 x i8*]* @_ZTTNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE, i64 0, i64 3) to i64*), align 8
+  %vtable.cast.i.i86 = inttoptr i64 %56 to i8*
+  %vbase.offset.ptr.i.i87 = getelementptr i8, i8* %vtable.cast.i.i86, i64 -24
+  %58 = bitcast i8* %vbase.offset.ptr.i.i87 to i64*
+  %vbase.offset.i.i88 = load i64, i64* %58, align 8
+  %add.ptr.i.i89 = getelementptr inbounds i8, i8* %26, i64 %vbase.offset.i.i88
+  %59 = bitcast i8* %add.ptr.i.i89 to i64*
+  store i64 %57, i64* %59, align 8, !tbaa !40
+  %60 = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1, i32 0, i32 0
+  store i32 (...)** bitcast (i8** getelementptr inbounds ({ [16 x i8*] }, { [16 x i8*] }* @_ZTVNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEE, i64 0, inrange i32 0, i64 2) to i32 (...)**), i32 (...)*** %60, align 8, !tbaa !40
+  %_M_p.i.i.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1, i32 2, i32 0, i32 0
+  %61 = load i8*, i8** %_M_p.i.i.i.i.i.i.i, align 8, !tbaa !56
+  %cmp.i.i.i.i.i.i = icmp eq i8* %61, %.cast.i.i.i
+  br i1 %cmp.i.i.i.i.i.i, label %_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev.exit, label %if.then.i.i.i.i.i
+
+if.then.i.i.i.i.i:                                ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
+  call void @_ZdlPv(i8* %61) #7
+  br label %_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev.exit
+
+_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev.exit: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit, %if.then.i.i.i.i.i
+  store i32 (...)** bitcast (i8** getelementptr inbounds ({ [16 x i8*] }, { [16 x i8*] }* @_ZTVSt15basic_streambufIcSt11char_traitsIcEE, i64 0, inrange i32 0, i64 2) to i32 (...)**), i32 (...)*** %60, align 8, !tbaa !40
+  call void @_ZNSt6localeD1Ev(%"class.std::locale"* nonnull %_M_buf_locale.i.i.i) #7
+  %62 = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 2, i32 0
+  call void @_ZNSt8ios_baseD2Ev(%"class.std::ios_base"* %62) #7
+  call void @llvm.lifetime.end(i64 376, i8* nonnull %26) #7
+  br label %if.end44
+
+if.end44:                                         ; preds = %for.cond.cleanup, %_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev.exit
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z16computeAccuracy2PhiPv(i8* nocapture readonly %labels, i32 %num_labels, i8* nocapture readonly %result_ptr) local_unnamed_addr #0 {
+entry:
+  %ss = alloca %"class.std::__cxx11::basic_ostringstream", align 16
+  %print_str = alloca %"class.std::__cxx11::basic_string", align 8
+  %dim_sizes = getelementptr inbounds i8, i8* %result_ptr, i64 72
+  %0 = bitcast i8* %dim_sizes to i64**
+  %1 = load i64*, i64** %0, align 8, !tbaa !11
+  %2 = load i64, i64* %1, align 8, !tbaa !12
+  %arrayidx3 = getelementptr inbounds i64, i64* %1, i64 1
+  %3 = load i64, i64* %arrayidx3, align 8, !tbaa !12
+  %host_data = getelementptr inbounds i8, i8* %result_ptr, i64 32
+  %4 = bitcast i8* %host_data to float**
+  %5 = load float*, float** %4, align 8, !tbaa !15
+  %cmp82 = icmp eq i64 %2, 0
+  br i1 %cmp82, label %for.cond.cleanup, label %for.cond4.preheader.preheader
+
+for.cond4.preheader.preheader:                    ; preds = %entry
+  br label %for.cond4.preheader
+
+for.cond4.preheader:                              ; preds = %for.cond4.preheader.preheader, %for.cond4.preheader
+  %indvars.iv = phi i64 [ %indvars.iv.next, %for.cond4.preheader ], [ 0, %for.cond4.preheader.preheader ]
+  %num_errors.084 = phi i32 [ %num_errors.0.inc21, %for.cond4.preheader ], [ 0, %for.cond4.preheader.preheader ]
+  %mul = mul i64 %indvars.iv, %3
+  %arrayidx10 = getelementptr inbounds float, float* %5, i64 %mul
+  %6 = load float, float* %arrayidx10, align 4, !tbaa !17
+  %add14 = add i64 %mul, 1
+  %arrayidx15 = getelementptr inbounds float, float* %5, i64 %add14
+  %7 = load float, float* %arrayidx15, align 4, !tbaa !17
+  %cmp16 = fcmp fast olt float %6, %7
+  %chosen.1 = zext i1 %cmp16 to i32
+  %conv9.1 = zext i1 %cmp16 to i64
+  %add.1 = add i64 %conv9.1, %mul
+  %arrayidx10.1 = getelementptr inbounds float, float* %5, i64 %add.1
+  %8 = load float, float* %arrayidx10.1, align 4, !tbaa !17
+  %add14.1 = add i64 %mul, 2
+  %arrayidx15.1 = getelementptr inbounds float, float* %5, i64 %add14.1
+  %9 = load float, float* %arrayidx15.1, align 4, !tbaa !17
+  %cmp16.1 = fcmp fast olt float %8, %9
+  %chosen.1.1 = select i1 %cmp16.1, i32 2, i32 %chosen.1
+  %conv9.286 = zext i32 %chosen.1.1 to i64
+  %add.2 = add i64 %conv9.286, %mul
+  %arrayidx10.2 = getelementptr inbounds float, float* %5, i64 %add.2
+  %10 = load float, float* %arrayidx10.2, align 4, !tbaa !17
+  %add14.2 = add i64 %mul, 3
+  %arrayidx15.2 = getelementptr inbounds float, float* %5, i64 %add14.2
+  %11 = load float, float* %arrayidx15.2, align 4, !tbaa !17
+  %cmp16.2 = fcmp fast olt float %10, %11
+  %chosen.1.2 = select i1 %cmp16.2, i32 3, i32 %chosen.1.1
+  %conv9.387 = zext i32 %chosen.1.2 to i64
+  %add.3 = add i64 %conv9.387, %mul
+  %arrayidx10.3 = getelementptr inbounds float, float* %5, i64 %add.3
+  %12 = load float, float* %arrayidx10.3, align 4, !tbaa !17
+  %add14.3 = add i64 %mul, 4
+  %arrayidx15.3 = getelementptr inbounds float, float* %5, i64 %add14.3
+  %13 = load float, float* %arrayidx15.3, align 4, !tbaa !17
+  %cmp16.3 = fcmp fast olt float %12, %13
+  %chosen.1.3 = select i1 %cmp16.3, i32 4, i32 %chosen.1.2
+  %conv9.488 = zext i32 %chosen.1.3 to i64
+  %add.4 = add i64 %conv9.488, %mul
+  %arrayidx10.4 = getelementptr inbounds float, float* %5, i64 %add.4
+  %14 = load float, float* %arrayidx10.4, align 4, !tbaa !17
+  %add14.4 = add i64 %mul, 5
+  %arrayidx15.4 = getelementptr inbounds float, float* %5, i64 %add14.4
+  %15 = load float, float* %arrayidx15.4, align 4, !tbaa !17
+  %cmp16.4 = fcmp fast olt float %14, %15
+  %chosen.1.4 = select i1 %cmp16.4, i32 5, i32 %chosen.1.3
+  %conv9.589 = zext i32 %chosen.1.4 to i64
+  %add.5 = add i64 %conv9.589, %mul
+  %arrayidx10.5 = getelementptr inbounds float, float* %5, i64 %add.5
+  %16 = load float, float* %arrayidx10.5, align 4, !tbaa !17
+  %add14.5 = add i64 %mul, 6
+  %arrayidx15.5 = getelementptr inbounds float, float* %5, i64 %add14.5
+  %17 = load float, float* %arrayidx15.5, align 4, !tbaa !17
+  %cmp16.5 = fcmp fast olt float %16, %17
+  %chosen.1.5 = select i1 %cmp16.5, i32 6, i32 %chosen.1.4
+  %18 = zext i32 %chosen.1.5 to i64
+  %add.6 = add i64 %18, %mul
+  %arrayidx10.6 = getelementptr inbounds float, float* %5, i64 %add.6
+  %19 = load float, float* %arrayidx10.6, align 4, !tbaa !17
+  %add14.6 = add i64 %mul, 7
+  %arrayidx15.6 = getelementptr inbounds float, float* %5, i64 %add14.6
+  %20 = load float, float* %arrayidx15.6, align 4, !tbaa !17
+  %cmp16.6 = fcmp fast olt float %19, %20
+  %chosen.1.6 = select i1 %cmp16.6, i32 7, i32 %chosen.1.5
+  %conv9.7 = sext i32 %chosen.1.6 to i64
+  %add.7 = add i64 %conv9.7, %mul
+  %arrayidx10.7 = getelementptr inbounds float, float* %5, i64 %add.7
+  %21 = load float, float* %arrayidx10.7, align 4, !tbaa !17
+  %add14.7 = add i64 %mul, 8
+  %arrayidx15.7 = getelementptr inbounds float, float* %5, i64 %add14.7
+  %22 = load float, float* %arrayidx15.7, align 4, !tbaa !17
+  %cmp16.7 = fcmp fast olt float %21, %22
+  %chosen.1.7 = select i1 %cmp16.7, i32 8, i32 %chosen.1.6
+  %conv9.8 = sext i32 %chosen.1.7 to i64
+  %add.8 = add i64 %conv9.8, %mul
+  %arrayidx10.8 = getelementptr inbounds float, float* %5, i64 %add.8
+  %23 = load float, float* %arrayidx10.8, align 4, !tbaa !17
+  %add14.8 = add i64 %mul, 9
+  %arrayidx15.8 = getelementptr inbounds float, float* %5, i64 %add14.8
+  %24 = load float, float* %arrayidx15.8, align 4, !tbaa !17
+  %cmp16.8 = fcmp fast olt float %23, %24
+  %chosen.1.8 = select i1 %cmp16.8, i32 9, i32 %chosen.1.7
+  %arrayidx17 = getelementptr inbounds i8, i8* %labels, i64 %indvars.iv
+  %25 = load i8, i8* %arrayidx17, align 1, !tbaa !36
+  %conv18 = zext i8 %25 to i32
+  %not.cmp19 = icmp ne i32 %chosen.1.8, %conv18
+  %inc21 = zext i1 %not.cmp19 to i32
+  %num_errors.0.inc21 = add nsw i32 %inc21, %num_errors.084
+  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
+  %exitcond = icmp eq i64 %indvars.iv.next, %2
+  br i1 %exitcond, label %for.cond.cleanup.loopexit, label %for.cond4.preheader
+
+for.cond.cleanup.loopexit:                        ; preds = %for.cond4.preheader
+  %phitmp = sext i32 %num_errors.0.inc21 to i64
+  br label %for.cond.cleanup
+
+for.cond.cleanup:                                 ; preds = %for.cond.cleanup.loopexit, %entry
+  %num_errors.0.lcssa = phi i64 [ 0, %entry ], [ %phitmp, %for.cond.cleanup.loopexit ]
+  %sub = sub i64 %2, %num_errors.0.lcssa
+  %conv27 = uitofp i64 %sub to double
+  %conv29 = uitofp i64 %2 to double
+  %div = fdiv fast double %conv27, %conv29
+  %mul31 = fmul fast double %div, 1.000000e+02
+  %conv32 = fptrunc double %mul31 to float
+  %conv33 = fpext float %conv32 to double
+  %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.20, i64 0, i64 0), double %conv33)
+  %call34 = tail call %struct._IO_FILE* @fopen(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.21, i64 0, i64 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.22, i64 0, i64 0))
+  %cmp35 = icmp eq %struct._IO_FILE* %call34, null
+  br i1 %cmp35, label %if.end43, label %if.then36
+
+if.then36:                                        ; preds = %for.cond.cleanup
+  %26 = bitcast %"class.std::__cxx11::basic_ostringstream"* %ss to i8*
+  call void @llvm.lifetime.start(i64 376, i8* nonnull %26) #7
+  %27 = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 2
+  %28 = getelementptr inbounds %"class.std::basic_ios", %"class.std::basic_ios"* %27, i64 0, i32 0
+  call void @_ZNSt8ios_baseC2Ev(%"class.std::ios_base"* %28) #7
+  %29 = getelementptr inbounds %"class.std::basic_ios", %"class.std::basic_ios"* %27, i64 0, i32 0, i32 0
+  store i32 (...)** bitcast (i8** getelementptr inbounds ({ [4 x i8*] }, { [4 x i8*] }* @_ZTVSt9basic_iosIcSt11char_traitsIcEE, i64 0, inrange i32 0, i64 2) to i32 (...)**), i32 (...)*** %29, align 16, !tbaa !40
+  %_M_tie.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 2, i32 1
+  store %"class.std::basic_ostream"* null, %"class.std::basic_ostream"** %_M_tie.i.i, align 8, !tbaa !42
+  %_M_fill.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 2, i32 2
+  store i8 0, i8* %_M_fill.i.i, align 16, !tbaa !45
+  %_M_fill_init.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 2, i32 3
+  store i8 0, i8* %_M_fill_init.i.i, align 1, !tbaa !46
+  %_M_streambuf.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 2, i32 4
+  %30 = bitcast %"class.std::basic_streambuf"** %_M_streambuf.i.i to i8*
+  call void @llvm.memset.p0i8.i64(i8* %30, i8 0, i64 32, i32 8, i1 false) #7
+  %31 = load i64, i64* bitcast (i8** getelementptr inbounds ([4 x i8*], [4 x i8*]* @_ZTTNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE, i64 0, i64 1) to i64*), align 8
+  %32 = bitcast %"class.std::__cxx11::basic_ostringstream"* %ss to i64*
+  store i64 %31, i64* %32, align 16, !tbaa !40
+  %33 = load i64, i64* bitcast (i8** getelementptr inbounds ([4 x i8*], [4 x i8*]* @_ZTTNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE, i64 0, i64 2) to i64*), align 8
+  %34 = bitcast %"class.std::__cxx11::basic_ostringstream"* %ss to i8**
+  %vtable.cast.i.i = inttoptr i64 %31 to i8*
+  %vbase.offset.ptr.i.i = getelementptr i8, i8* %vtable.cast.i.i, i64 -24
+  %35 = bitcast i8* %vbase.offset.ptr.i.i to i64*
+  %vbase.offset.i.i = load i64, i64* %35, align 8
+  %add.ptr.i.i = getelementptr inbounds i8, i8* %26, i64 %vbase.offset.i.i
+  %36 = bitcast i8* %add.ptr.i.i to i64*
+  store i64 %33, i64* %36, align 8, !tbaa !40
+  %vtable3.i.i = load i8*, i8** %34, align 16, !tbaa !40
+  %vbase.offset.ptr4.i.i = getelementptr i8, i8* %vtable3.i.i, i64 -24
+  %37 = bitcast i8* %vbase.offset.ptr4.i.i to i64*
+  %vbase.offset5.i.i = load i64, i64* %37, align 8
+  %add.ptr6.i.i = getelementptr inbounds i8, i8* %26, i64 %vbase.offset5.i.i
+  %38 = bitcast i8* %add.ptr6.i.i to %"class.std::basic_ios"*
+  call void @_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E(%"class.std::basic_ios"* %38, %"class.std::basic_streambuf"* null) #7
+  store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*], [5 x i8*] }, { [5 x i8*], [5 x i8*] }* @_ZTVNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE, i64 0, inrange i32 1, i64 3) to i32 (...)**), i32 (...)*** %29, align 16, !tbaa !40
+  %_M_stringbuf.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1
+  %39 = getelementptr inbounds %"class.std::__cxx11::basic_stringbuf", %"class.std::__cxx11::basic_stringbuf"* %_M_stringbuf.i, i64 0, i32 0, i32 0
+  %40 = bitcast %"class.std::__cxx11::basic_ostringstream"* %ss to <2 x i32 (...)**>*
+  store <2 x i32 (...)**> <i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*], [5 x i8*] }, { [5 x i8*], [5 x i8*] }* @_ZTVNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE, i64 0, inrange i32 0, i64 3) to i32 (...)**), i32 (...)** bitcast (i8** getelementptr inbounds ({ [16 x i8*] }, { [16 x i8*] }* @_ZTVSt15basic_streambufIcSt11char_traitsIcEE, i64 0, inrange i32 0, i64 2) to i32 (...)**)>, <2 x i32 (...)**>* %40, align 16, !tbaa !40
+  %_M_in_beg.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1, i32 0, i32 1
+  %_M_buf_locale.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1, i32 0, i32 7
+  %41 = bitcast i8** %_M_in_beg.i.i.i to i8*
+  call void @llvm.memset.p0i8.i64(i8* %41, i8 0, i64 48, i32 8, i1 false) #7
+  call void @_ZNSt6localeC1Ev(%"class.std::locale"* %_M_buf_locale.i.i.i) #7
+  store i32 (...)** bitcast (i8** getelementptr inbounds ({ [16 x i8*] }, { [16 x i8*] }* @_ZTVNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEE, i64 0, inrange i32 0, i64 2) to i32 (...)**), i32 (...)*** %39, align 8, !tbaa !40
+  %_M_mode.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1, i32 1
+  store i32 16, i32* %_M_mode.i.i, align 8, !tbaa !47
+  %_M_string.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1, i32 2
+  %42 = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1, i32 2, i32 2
+  %43 = bitcast %"class.std::__cxx11::basic_string"* %_M_string.i.i to %union.anon**
+  store %union.anon* %42, %union.anon** %43, align 8, !tbaa !52
+  %_M_string_length.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1, i32 2, i32 1
+  store i64 0, i64* %_M_string_length.i.i.i.i.i, align 8, !tbaa !53
+  %.cast.i.i.i = bitcast %union.anon* %42 to i8*
+  store i8 0, i8* %.cast.i.i.i, align 8, !tbaa !36
+  %vtable.i = load i8*, i8** %34, align 16, !tbaa !40
+  %vbase.offset.ptr.i = getelementptr i8, i8* %vtable.i, i64 -24
+  %44 = bitcast i8* %vbase.offset.ptr.i to i64*
+  %vbase.offset.i = load i64, i64* %44, align 8
+  %add.ptr2.i = getelementptr inbounds i8, i8* %26, i64 %vbase.offset.i
+  %45 = bitcast i8* %add.ptr2.i to %"class.std::basic_ios"*
+  %46 = getelementptr inbounds %"class.std::__cxx11::basic_stringbuf", %"class.std::__cxx11::basic_stringbuf"* %_M_stringbuf.i, i64 0, i32 0
+  call void @_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E(%"class.std::basic_ios"* %45, %"class.std::basic_streambuf"* %46) #7
+  %47 = bitcast %"class.std::__cxx11::basic_ostringstream"* %ss to %"class.std::basic_ostream"*
+  %vtable.i72 = load i8*, i8** %34, align 16, !tbaa !40
+  %vbase.offset.ptr.i73 = getelementptr i8, i8* %vtable.i72, i64 -24
+  %48 = bitcast i8* %vbase.offset.ptr.i73 to i64*
+  %vbase.offset.i74 = load i64, i64* %48, align 8
+  %add.ptr.i = getelementptr inbounds i8, i8* %26, i64 %vbase.offset.i74
+  %_M_flags.i.i = getelementptr inbounds i8, i8* %add.ptr.i, i64 24
+  %49 = bitcast i8* %_M_flags.i.i to i32*
+  %50 = load i32, i32* %49, align 8, !tbaa !57
+  %and.i.i.i.i = and i32 %50, -261
+  %or.i.i.i.i = or i32 %and.i.i.i.i, 4
+  store i32 %or.i.i.i.i, i32* %49, align 4, !tbaa !54
+  %call.i = call dereferenceable(272) %"class.std::basic_ostream"* @_ZNSo9_M_insertIdEERSoT_(%"class.std::basic_ostream"* nonnull %47, double %conv33) #7
+  %51 = bitcast %"class.std::__cxx11::basic_string"* %print_str to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %51) #7
+  call void @_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv(%"class.std::__cxx11::basic_string"* nonnull sret %print_str, %"class.std::__cxx11::basic_stringbuf"* %_M_stringbuf.i) #7
+  %_M_p.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %print_str, i64 0, i32 0, i32 0
+  %52 = load i8*, i8** %_M_p.i.i, align 8, !tbaa !56
+  %_M_string_length.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %print_str, i64 0, i32 1
+  %53 = load i64, i64* %_M_string_length.i, align 8, !tbaa !53
+  %call41 = call i64 @fwrite(i8* %52, i64 1, i64 %53, %struct._IO_FILE* nonnull %call34)
+  %call42 = call i32 @fclose(%struct._IO_FILE* nonnull %call34)
+  %54 = load i8*, i8** %_M_p.i.i, align 8, !tbaa !56
+  %55 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %print_str, i64 0, i32 2
+  %arraydecay.i.i.i.i = bitcast %union.anon* %55 to i8*
+  %cmp.i.i.i = icmp eq i8* %54, %arraydecay.i.i.i.i
+  br i1 %cmp.i.i.i, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit, label %if.then.i.i
+
+if.then.i.i:                                      ; preds = %if.then36
+  call void @_ZdlPv(i8* %54) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit: ; preds = %if.then36, %if.then.i.i
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %51) #7
+  %56 = load i64, i64* bitcast ([4 x i8*]* @_ZTTNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE to i64*), align 8
+  store i64 %56, i64* %32, align 16, !tbaa !40
+  %57 = load i64, i64* bitcast (i8** getelementptr inbounds ([4 x i8*], [4 x i8*]* @_ZTTNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE, i64 0, i64 3) to i64*), align 8
+  %vtable.cast.i.i76 = inttoptr i64 %56 to i8*
+  %vbase.offset.ptr.i.i77 = getelementptr i8, i8* %vtable.cast.i.i76, i64 -24
+  %58 = bitcast i8* %vbase.offset.ptr.i.i77 to i64*
+  %vbase.offset.i.i78 = load i64, i64* %58, align 8
+  %add.ptr.i.i79 = getelementptr inbounds i8, i8* %26, i64 %vbase.offset.i.i78
+  %59 = bitcast i8* %add.ptr.i.i79 to i64*
+  store i64 %57, i64* %59, align 8, !tbaa !40
+  %60 = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1, i32 0, i32 0
+  store i32 (...)** bitcast (i8** getelementptr inbounds ({ [16 x i8*] }, { [16 x i8*] }* @_ZTVNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEE, i64 0, inrange i32 0, i64 2) to i32 (...)**), i32 (...)*** %60, align 8, !tbaa !40
+  %_M_p.i.i.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1, i32 2, i32 0, i32 0
+  %61 = load i8*, i8** %_M_p.i.i.i.i.i.i.i, align 8, !tbaa !56
+  %cmp.i.i.i.i.i.i = icmp eq i8* %61, %.cast.i.i.i
+  br i1 %cmp.i.i.i.i.i.i, label %_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev.exit, label %if.then.i.i.i.i.i
+
+if.then.i.i.i.i.i:                                ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
+  call void @_ZdlPv(i8* %61) #7
+  br label %_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev.exit
+
+_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev.exit: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit, %if.then.i.i.i.i.i
+  store i32 (...)** bitcast (i8** getelementptr inbounds ({ [16 x i8*] }, { [16 x i8*] }* @_ZTVSt15basic_streambufIcSt11char_traitsIcEE, i64 0, inrange i32 0, i64 2) to i32 (...)**), i32 (...)*** %60, align 8, !tbaa !40
+  call void @_ZNSt6localeD1Ev(%"class.std::locale"* nonnull %_M_buf_locale.i.i.i) #7
+  %62 = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 2, i32 0
+  call void @_ZNSt8ios_baseD2Ev(%"class.std::ios_base"* %62) #7
+  call void @llvm.lifetime.end(i64 376, i8* nonnull %26) #7
+  br label %if.end43
+
+if.end43:                                         ; preds = %for.cond.cleanup, %_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev.exit
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z10var_0_nodePvmS_m(i8* %t1, i64 %bytes_t1, i8* %t2, i64 %bytes_t2) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 2, i8* %t1, i8* %t2, i32 0) #7
+  %call = tail call i8* @__visc__tensor_convolution(i8* %t1, i8* %t2, i32 1, i32 1, i32 1, i32 1) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+declare void @__visc__hint(i32) local_unnamed_addr #3
+
+declare void @__visc__attributes(i32, ...) local_unnamed_addr #3
+
+declare i8* @__visc__tensor_convolution(i8*, i8*, i32, i32, i32, i32) local_unnamed_addr #3
+
+declare void @__visc__return(i32, ...) local_unnamed_addr #3
+
+; Function Attrs: nounwind uwtable
+define void @_Z10var_1_nodePvmS_m(i8* %t1, i64 %bytes_t1, i8* %t2, i64 %bytes_t2) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 2, i8* %t1, i8* %t2, i32 0) #7
+  %call = tail call i8* @__visc__tensor_add(i8* %t1, i8* %t2) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+declare i8* @__visc__tensor_add(i8*, i8*) local_unnamed_addr #3
+
+; Function Attrs: nounwind uwtable
+define void @_Z10var_2_nodePvm(i8* %t1, i64 %bytes_t1) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 1, i8* %t1, i32 0) #7
+  %call = tail call i8* @__visc__tensor_relu(i8* %t1) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+declare i8* @__visc__tensor_relu(i8*) local_unnamed_addr #3
+
+; Function Attrs: nounwind uwtable
+define void @_Z10var_3_nodePvmS_m(i8* %t1, i64 %bytes_t1, i8* %t2, i64 %bytes_t2) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 2, i8* %t1, i8* %t2, i32 0) #7
+  %call = tail call i8* @__visc__tensor_convolution(i8* %t1, i8* %t2, i32 1, i32 1, i32 1, i32 1) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z10var_4_nodePvmS_m(i8* %t1, i64 %bytes_t1, i8* %t2, i64 %bytes_t2) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 2, i8* %t1, i8* %t2, i32 0) #7
+  %call = tail call i8* @__visc__tensor_add(i8* %t1, i8* %t2) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z10var_5_nodePvm(i8* %t1, i64 %bytes_t1) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 1, i8* %t1, i32 0) #7
+  %call = tail call i8* @__visc__tensor_relu(i8* %t1) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z10var_6_nodePvm(i8* %t1, i64 %bytes_t1) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 1, i8* %t1, i32 0) #7
+  %call = tail call i8* @__visc__tensor_pool_max(i8* %t1, i32 2, i32 2, i32 0, i32 0, i32 2, i32 2) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+declare i8* @__visc__tensor_pool_max(i8*, i32, i32, i32, i32, i32, i32) local_unnamed_addr #3
+
+; Function Attrs: nounwind uwtable
+define void @_Z10var_7_nodePvmS_m(i8* %t1, i64 %bytes_t1, i8* %t2, i64 %bytes_t2) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 2, i8* %t1, i8* %t2, i32 0) #7
+  %call = tail call i8* @__visc__tensor_convolution(i8* %t1, i8* %t2, i32 1, i32 1, i32 1, i32 1) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z10var_8_nodePvmS_m(i8* %t1, i64 %bytes_t1, i8* %t2, i64 %bytes_t2) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 2, i8* %t1, i8* %t2, i32 0) #7
+  %call = tail call i8* @__visc__tensor_add(i8* %t1, i8* %t2) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z10var_9_nodePvm(i8* %t1, i64 %bytes_t1) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 1, i8* %t1, i32 0) #7
+  %call = tail call i8* @__visc__tensor_relu(i8* %t1) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_10_nodePvmS_m(i8* %t1, i64 %bytes_t1, i8* %t2, i64 %bytes_t2) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 2, i8* %t1, i8* %t2, i32 0) #7
+  %call = tail call i8* @__visc__tensor_convolution(i8* %t1, i8* %t2, i32 1, i32 1, i32 1, i32 1) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_11_nodePvmS_m(i8* %t1, i64 %bytes_t1, i8* %t2, i64 %bytes_t2) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 2, i8* %t1, i8* %t2, i32 0) #7
+  %call = tail call i8* @__visc__tensor_add(i8* %t1, i8* %t2) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_12_nodePvm(i8* %t1, i64 %bytes_t1) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 1, i8* %t1, i32 0) #7
+  %call = tail call i8* @__visc__tensor_relu(i8* %t1) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_13_nodePvm(i8* %t1, i64 %bytes_t1) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 1, i8* %t1, i32 0) #7
+  %call = tail call i8* @__visc__tensor_pool_max(i8* %t1, i32 2, i32 2, i32 0, i32 0, i32 2, i32 2) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_14_nodePvmS_m(i8* %t1, i64 %bytes_t1, i8* %t2, i64 %bytes_t2) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 2, i8* %t1, i8* %t2, i32 0) #7
+  %call = tail call i8* @__visc__tensor_convolution(i8* %t1, i8* %t2, i32 1, i32 1, i32 1, i32 1) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_15_nodePvmS_m(i8* %t1, i64 %bytes_t1, i8* %t2, i64 %bytes_t2) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 2, i8* %t1, i8* %t2, i32 0) #7
+  %call = tail call i8* @__visc__tensor_add(i8* %t1, i8* %t2) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_16_nodePvm(i8* %t1, i64 %bytes_t1) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 1, i8* %t1, i32 0) #7
+  %call = tail call i8* @__visc__tensor_relu(i8* %t1) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_17_nodePvmS_m(i8* %t1, i64 %bytes_t1, i8* %t2, i64 %bytes_t2) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 2, i8* %t1, i8* %t2, i32 0) #7
+  %call = tail call i8* @__visc__tensor_convolution(i8* %t1, i8* %t2, i32 1, i32 1, i32 1, i32 1) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_18_nodePvmS_m(i8* %t1, i64 %bytes_t1, i8* %t2, i64 %bytes_t2) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 2, i8* %t1, i8* %t2, i32 0) #7
+  %call = tail call i8* @__visc__tensor_add(i8* %t1, i8* %t2) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_19_nodePvm(i8* %t1, i64 %bytes_t1) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 1, i8* %t1, i32 0) #7
+  %call = tail call i8* @__visc__tensor_relu(i8* %t1) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_20_nodePvmS_m(i8* %t1, i64 %bytes_t1, i8* %t2, i64 %bytes_t2) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 2, i8* %t1, i8* %t2, i32 0) #7
+  %call = tail call i8* @__visc__tensor_convolution(i8* %t1, i8* %t2, i32 1, i32 1, i32 1, i32 1) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_21_nodePvmS_m(i8* %t1, i64 %bytes_t1, i8* %t2, i64 %bytes_t2) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 2, i8* %t1, i8* %t2, i32 0) #7
+  %call = tail call i8* @__visc__tensor_add(i8* %t1, i8* %t2) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_22_nodePvm(i8* %t1, i64 %bytes_t1) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 1, i8* %t1, i32 0) #7
+  %call = tail call i8* @__visc__tensor_relu(i8* %t1) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_23_nodePvm(i8* %t1, i64 %bytes_t1) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 1, i8* %t1, i32 0) #7
+  %call = tail call i8* @__visc__tensor_pool_max(i8* %t1, i32 2, i32 2, i32 0, i32 0, i32 2, i32 2) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_24_nodePvmS_m(i8* %t1, i64 %bytes_t1, i8* %t2, i64 %bytes_t2) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 2, i8* %t1, i8* %t2, i32 0) #7
+  %call = tail call i8* @__visc__tensor_convolution(i8* %t1, i8* %t2, i32 1, i32 1, i32 1, i32 1) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_25_nodePvmS_m(i8* %t1, i64 %bytes_t1, i8* %t2, i64 %bytes_t2) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 2, i8* %t1, i8* %t2, i32 0) #7
+  %call = tail call i8* @__visc__tensor_add(i8* %t1, i8* %t2) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_26_nodePvm(i8* %t1, i64 %bytes_t1) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 1, i8* %t1, i32 0) #7
+  %call = tail call i8* @__visc__tensor_relu(i8* %t1) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_27_nodePvmS_m(i8* %t1, i64 %bytes_t1, i8* %t2, i64 %bytes_t2) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 2, i8* %t1, i8* %t2, i32 0) #7
+  %call = tail call i8* @__visc__tensor_convolution(i8* %t1, i8* %t2, i32 1, i32 1, i32 1, i32 1) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_28_nodePvmS_m(i8* %t1, i64 %bytes_t1, i8* %t2, i64 %bytes_t2) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 2, i8* %t1, i8* %t2, i32 0) #7
+  %call = tail call i8* @__visc__tensor_add(i8* %t1, i8* %t2) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_29_nodePvm(i8* %t1, i64 %bytes_t1) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 1, i8* %t1, i32 0) #7
+  %call = tail call i8* @__visc__tensor_relu(i8* %t1) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_30_nodePvmS_m(i8* %t1, i64 %bytes_t1, i8* %t2, i64 %bytes_t2) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 2, i8* %t1, i8* %t2, i32 0) #7
+  %call = tail call i8* @__visc__tensor_convolution(i8* %t1, i8* %t2, i32 1, i32 1, i32 1, i32 1) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_31_nodePvmS_m(i8* %t1, i64 %bytes_t1, i8* %t2, i64 %bytes_t2) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 2, i8* %t1, i8* %t2, i32 0) #7
+  %call = tail call i8* @__visc__tensor_add(i8* %t1, i8* %t2) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_32_nodePvm(i8* %t1, i64 %bytes_t1) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 1, i8* %t1, i32 0) #7
+  %call = tail call i8* @__visc__tensor_relu(i8* %t1) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_33_nodePvm(i8* %t1, i64 %bytes_t1) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 1, i8* %t1, i32 0) #7
+  %call = tail call i8* @__visc__tensor_pool_max(i8* %t1, i32 2, i32 2, i32 0, i32 0, i32 2, i32 2) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_34_nodePvmS_m(i8* %t1, i64 %bytes_t1, i8* %t2, i64 %bytes_t2) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 2, i8* %t1, i8* %t2, i32 0) #7
+  %call = tail call i8* @__visc__tensor_convolution(i8* %t1, i8* %t2, i32 1, i32 1, i32 1, i32 1) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_35_nodePvmS_m(i8* %t1, i64 %bytes_t1, i8* %t2, i64 %bytes_t2) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 2, i8* %t1, i8* %t2, i32 0) #7
+  %call = tail call i8* @__visc__tensor_add(i8* %t1, i8* %t2) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_36_nodePvm(i8* %t1, i64 %bytes_t1) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 1, i8* %t1, i32 0) #7
+  %call = tail call i8* @__visc__tensor_relu(i8* %t1) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_37_nodePvmS_m(i8* %t1, i64 %bytes_t1, i8* %t2, i64 %bytes_t2) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 2, i8* %t1, i8* %t2, i32 0) #7
+  %call = tail call i8* @__visc__tensor_convolution(i8* %t1, i8* %t2, i32 1, i32 1, i32 1, i32 1) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_38_nodePvmS_m(i8* %t1, i64 %bytes_t1, i8* %t2, i64 %bytes_t2) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 2, i8* %t1, i8* %t2, i32 0) #7
+  %call = tail call i8* @__visc__tensor_add(i8* %t1, i8* %t2) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_39_nodePvm(i8* %t1, i64 %bytes_t1) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 1, i8* %t1, i32 0) #7
+  %call = tail call i8* @__visc__tensor_relu(i8* %t1) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_40_nodePvmS_m(i8* %t1, i64 %bytes_t1, i8* %t2, i64 %bytes_t2) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 2, i8* %t1, i8* %t2, i32 0) #7
+  %call = tail call i8* @__visc__tensor_convolution(i8* %t1, i8* %t2, i32 1, i32 1, i32 1, i32 1) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_41_nodePvmS_m(i8* %t1, i64 %bytes_t1, i8* %t2, i64 %bytes_t2) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 2, i8* %t1, i8* %t2, i32 0) #7
+  %call = tail call i8* @__visc__tensor_add(i8* %t1, i8* %t2) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_42_nodePvm(i8* %t1, i64 %bytes_t1) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 1, i8* %t1, i32 0) #7
+  %call = tail call i8* @__visc__tensor_relu(i8* %t1) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_43_nodePvm(i8* %t1, i64 %bytes_t1) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 1, i8* %t1, i32 0) #7
+  %call = tail call i8* @__visc__tensor_pool_max(i8* %t1, i32 2, i32 2, i32 0, i32 0, i32 2, i32 2) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_44_nodePvmS_m(i8* %t1, i64 %bytes_t1, i8* %t2, i64 %bytes_t2) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 2, i8* %t1, i8* %t2, i32 0) #7
+  %call = tail call i8* @__visc__tensor_mul(i8* %t1, i8* %t2) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+declare i8* @__visc__tensor_mul(i8*, i8*) local_unnamed_addr #3
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_45_nodePvmS_m(i8* %t1, i64 %bytes_t1, i8* %t2, i64 %bytes_t2) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 2, i8* %t1, i8* %t2, i32 0) #7
+  %call = tail call i8* @__visc__tensor_add(i8* %t1, i8* %t2) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_46_nodePvm(i8* %t1, i64 %bytes_t1) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 1, i8* %t1, i32 0) #7
+  %call = tail call i8* @__visc__tensor_relu(i8* %t1) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_47_nodePvmS_m(i8* %t1, i64 %bytes_t1, i8* %t2, i64 %bytes_t2) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 2, i8* %t1, i8* %t2, i32 0) #7
+  %call = tail call i8* @__visc__tensor_mul(i8* %t1, i8* %t2) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_48_nodePvmS_m(i8* %t1, i64 %bytes_t1, i8* %t2, i64 %bytes_t2) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 2, i8* %t1, i8* %t2, i32 0) #7
+  %call = tail call i8* @__visc__tensor_add(i8* %t1, i8* %t2) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z11var_49_nodePvm(i8* %t1, i64 %bytes_t1) #0 {
+entry:
+  tail call void @__visc__hint(i32 4) #7
+  tail call void (i32, ...) @__visc__attributes(i32 1, i8* %t1, i32 0) #7
+  %call = tail call i8* @__visc__tensor_softmax(i8* %t1) #7
+  tail call void (i32, ...) @__visc__return(i32 2, i8* %call, i64 0) #7
+  ret void
+}
+
+declare i8* @__visc__tensor_softmax(i8*) local_unnamed_addr #3
+
+; Function Attrs: nounwind uwtable
+define void @_Z4rootPvmS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_m(i8* %input, i64 %input_bytes, i8* %conv2d_1_w, i64 %conv2d_1_w_bytes, i8* %conv2d_1_b, i64 %conv2d_1_b_bytes, i8* %conv2d_2_w, i64 %conv2d_2_w_bytes, i8* %conv2d_2_b, i64 %conv2d_2_b_bytes, i8* %conv2d_3_w, i64 %conv2d_3_w_bytes, i8* %conv2d_3_b, i64 %conv2d_3_b_bytes, i8* %conv2d_4_w, i64 %conv2d_4_w_bytes, i8* %conv2d_4_b, i64 %conv2d_4_b_bytes, i8* %conv2d_5_w, i64 %conv2d_5_w_bytes, i8* %conv2d_5_b, i64 %conv2d_5_b_bytes, i8* %conv2d_6_w, i64 %conv2d_6_w_bytes, i8* %conv2d_6_b, i64 %conv2d_6_b_bytes, i8* %conv2d_7_w, i64 %conv2d_7_w_bytes, i8* %conv2d_7_b, i64 %conv2d_7_b_bytes, i8* %conv2d_8_w, i64 %conv2d_8_w_bytes, i8* %conv2d_8_b, i64 %conv2d_8_b_bytes, i8* %conv2d_9_w, i64 %conv2d_9_w_bytes, i8* %conv2d_9_b, i64 %conv2d_9_b_bytes, i8* %conv2d_10_w, i64 %conv2d_10_w_bytes, i8* %conv2d_10_b, i64 %conv2d_10_b_bytes, i8* %conv2d_11_w, i64 %conv2d_11_w_bytes, i8* %conv2d_11_b, i64 %conv2d_11_b_bytes, i8* %conv2d_12_w, i64 %conv2d_12_w_bytes, i8* %conv2d_12_b, i64 %conv2d_12_b_bytes, i8* %conv2d_13_w, i64 %conv2d_13_w_bytes, i8* %conv2d_13_b, i64 %conv2d_13_b_bytes, i8* %dense_1_w, i64 %dense_1_w_bytes, i8* %dense_1_b, i64 %dense_1_b_bytes, i8* %dense_2_w, i64 %dense_2_w_bytes, i8* %dense_2_b, i64 %dense_2_b_bytes) #0 {
+entry:
+  tail call void @__visc__hint(i32 1) #7
+  tail call void (i32, ...) @__visc__attributes(i32 31, i8* %input, i8* %conv2d_1_w, i8* %conv2d_1_b, i8* %conv2d_2_w, i8* %conv2d_2_b, i8* %conv2d_3_w, i8* %conv2d_3_b, i8* %conv2d_4_w, i8* %conv2d_4_b, i8* %conv2d_5_w, i8* %conv2d_5_b, i8* %conv2d_6_w, i8* %conv2d_6_b, i8* %conv2d_7_w, i8* %conv2d_7_b, i8* %conv2d_8_w, i8* %conv2d_8_b, i8* %conv2d_9_w, i8* %conv2d_9_b, i8* %conv2d_10_w, i8* %conv2d_10_b, i8* %conv2d_11_w, i8* %conv2d_11_b, i8* %conv2d_12_w, i8* %conv2d_12_b, i8* %conv2d_13_w, i8* %conv2d_13_b, i8* %dense_1_w, i8* %dense_1_b, i8* %dense_2_w, i8* %dense_2_b, i32 0) #7
+  %call = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64, i8*, i64)* nonnull @_Z10var_0_nodePvmS_m) #7
+  tail call void @__visc__bindIn(i8* %call, i32 0, i32 0, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call, i32 1, i32 1, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call, i32 2, i32 2, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call, i32 3, i32 3, i32 0) #7
+  %call1 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64, i8*, i64)* nonnull @_Z10var_1_nodePvmS_m) #7
+  %call2 = tail call i8* @__visc__edge(i8* %call, i8* %call1, i32 1, i32 0, i32 0, i32 0) #7
+  %call3 = tail call i8* @__visc__edge(i8* %call, i8* %call1, i32 1, i32 1, i32 1, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call1, i32 4, i32 2, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call1, i32 5, i32 3, i32 0) #7
+  %call4 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64)* nonnull @_Z10var_2_nodePvm) #7
+  %call5 = tail call i8* @__visc__edge(i8* %call1, i8* %call4, i32 1, i32 0, i32 0, i32 0) #7
+  %call6 = tail call i8* @__visc__edge(i8* %call1, i8* %call4, i32 1, i32 1, i32 1, i32 0) #7
+  %call7 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64, i8*, i64)* nonnull @_Z10var_3_nodePvmS_m) #7
+  %call8 = tail call i8* @__visc__edge(i8* %call4, i8* %call7, i32 1, i32 0, i32 0, i32 0) #7
+  %call9 = tail call i8* @__visc__edge(i8* %call4, i8* %call7, i32 1, i32 1, i32 1, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call7, i32 6, i32 2, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call7, i32 7, i32 3, i32 0) #7
+  %call10 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64, i8*, i64)* nonnull @_Z10var_4_nodePvmS_m) #7
+  %call11 = tail call i8* @__visc__edge(i8* %call7, i8* %call10, i32 1, i32 0, i32 0, i32 0) #7
+  %call12 = tail call i8* @__visc__edge(i8* %call7, i8* %call10, i32 1, i32 1, i32 1, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call10, i32 8, i32 2, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call10, i32 9, i32 3, i32 0) #7
+  %call13 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64)* nonnull @_Z10var_5_nodePvm) #7
+  %call14 = tail call i8* @__visc__edge(i8* %call10, i8* %call13, i32 1, i32 0, i32 0, i32 0) #7
+  %call15 = tail call i8* @__visc__edge(i8* %call10, i8* %call13, i32 1, i32 1, i32 1, i32 0) #7
+  %call16 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64)* nonnull @_Z10var_6_nodePvm) #7
+  %call17 = tail call i8* @__visc__edge(i8* %call13, i8* %call16, i32 1, i32 0, i32 0, i32 0) #7
+  %call18 = tail call i8* @__visc__edge(i8* %call13, i8* %call16, i32 1, i32 1, i32 1, i32 0) #7
+  %call19 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64, i8*, i64)* nonnull @_Z10var_7_nodePvmS_m) #7
+  %call20 = tail call i8* @__visc__edge(i8* %call16, i8* %call19, i32 1, i32 0, i32 0, i32 0) #7
+  %call21 = tail call i8* @__visc__edge(i8* %call16, i8* %call19, i32 1, i32 1, i32 1, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call19, i32 10, i32 2, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call19, i32 11, i32 3, i32 0) #7
+  %call22 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64, i8*, i64)* nonnull @_Z10var_8_nodePvmS_m) #7
+  %call23 = tail call i8* @__visc__edge(i8* %call19, i8* %call22, i32 1, i32 0, i32 0, i32 0) #7
+  %call24 = tail call i8* @__visc__edge(i8* %call19, i8* %call22, i32 1, i32 1, i32 1, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call22, i32 12, i32 2, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call22, i32 13, i32 3, i32 0) #7
+  %call25 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64)* nonnull @_Z10var_9_nodePvm) #7
+  %call26 = tail call i8* @__visc__edge(i8* %call22, i8* %call25, i32 1, i32 0, i32 0, i32 0) #7
+  %call27 = tail call i8* @__visc__edge(i8* %call22, i8* %call25, i32 1, i32 1, i32 1, i32 0) #7
+  %call28 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64, i8*, i64)* nonnull @_Z11var_10_nodePvmS_m) #7
+  %call29 = tail call i8* @__visc__edge(i8* %call25, i8* %call28, i32 1, i32 0, i32 0, i32 0) #7
+  %call30 = tail call i8* @__visc__edge(i8* %call25, i8* %call28, i32 1, i32 1, i32 1, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call28, i32 14, i32 2, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call28, i32 15, i32 3, i32 0) #7
+  %call31 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64, i8*, i64)* nonnull @_Z11var_11_nodePvmS_m) #7
+  %call32 = tail call i8* @__visc__edge(i8* %call28, i8* %call31, i32 1, i32 0, i32 0, i32 0) #7
+  %call33 = tail call i8* @__visc__edge(i8* %call28, i8* %call31, i32 1, i32 1, i32 1, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call31, i32 16, i32 2, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call31, i32 17, i32 3, i32 0) #7
+  %call34 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64)* nonnull @_Z11var_12_nodePvm) #7
+  %call35 = tail call i8* @__visc__edge(i8* %call31, i8* %call34, i32 1, i32 0, i32 0, i32 0) #7
+  %call36 = tail call i8* @__visc__edge(i8* %call31, i8* %call34, i32 1, i32 1, i32 1, i32 0) #7
+  %call37 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64)* nonnull @_Z11var_13_nodePvm) #7
+  %call38 = tail call i8* @__visc__edge(i8* %call34, i8* %call37, i32 1, i32 0, i32 0, i32 0) #7
+  %call39 = tail call i8* @__visc__edge(i8* %call34, i8* %call37, i32 1, i32 1, i32 1, i32 0) #7
+  %call40 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64, i8*, i64)* nonnull @_Z11var_14_nodePvmS_m) #7
+  %call41 = tail call i8* @__visc__edge(i8* %call37, i8* %call40, i32 1, i32 0, i32 0, i32 0) #7
+  %call42 = tail call i8* @__visc__edge(i8* %call37, i8* %call40, i32 1, i32 1, i32 1, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call40, i32 18, i32 2, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call40, i32 19, i32 3, i32 0) #7
+  %call43 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64, i8*, i64)* nonnull @_Z11var_15_nodePvmS_m) #7
+  %call44 = tail call i8* @__visc__edge(i8* %call40, i8* %call43, i32 1, i32 0, i32 0, i32 0) #7
+  %call45 = tail call i8* @__visc__edge(i8* %call40, i8* %call43, i32 1, i32 1, i32 1, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call43, i32 20, i32 2, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call43, i32 21, i32 3, i32 0) #7
+  %call46 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64)* nonnull @_Z11var_16_nodePvm) #7
+  %call47 = tail call i8* @__visc__edge(i8* %call43, i8* %call46, i32 1, i32 0, i32 0, i32 0) #7
+  %call48 = tail call i8* @__visc__edge(i8* %call43, i8* %call46, i32 1, i32 1, i32 1, i32 0) #7
+  %call49 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64, i8*, i64)* nonnull @_Z11var_17_nodePvmS_m) #7
+  %call50 = tail call i8* @__visc__edge(i8* %call46, i8* %call49, i32 1, i32 0, i32 0, i32 0) #7
+  %call51 = tail call i8* @__visc__edge(i8* %call46, i8* %call49, i32 1, i32 1, i32 1, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call49, i32 22, i32 2, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call49, i32 23, i32 3, i32 0) #7
+  %call52 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64, i8*, i64)* nonnull @_Z11var_18_nodePvmS_m) #7
+  %call53 = tail call i8* @__visc__edge(i8* %call49, i8* %call52, i32 1, i32 0, i32 0, i32 0) #7
+  %call54 = tail call i8* @__visc__edge(i8* %call49, i8* %call52, i32 1, i32 1, i32 1, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call52, i32 24, i32 2, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call52, i32 25, i32 3, i32 0) #7
+  %call55 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64)* nonnull @_Z11var_19_nodePvm) #7
+  %call56 = tail call i8* @__visc__edge(i8* %call52, i8* %call55, i32 1, i32 0, i32 0, i32 0) #7
+  %call57 = tail call i8* @__visc__edge(i8* %call52, i8* %call55, i32 1, i32 1, i32 1, i32 0) #7
+  %call58 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64, i8*, i64)* nonnull @_Z11var_20_nodePvmS_m) #7
+  %call59 = tail call i8* @__visc__edge(i8* %call55, i8* %call58, i32 1, i32 0, i32 0, i32 0) #7
+  %call60 = tail call i8* @__visc__edge(i8* %call55, i8* %call58, i32 1, i32 1, i32 1, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call58, i32 26, i32 2, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call58, i32 27, i32 3, i32 0) #7
+  %call61 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64, i8*, i64)* nonnull @_Z11var_21_nodePvmS_m) #7
+  %call62 = tail call i8* @__visc__edge(i8* %call58, i8* %call61, i32 1, i32 0, i32 0, i32 0) #7
+  %call63 = tail call i8* @__visc__edge(i8* %call58, i8* %call61, i32 1, i32 1, i32 1, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call61, i32 28, i32 2, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call61, i32 29, i32 3, i32 0) #7
+  %call64 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64)* nonnull @_Z11var_22_nodePvm) #7
+  %call65 = tail call i8* @__visc__edge(i8* %call61, i8* %call64, i32 1, i32 0, i32 0, i32 0) #7
+  %call66 = tail call i8* @__visc__edge(i8* %call61, i8* %call64, i32 1, i32 1, i32 1, i32 0) #7
+  %call67 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64)* nonnull @_Z11var_23_nodePvm) #7
+  %call68 = tail call i8* @__visc__edge(i8* %call64, i8* %call67, i32 1, i32 0, i32 0, i32 0) #7
+  %call69 = tail call i8* @__visc__edge(i8* %call64, i8* %call67, i32 1, i32 1, i32 1, i32 0) #7
+  %call70 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64, i8*, i64)* nonnull @_Z11var_24_nodePvmS_m) #7
+  %call71 = tail call i8* @__visc__edge(i8* %call67, i8* %call70, i32 1, i32 0, i32 0, i32 0) #7
+  %call72 = tail call i8* @__visc__edge(i8* %call67, i8* %call70, i32 1, i32 1, i32 1, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call70, i32 30, i32 2, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call70, i32 31, i32 3, i32 0) #7
+  %call73 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64, i8*, i64)* nonnull @_Z11var_25_nodePvmS_m) #7
+  %call74 = tail call i8* @__visc__edge(i8* %call70, i8* %call73, i32 1, i32 0, i32 0, i32 0) #7
+  %call75 = tail call i8* @__visc__edge(i8* %call70, i8* %call73, i32 1, i32 1, i32 1, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call73, i32 32, i32 2, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call73, i32 33, i32 3, i32 0) #7
+  %call76 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64)* nonnull @_Z11var_26_nodePvm) #7
+  %call77 = tail call i8* @__visc__edge(i8* %call73, i8* %call76, i32 1, i32 0, i32 0, i32 0) #7
+  %call78 = tail call i8* @__visc__edge(i8* %call73, i8* %call76, i32 1, i32 1, i32 1, i32 0) #7
+  %call79 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64, i8*, i64)* nonnull @_Z11var_27_nodePvmS_m) #7
+  %call80 = tail call i8* @__visc__edge(i8* %call76, i8* %call79, i32 1, i32 0, i32 0, i32 0) #7
+  %call81 = tail call i8* @__visc__edge(i8* %call76, i8* %call79, i32 1, i32 1, i32 1, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call79, i32 34, i32 2, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call79, i32 35, i32 3, i32 0) #7
+  %call82 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64, i8*, i64)* nonnull @_Z11var_28_nodePvmS_m) #7
+  %call83 = tail call i8* @__visc__edge(i8* %call79, i8* %call82, i32 1, i32 0, i32 0, i32 0) #7
+  %call84 = tail call i8* @__visc__edge(i8* %call79, i8* %call82, i32 1, i32 1, i32 1, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call82, i32 36, i32 2, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call82, i32 37, i32 3, i32 0) #7
+  %call85 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64)* nonnull @_Z11var_29_nodePvm) #7
+  %call86 = tail call i8* @__visc__edge(i8* %call82, i8* %call85, i32 1, i32 0, i32 0, i32 0) #7
+  %call87 = tail call i8* @__visc__edge(i8* %call82, i8* %call85, i32 1, i32 1, i32 1, i32 0) #7
+  %call88 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64, i8*, i64)* nonnull @_Z11var_30_nodePvmS_m) #7
+  %call89 = tail call i8* @__visc__edge(i8* %call85, i8* %call88, i32 1, i32 0, i32 0, i32 0) #7
+  %call90 = tail call i8* @__visc__edge(i8* %call85, i8* %call88, i32 1, i32 1, i32 1, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call88, i32 38, i32 2, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call88, i32 39, i32 3, i32 0) #7
+  %call91 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64, i8*, i64)* nonnull @_Z11var_31_nodePvmS_m) #7
+  %call92 = tail call i8* @__visc__edge(i8* %call88, i8* %call91, i32 1, i32 0, i32 0, i32 0) #7
+  %call93 = tail call i8* @__visc__edge(i8* %call88, i8* %call91, i32 1, i32 1, i32 1, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call91, i32 40, i32 2, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call91, i32 41, i32 3, i32 0) #7
+  %call94 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64)* nonnull @_Z11var_32_nodePvm) #7
+  %call95 = tail call i8* @__visc__edge(i8* %call91, i8* %call94, i32 1, i32 0, i32 0, i32 0) #7
+  %call96 = tail call i8* @__visc__edge(i8* %call91, i8* %call94, i32 1, i32 1, i32 1, i32 0) #7
+  %call97 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64)* nonnull @_Z11var_33_nodePvm) #7
+  %call98 = tail call i8* @__visc__edge(i8* %call94, i8* %call97, i32 1, i32 0, i32 0, i32 0) #7
+  %call99 = tail call i8* @__visc__edge(i8* %call94, i8* %call97, i32 1, i32 1, i32 1, i32 0) #7
+  %call100 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64, i8*, i64)* nonnull @_Z11var_34_nodePvmS_m) #7
+  %call101 = tail call i8* @__visc__edge(i8* %call97, i8* %call100, i32 1, i32 0, i32 0, i32 0) #7
+  %call102 = tail call i8* @__visc__edge(i8* %call97, i8* %call100, i32 1, i32 1, i32 1, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call100, i32 42, i32 2, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call100, i32 43, i32 3, i32 0) #7
+  %call103 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64, i8*, i64)* nonnull @_Z11var_35_nodePvmS_m) #7
+  %call104 = tail call i8* @__visc__edge(i8* %call100, i8* %call103, i32 1, i32 0, i32 0, i32 0) #7
+  %call105 = tail call i8* @__visc__edge(i8* %call100, i8* %call103, i32 1, i32 1, i32 1, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call103, i32 44, i32 2, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call103, i32 45, i32 3, i32 0) #7
+  %call106 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64)* nonnull @_Z11var_36_nodePvm) #7
+  %call107 = tail call i8* @__visc__edge(i8* %call103, i8* %call106, i32 1, i32 0, i32 0, i32 0) #7
+  %call108 = tail call i8* @__visc__edge(i8* %call103, i8* %call106, i32 1, i32 1, i32 1, i32 0) #7
+  %call109 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64, i8*, i64)* nonnull @_Z11var_37_nodePvmS_m) #7
+  %call110 = tail call i8* @__visc__edge(i8* %call106, i8* %call109, i32 1, i32 0, i32 0, i32 0) #7
+  %call111 = tail call i8* @__visc__edge(i8* %call106, i8* %call109, i32 1, i32 1, i32 1, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call109, i32 46, i32 2, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call109, i32 47, i32 3, i32 0) #7
+  %call112 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64, i8*, i64)* nonnull @_Z11var_38_nodePvmS_m) #7
+  %call113 = tail call i8* @__visc__edge(i8* %call109, i8* %call112, i32 1, i32 0, i32 0, i32 0) #7
+  %call114 = tail call i8* @__visc__edge(i8* %call109, i8* %call112, i32 1, i32 1, i32 1, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call112, i32 48, i32 2, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call112, i32 49, i32 3, i32 0) #7
+  %call115 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64)* nonnull @_Z11var_39_nodePvm) #7
+  %call116 = tail call i8* @__visc__edge(i8* %call112, i8* %call115, i32 1, i32 0, i32 0, i32 0) #7
+  %call117 = tail call i8* @__visc__edge(i8* %call112, i8* %call115, i32 1, i32 1, i32 1, i32 0) #7
+  %call118 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64, i8*, i64)* nonnull @_Z11var_40_nodePvmS_m) #7
+  %call119 = tail call i8* @__visc__edge(i8* %call115, i8* %call118, i32 1, i32 0, i32 0, i32 0) #7
+  %call120 = tail call i8* @__visc__edge(i8* %call115, i8* %call118, i32 1, i32 1, i32 1, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call118, i32 50, i32 2, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call118, i32 51, i32 3, i32 0) #7
+  %call121 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64, i8*, i64)* nonnull @_Z11var_41_nodePvmS_m) #7
+  %call122 = tail call i8* @__visc__edge(i8* %call118, i8* %call121, i32 1, i32 0, i32 0, i32 0) #7
+  %call123 = tail call i8* @__visc__edge(i8* %call118, i8* %call121, i32 1, i32 1, i32 1, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call121, i32 52, i32 2, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call121, i32 53, i32 3, i32 0) #7
+  %call124 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64)* nonnull @_Z11var_42_nodePvm) #7
+  %call125 = tail call i8* @__visc__edge(i8* %call121, i8* %call124, i32 1, i32 0, i32 0, i32 0) #7
+  %call126 = tail call i8* @__visc__edge(i8* %call121, i8* %call124, i32 1, i32 1, i32 1, i32 0) #7
+  %call127 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64)* nonnull @_Z11var_43_nodePvm) #7
+  %call128 = tail call i8* @__visc__edge(i8* %call124, i8* %call127, i32 1, i32 0, i32 0, i32 0) #7
+  %call129 = tail call i8* @__visc__edge(i8* %call124, i8* %call127, i32 1, i32 1, i32 1, i32 0) #7
+  %call130 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64, i8*, i64)* nonnull @_Z11var_44_nodePvmS_m) #7
+  %call131 = tail call i8* @__visc__edge(i8* %call127, i8* %call130, i32 1, i32 0, i32 0, i32 0) #7
+  %call132 = tail call i8* @__visc__edge(i8* %call127, i8* %call130, i32 1, i32 1, i32 1, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call130, i32 54, i32 2, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call130, i32 55, i32 3, i32 0) #7
+  %call133 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64, i8*, i64)* nonnull @_Z11var_45_nodePvmS_m) #7
+  %call134 = tail call i8* @__visc__edge(i8* %call130, i8* %call133, i32 1, i32 0, i32 0, i32 0) #7
+  %call135 = tail call i8* @__visc__edge(i8* %call130, i8* %call133, i32 1, i32 1, i32 1, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call133, i32 56, i32 2, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call133, i32 57, i32 3, i32 0) #7
+  %call136 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64)* nonnull @_Z11var_46_nodePvm) #7
+  %call137 = tail call i8* @__visc__edge(i8* %call133, i8* %call136, i32 1, i32 0, i32 0, i32 0) #7
+  %call138 = tail call i8* @__visc__edge(i8* %call133, i8* %call136, i32 1, i32 1, i32 1, i32 0) #7
+  %call139 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64, i8*, i64)* nonnull @_Z11var_47_nodePvmS_m) #7
+  %call140 = tail call i8* @__visc__edge(i8* %call136, i8* %call139, i32 1, i32 0, i32 0, i32 0) #7
+  %call141 = tail call i8* @__visc__edge(i8* %call136, i8* %call139, i32 1, i32 1, i32 1, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call139, i32 58, i32 2, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call139, i32 59, i32 3, i32 0) #7
+  %call142 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64, i8*, i64)* nonnull @_Z11var_48_nodePvmS_m) #7
+  %call143 = tail call i8* @__visc__edge(i8* %call139, i8* %call142, i32 1, i32 0, i32 0, i32 0) #7
+  %call144 = tail call i8* @__visc__edge(i8* %call139, i8* %call142, i32 1, i32 1, i32 1, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call142, i32 60, i32 2, i32 0) #7
+  tail call void @__visc__bindIn(i8* %call142, i32 61, i32 3, i32 0) #7
+  %call145 = tail call i8* (i32, ...) @__visc__createNodeND(i32 0, void (i8*, i64)* nonnull @_Z11var_49_nodePvm) #7
+  %call146 = tail call i8* @__visc__edge(i8* %call142, i8* %call145, i32 1, i32 0, i32 0, i32 0) #7
+  %call147 = tail call i8* @__visc__edge(i8* %call142, i8* %call145, i32 1, i32 1, i32 1, i32 0) #7
+  tail call void @__visc__bindOut(i8* %call145, i32 0, i32 0, i32 0) #7
+  tail call void @__visc__bindOut(i8* %call145, i32 1, i32 1, i32 0) #7
+  ret void
+}
+
+declare i8* @__visc__createNodeND(i32, ...) local_unnamed_addr #3
+
+declare void @__visc__bindIn(i8*, i32, i32, i32) local_unnamed_addr #3
+
+declare i8* @__visc__edge(i8*, i8*, i32, i32, i32, i32) local_unnamed_addr #3
+
+declare void @__visc__bindOut(i8*, i32, i32, i32) local_unnamed_addr #3
+
+; Function Attrs: norecurse nounwind uwtable
+define i32 @main() local_unnamed_addr #5 {
+entry:
+  %__dnew.i.i.i.i = alloca i64, align 8
+  %dir_prefix = alloca %"class.std::__cxx11::basic_string", align 8
+  %input_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp1 = alloca %"class.std::__cxx11::basic_string", align 8
+  %labels_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp3 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_1_w_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp5 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_1_b_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp8 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_2_w_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp12 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_2_b_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp16 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_3_w_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp20 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_3_b_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp24 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_4_w_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp28 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_4_b_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp32 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_5_w_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp36 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_5_b_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp40 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_6_w_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp44 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_6_b_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp48 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_7_w_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp52 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_7_b_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp56 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_8_w_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp60 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_8_b_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp64 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_9_w_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp68 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_9_b_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp72 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_10_w_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp76 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_10_b_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp80 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_11_w_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp84 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_11_b_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp88 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_12_w_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp92 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_12_b_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp96 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_13_w_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp100 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_13_b_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp104 = alloca %"class.std::__cxx11::basic_string", align 8
+  %dense_1_w_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp108 = alloca %"class.std::__cxx11::basic_string", align 8
+  %dense_1_b_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp112 = alloca %"class.std::__cxx11::basic_string", align 8
+  %dense_2_w_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp116 = alloca %"class.std::__cxx11::basic_string", align 8
+  %dense_2_b_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp120 = alloca %"class.std::__cxx11::basic_string", align 8
+  %0 = bitcast %"class.std::__cxx11::basic_string"* %dir_prefix to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %0) #7
+  %1 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dir_prefix, i64 0, i32 2
+  %2 = bitcast %"class.std::__cxx11::basic_string"* %dir_prefix to %union.anon**
+  store %union.anon* %1, %union.anon** %2, align 8, !tbaa !52
+  %3 = bitcast %union.anon* %1 to i8*
+  %4 = bitcast i64* %__dnew.i.i.i.i to i8*
+  call void @llvm.lifetime.start(i64 8, i8* nonnull %4) #7
+  store i64 71, i64* %__dnew.i.i.i.i, align 8, !tbaa !12
+  %call5.i.i.i.i = call i8* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm(%"class.std::__cxx11::basic_string"* nonnull %dir_prefix, i64* nonnull dereferenceable(8) %__dnew.i.i.i.i, i64 0) #7
+  %_M_p.i13.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dir_prefix, i64 0, i32 0, i32 0
+  store i8* %call5.i.i.i.i, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !56
+  %5 = load i64, i64* %__dnew.i.i.i.i, align 8, !tbaa !12
+  %_M_allocated_capacity.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dir_prefix, i64 0, i32 2, i32 0
+  store i64 %5, i64* %_M_allocated_capacity.i.i.i.i.i, align 8, !tbaa !12
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %call5.i.i.i.i, i8* nonnull getelementptr inbounds ([72 x i8], [72 x i8]* @.str.23, i64 0, i64 0), i64 71, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dir_prefix, i64 0, i32 1
+  store i64 %5, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !53
+  %arrayidx.i.i.i.i.i = getelementptr inbounds i8, i8* %call5.i.i.i.i, i64 %5
+  store i8 0, i8* %arrayidx.i.i.i.i.i, align 1, !tbaa !36
+  call void @llvm.lifetime.end(i64 8, i8* nonnull %4) #7
+  %6 = bitcast %"class.std::__cxx11::basic_string"* %input_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %6) #7
+  %7 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp1 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %7) #7
+  %8 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp1, i64 0, i32 2
+  %9 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp1 to %union.anon**
+  store %union.anon* %8, %union.anon** %9, align 8, !tbaa !52
+  %10 = bitcast %union.anon* %8 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %10, i8* nonnull getelementptr inbounds ([10 x i8], [10 x i8]* @.str.24, i64 0, i64 0), i64 9, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i279 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp1, i64 0, i32 1
+  store i64 9, i64* %_M_string_length.i.i.i.i.i.i279, align 8, !tbaa !53
+  %11 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp1, i64 0, i32 2, i32 1, i64 1
+  store i8 0, i8* %11, align 1, !tbaa !36
+  %12 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !53, !noalias !62
+  %13 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !56, !noalias !62
+  %call3.i.i.i = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp1, i64 0, i64 0, i8* %13, i64 %12) #7, !noalias !62
+  %14 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %input_path, i64 0, i32 2
+  %15 = bitcast %"class.std::__cxx11::basic_string"* %input_path to %union.anon**
+  store %union.anon* %14, %union.anon** %15, align 8, !tbaa !52, !alias.scope !62
+  %_M_p.i.i23.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i, i64 0, i32 0, i32 0
+  %16 = load i8*, i8** %_M_p.i.i23.i.i, align 8, !tbaa !56
+  %17 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i, i64 0, i32 2
+  %arraydecay.i.i.i.i282 = bitcast %union.anon* %17 to i8*
+  %cmp.i.i.i283 = icmp eq i8* %16, %arraydecay.i.i.i.i282
+  br i1 %cmp.i.i.i283, label %if.then.i.i284, label %if.else.i.i
+
+if.then.i.i284:                                   ; preds = %entry
+  %arraydecay.i.i.i = bitcast %union.anon* %14 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i, i8* %16, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit
+
+if.else.i.i:                                      ; preds = %entry
+  %_M_p.i21.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %input_path, i64 0, i32 0, i32 0
+  store i8* %16, i8** %_M_p.i21.i.i, align 8, !tbaa !56, !alias.scope !62
+  %_M_allocated_capacity.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i, i64 0, i32 2, i32 0
+  %18 = load i64, i64* %_M_allocated_capacity.i.i, align 8, !tbaa !12
+  %_M_allocated_capacity.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %input_path, i64 0, i32 2, i32 0
+  store i64 %18, i64* %_M_allocated_capacity.i.i.i, align 8, !tbaa !12, !alias.scope !62
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit: ; preds = %if.then.i.i284, %if.else.i.i
+  %_M_string_length.i20.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i, i64 0, i32 1
+  %19 = load i64, i64* %_M_string_length.i20.i.i, align 8, !tbaa !53
+  %_M_string_length.i.i2.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %input_path, i64 0, i32 1
+  store i64 %19, i64* %_M_string_length.i.i2.i, align 8, !tbaa !53, !alias.scope !62
+  %20 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i to %union.anon**
+  store %union.anon* %17, %union.anon** %20, align 8, !tbaa !56
+  store i64 0, i64* %_M_string_length.i20.i.i, align 8, !tbaa !53
+  store i8 0, i8* %arraydecay.i.i.i.i282, align 1, !tbaa !36
+  %_M_p.i.i.i.i285 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp1, i64 0, i32 0, i32 0
+  %21 = load i8*, i8** %_M_p.i.i.i.i285, align 8, !tbaa !56
+  %cmp.i.i.i287 = icmp eq i8* %21, %10
+  br i1 %cmp.i.i.i287, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit289, label %if.then.i.i288
+
+if.then.i.i288:                                   ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit
+  call void @_ZdlPv(i8* %21) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit289
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit289: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit, %if.then.i.i288
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %7) #7
+  %22 = bitcast %"class.std::__cxx11::basic_string"* %labels_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %22) #7
+  %23 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp3 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %23) #7
+  %24 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp3, i64 0, i32 2
+  %25 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp3 to %union.anon**
+  store %union.anon* %24, %union.anon** %25, align 8, !tbaa !52
+  %26 = bitcast %union.anon* %24 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %26, i8* nonnull getelementptr inbounds ([11 x i8], [11 x i8]* @.str.25, i64 0, i64 0), i64 10, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i308 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp3, i64 0, i32 1
+  store i64 10, i64* %_M_string_length.i.i.i.i.i.i308, align 8, !tbaa !53
+  %27 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp3, i64 0, i32 2, i32 1, i64 2
+  store i8 0, i8* %27, align 2, !tbaa !36
+  %28 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !53, !noalias !65
+  %29 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !56, !noalias !65
+  %call3.i.i.i313 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp3, i64 0, i64 0, i8* %29, i64 %28) #7, !noalias !65
+  %30 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %labels_path, i64 0, i32 2
+  %31 = bitcast %"class.std::__cxx11::basic_string"* %labels_path to %union.anon**
+  store %union.anon* %30, %union.anon** %31, align 8, !tbaa !52, !alias.scope !65
+  %_M_p.i.i23.i.i314 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i313, i64 0, i32 0, i32 0
+  %32 = load i8*, i8** %_M_p.i.i23.i.i314, align 8, !tbaa !56
+  %33 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i313, i64 0, i32 2
+  %arraydecay.i.i.i.i315 = bitcast %union.anon* %33 to i8*
+  %cmp.i.i.i316 = icmp eq i8* %32, %arraydecay.i.i.i.i315
+  br i1 %cmp.i.i.i316, label %if.then.i.i318, label %if.else.i.i322
+
+if.then.i.i318:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit289
+  %arraydecay.i.i.i317 = bitcast %union.anon* %30 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i317, i8* %32, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit325
+
+if.else.i.i322:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit289
+  %_M_p.i21.i.i319 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %labels_path, i64 0, i32 0, i32 0
+  store i8* %32, i8** %_M_p.i21.i.i319, align 8, !tbaa !56, !alias.scope !65
+  %_M_allocated_capacity.i.i320 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i313, i64 0, i32 2, i32 0
+  %34 = load i64, i64* %_M_allocated_capacity.i.i320, align 8, !tbaa !12
+  %_M_allocated_capacity.i.i.i321 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %labels_path, i64 0, i32 2, i32 0
+  store i64 %34, i64* %_M_allocated_capacity.i.i.i321, align 8, !tbaa !12, !alias.scope !65
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit325
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit325: ; preds = %if.then.i.i318, %if.else.i.i322
+  %_M_string_length.i20.i.i323 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i313, i64 0, i32 1
+  %35 = load i64, i64* %_M_string_length.i20.i.i323, align 8, !tbaa !53
+  %_M_string_length.i.i2.i324 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %labels_path, i64 0, i32 1
+  store i64 %35, i64* %_M_string_length.i.i2.i324, align 8, !tbaa !53, !alias.scope !65
+  %36 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i313 to %union.anon**
+  store %union.anon* %33, %union.anon** %36, align 8, !tbaa !56
+  store i64 0, i64* %_M_string_length.i20.i.i323, align 8, !tbaa !53
+  store i8 0, i8* %arraydecay.i.i.i.i315, align 1, !tbaa !36
+  %_M_p.i.i.i.i326 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp3, i64 0, i32 0, i32 0
+  %37 = load i8*, i8** %_M_p.i.i.i.i326, align 8, !tbaa !56
+  %cmp.i.i.i328 = icmp eq i8* %37, %26
+  br i1 %cmp.i.i.i328, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit330, label %if.then.i.i329
+
+if.then.i.i329:                                   ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit325
+  call void @_ZdlPv(i8* %37) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit330
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit330: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit325, %if.then.i.i329
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %23) #7
+  %38 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_1_w_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %38) #7
+  %39 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp5 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %39) #7
+  %40 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp5, i64 0, i32 2
+  %41 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp5 to %union.anon**
+  store %union.anon* %40, %union.anon** %41, align 8, !tbaa !52
+  %42 = bitcast %union.anon* %40 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %42, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.26, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i349 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp5, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i349, align 8, !tbaa !53
+  %43 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp5, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %43, align 2, !tbaa !36
+  %44 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !53, !noalias !68
+  %45 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !56, !noalias !68
+  %call3.i.i.i354 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp5, i64 0, i64 0, i8* %45, i64 %44) #7, !noalias !68
+  %46 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_1_w_path, i64 0, i32 2
+  %47 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_1_w_path to %union.anon**
+  store %union.anon* %46, %union.anon** %47, align 8, !tbaa !52, !alias.scope !68
+  %_M_p.i.i23.i.i355 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i354, i64 0, i32 0, i32 0
+  %48 = load i8*, i8** %_M_p.i.i23.i.i355, align 8, !tbaa !56
+  %49 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i354, i64 0, i32 2
+  %arraydecay.i.i.i.i356 = bitcast %union.anon* %49 to i8*
+  %cmp.i.i.i357 = icmp eq i8* %48, %arraydecay.i.i.i.i356
+  br i1 %cmp.i.i.i357, label %if.then.i.i359, label %if.else.i.i363
+
+if.then.i.i359:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit330
+  %arraydecay.i.i.i358 = bitcast %union.anon* %46 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i358, i8* %48, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit366
+
+if.else.i.i363:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit330
+  %_M_p.i21.i.i360 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_1_w_path, i64 0, i32 0, i32 0
+  store i8* %48, i8** %_M_p.i21.i.i360, align 8, !tbaa !56, !alias.scope !68
+  %_M_allocated_capacity.i.i361 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i354, i64 0, i32 2, i32 0
+  %50 = load i64, i64* %_M_allocated_capacity.i.i361, align 8, !tbaa !12
+  %_M_allocated_capacity.i.i.i362 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_1_w_path, i64 0, i32 2, i32 0
+  store i64 %50, i64* %_M_allocated_capacity.i.i.i362, align 8, !tbaa !12, !alias.scope !68
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit366
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit366: ; preds = %if.then.i.i359, %if.else.i.i363
+  %_M_string_length.i20.i.i364 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i354, i64 0, i32 1
+  %51 = load i64, i64* %_M_string_length.i20.i.i364, align 8, !tbaa !53
+  %_M_string_length.i.i2.i365 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_1_w_path, i64 0, i32 1
+  store i64 %51, i64* %_M_string_length.i.i2.i365, align 8, !tbaa !53, !alias.scope !68
+  %52 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i354 to %union.anon**
+  store %union.anon* %49, %union.anon** %52, align 8, !tbaa !56
+  store i64 0, i64* %_M_string_length.i20.i.i364, align 8, !tbaa !53
+  store i8 0, i8* %arraydecay.i.i.i.i356, align 1, !tbaa !36
+  %_M_p.i.i.i.i367 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp5, i64 0, i32 0, i32 0
+  %53 = load i8*, i8** %_M_p.i.i.i.i367, align 8, !tbaa !56
+  %cmp.i.i.i369 = icmp eq i8* %53, %42
+  br i1 %cmp.i.i.i369, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit371, label %if.then.i.i370
+
+if.then.i.i370:                                   ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit366
+  call void @_ZdlPv(i8* %53) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit371
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit371: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit366, %if.then.i.i370
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %39) #7
+  %_M_p.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_1_w_path, i64 0, i32 0, i32 0
+  %54 = load i8*, i8** %_M_p.i.i, align 8, !tbaa !56
+  %call7 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %54, i32 0, i32 64, i32 3, i32 3, i32 3)
+  %55 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_1_b_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %55) #7
+  %56 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp8 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %56) #7
+  %57 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp8, i64 0, i32 2
+  %58 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp8 to %union.anon**
+  store %union.anon* %57, %union.anon** %58, align 8, !tbaa !52
+  %59 = bitcast %union.anon* %57 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %59, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.27, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i395 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp8, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i395, align 8, !tbaa !53
+  %60 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp8, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %60, align 2, !tbaa !36
+  %61 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !53, !noalias !71
+  %62 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !56, !noalias !71
+  %call3.i.i.i400 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp8, i64 0, i64 0, i8* %62, i64 %61) #7, !noalias !71
+  %63 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_1_b_path, i64 0, i32 2
+  %64 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_1_b_path to %union.anon**
+  store %union.anon* %63, %union.anon** %64, align 8, !tbaa !52, !alias.scope !71
+  %_M_p.i.i23.i.i401 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i400, i64 0, i32 0, i32 0
+  %65 = load i8*, i8** %_M_p.i.i23.i.i401, align 8, !tbaa !56
+  %66 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i400, i64 0, i32 2
+  %arraydecay.i.i.i.i402 = bitcast %union.anon* %66 to i8*
+  %cmp.i.i.i403 = icmp eq i8* %65, %arraydecay.i.i.i.i402
+  br i1 %cmp.i.i.i403, label %if.then.i.i405, label %if.else.i.i409
+
+if.then.i.i405:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit371
+  %arraydecay.i.i.i404 = bitcast %union.anon* %63 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i404, i8* %65, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit412
+
+if.else.i.i409:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit371
+  %_M_p.i21.i.i406 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_1_b_path, i64 0, i32 0, i32 0
+  store i8* %65, i8** %_M_p.i21.i.i406, align 8, !tbaa !56, !alias.scope !71
+  %_M_allocated_capacity.i.i407 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i400, i64 0, i32 2, i32 0
+  %67 = load i64, i64* %_M_allocated_capacity.i.i407, align 8, !tbaa !12
+  %_M_allocated_capacity.i.i.i408 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_1_b_path, i64 0, i32 2, i32 0
+  store i64 %67, i64* %_M_allocated_capacity.i.i.i408, align 8, !tbaa !12, !alias.scope !71
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit412
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit412: ; preds = %if.then.i.i405, %if.else.i.i409
+  %_M_string_length.i20.i.i410 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i400, i64 0, i32 1
+  %68 = load i64, i64* %_M_string_length.i20.i.i410, align 8, !tbaa !53
+  %_M_string_length.i.i2.i411 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_1_b_path, i64 0, i32 1
+  store i64 %68, i64* %_M_string_length.i.i2.i411, align 8, !tbaa !53, !alias.scope !71
+  %69 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i400 to %union.anon**
+  store %union.anon* %66, %union.anon** %69, align 8, !tbaa !56
+  store i64 0, i64* %_M_string_length.i20.i.i410, align 8, !tbaa !53
+  store i8 0, i8* %arraydecay.i.i.i.i402, align 1, !tbaa !36
+  %_M_p.i.i.i.i413 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp8, i64 0, i32 0, i32 0
+  %70 = load i8*, i8** %_M_p.i.i.i.i413, align 8, !tbaa !56
+  %cmp.i.i.i415 = icmp eq i8* %70, %59
+  br i1 %cmp.i.i.i415, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit417, label %if.then.i.i416
+
+if.then.i.i416:                                   ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit412
+  call void @_ZdlPv(i8* %70) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit417
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit417: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit412, %if.then.i.i416
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %56) #7
+  %_M_p.i.i418 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_1_b_path, i64 0, i32 0, i32 0
+  %71 = load i8*, i8** %_M_p.i.i418, align 8, !tbaa !56
+  %call11 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %71, i32 0, i32 1, i32 64, i32 1, i32 1)
+  %72 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_2_w_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %72) #7
+  %73 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp12 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %73) #7
+  %74 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp12, i64 0, i32 2
+  %75 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp12 to %union.anon**
+  store %union.anon* %74, %union.anon** %75, align 8, !tbaa !52
+  %76 = bitcast %union.anon* %74 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %76, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.28, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i442 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp12, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i442, align 8, !tbaa !53
+  %77 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp12, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %77, align 2, !tbaa !36
+  %78 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !53, !noalias !74
+  %79 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !56, !noalias !74
+  %call3.i.i.i447 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp12, i64 0, i64 0, i8* %79, i64 %78) #7, !noalias !74
+  %80 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_2_w_path, i64 0, i32 2
+  %81 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_2_w_path to %union.anon**
+  store %union.anon* %80, %union.anon** %81, align 8, !tbaa !52, !alias.scope !74
+  %_M_p.i.i23.i.i448 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i447, i64 0, i32 0, i32 0
+  %82 = load i8*, i8** %_M_p.i.i23.i.i448, align 8, !tbaa !56
+  %83 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i447, i64 0, i32 2
+  %arraydecay.i.i.i.i449 = bitcast %union.anon* %83 to i8*
+  %cmp.i.i.i450 = icmp eq i8* %82, %arraydecay.i.i.i.i449
+  br i1 %cmp.i.i.i450, label %if.then.i.i452, label %if.else.i.i456
+
+if.then.i.i452:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit417
+  %arraydecay.i.i.i451 = bitcast %union.anon* %80 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i451, i8* %82, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit459
+
+if.else.i.i456:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit417
+  %_M_p.i21.i.i453 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_2_w_path, i64 0, i32 0, i32 0
+  store i8* %82, i8** %_M_p.i21.i.i453, align 8, !tbaa !56, !alias.scope !74
+  %_M_allocated_capacity.i.i454 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i447, i64 0, i32 2, i32 0
+  %84 = load i64, i64* %_M_allocated_capacity.i.i454, align 8, !tbaa !12
+  %_M_allocated_capacity.i.i.i455 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_2_w_path, i64 0, i32 2, i32 0
+  store i64 %84, i64* %_M_allocated_capacity.i.i.i455, align 8, !tbaa !12, !alias.scope !74
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit459
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit459: ; preds = %if.then.i.i452, %if.else.i.i456
+  %_M_string_length.i20.i.i457 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i447, i64 0, i32 1
+  %85 = load i64, i64* %_M_string_length.i20.i.i457, align 8, !tbaa !53
+  %_M_string_length.i.i2.i458 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_2_w_path, i64 0, i32 1
+  store i64 %85, i64* %_M_string_length.i.i2.i458, align 8, !tbaa !53, !alias.scope !74
+  %86 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i447 to %union.anon**
+  store %union.anon* %83, %union.anon** %86, align 8, !tbaa !56
+  store i64 0, i64* %_M_string_length.i20.i.i457, align 8, !tbaa !53
+  store i8 0, i8* %arraydecay.i.i.i.i449, align 1, !tbaa !36
+  %_M_p.i.i.i.i460 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp12, i64 0, i32 0, i32 0
+  %87 = load i8*, i8** %_M_p.i.i.i.i460, align 8, !tbaa !56
+  %cmp.i.i.i462 = icmp eq i8* %87, %76
+  br i1 %cmp.i.i.i462, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit464, label %if.then.i.i463
+
+if.then.i.i463:                                   ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit459
+  call void @_ZdlPv(i8* %87) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit464
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit464: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit459, %if.then.i.i463
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %73) #7
+  %_M_p.i.i465 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_2_w_path, i64 0, i32 0, i32 0
+  %88 = load i8*, i8** %_M_p.i.i465, align 8, !tbaa !56
+  %call15 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %88, i32 0, i32 64, i32 64, i32 3, i32 3)
+  %89 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_2_b_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %89) #7
+  %90 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp16 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %90) #7
+  %91 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp16, i64 0, i32 2
+  %92 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp16 to %union.anon**
+  store %union.anon* %91, %union.anon** %92, align 8, !tbaa !52
+  %93 = bitcast %union.anon* %91 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %93, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.29, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i489 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp16, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i489, align 8, !tbaa !53
+  %94 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp16, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %94, align 2, !tbaa !36
+  %95 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !53, !noalias !77
+  %96 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !56, !noalias !77
+  %call3.i.i.i494 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp16, i64 0, i64 0, i8* %96, i64 %95) #7, !noalias !77
+  %97 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_2_b_path, i64 0, i32 2
+  %98 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_2_b_path to %union.anon**
+  store %union.anon* %97, %union.anon** %98, align 8, !tbaa !52, !alias.scope !77
+  %_M_p.i.i23.i.i495 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i494, i64 0, i32 0, i32 0
+  %99 = load i8*, i8** %_M_p.i.i23.i.i495, align 8, !tbaa !56
+  %100 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i494, i64 0, i32 2
+  %arraydecay.i.i.i.i496 = bitcast %union.anon* %100 to i8*
+  %cmp.i.i.i497 = icmp eq i8* %99, %arraydecay.i.i.i.i496
+  br i1 %cmp.i.i.i497, label %if.then.i.i499, label %if.else.i.i503
+
+if.then.i.i499:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit464
+  %arraydecay.i.i.i498 = bitcast %union.anon* %97 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i498, i8* %99, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit506
+
+if.else.i.i503:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit464
+  %_M_p.i21.i.i500 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_2_b_path, i64 0, i32 0, i32 0
+  store i8* %99, i8** %_M_p.i21.i.i500, align 8, !tbaa !56, !alias.scope !77
+  %_M_allocated_capacity.i.i501 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i494, i64 0, i32 2, i32 0
+  %101 = load i64, i64* %_M_allocated_capacity.i.i501, align 8, !tbaa !12
+  %_M_allocated_capacity.i.i.i502 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_2_b_path, i64 0, i32 2, i32 0
+  store i64 %101, i64* %_M_allocated_capacity.i.i.i502, align 8, !tbaa !12, !alias.scope !77
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit506
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit506: ; preds = %if.then.i.i499, %if.else.i.i503
+  %_M_string_length.i20.i.i504 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i494, i64 0, i32 1
+  %102 = load i64, i64* %_M_string_length.i20.i.i504, align 8, !tbaa !53
+  %_M_string_length.i.i2.i505 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_2_b_path, i64 0, i32 1
+  store i64 %102, i64* %_M_string_length.i.i2.i505, align 8, !tbaa !53, !alias.scope !77
+  %103 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i494 to %union.anon**
+  store %union.anon* %100, %union.anon** %103, align 8, !tbaa !56
+  store i64 0, i64* %_M_string_length.i20.i.i504, align 8, !tbaa !53
+  store i8 0, i8* %arraydecay.i.i.i.i496, align 1, !tbaa !36
+  %_M_p.i.i.i.i507 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp16, i64 0, i32 0, i32 0
+  %104 = load i8*, i8** %_M_p.i.i.i.i507, align 8, !tbaa !56
+  %cmp.i.i.i509 = icmp eq i8* %104, %93
+  br i1 %cmp.i.i.i509, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit511, label %if.then.i.i510
+
+if.then.i.i510:                                   ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit506
+  call void @_ZdlPv(i8* %104) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit511
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit511: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit506, %if.then.i.i510
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %90) #7
+  %_M_p.i.i512 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_2_b_path, i64 0, i32 0, i32 0
+  %105 = load i8*, i8** %_M_p.i.i512, align 8, !tbaa !56
+  %call19 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %105, i32 0, i32 1, i32 64, i32 1, i32 1)
+  %106 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_3_w_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %106) #7
+  %107 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp20 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %107) #7
+  %108 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp20, i64 0, i32 2
+  %109 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp20 to %union.anon**
+  store %union.anon* %108, %union.anon** %109, align 8, !tbaa !52
+  %110 = bitcast %union.anon* %108 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %110, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.30, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i536 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp20, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i536, align 8, !tbaa !53
+  %111 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp20, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %111, align 2, !tbaa !36
+  %112 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !53, !noalias !80
+  %113 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !56, !noalias !80
+  %call3.i.i.i541 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp20, i64 0, i64 0, i8* %113, i64 %112) #7, !noalias !80
+  %114 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_3_w_path, i64 0, i32 2
+  %115 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_3_w_path to %union.anon**
+  store %union.anon* %114, %union.anon** %115, align 8, !tbaa !52, !alias.scope !80
+  %_M_p.i.i23.i.i542 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i541, i64 0, i32 0, i32 0
+  %116 = load i8*, i8** %_M_p.i.i23.i.i542, align 8, !tbaa !56
+  %117 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i541, i64 0, i32 2
+  %arraydecay.i.i.i.i543 = bitcast %union.anon* %117 to i8*
+  %cmp.i.i.i544 = icmp eq i8* %116, %arraydecay.i.i.i.i543
+  br i1 %cmp.i.i.i544, label %if.then.i.i546, label %if.else.i.i550
+
+if.then.i.i546:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit511
+  %arraydecay.i.i.i545 = bitcast %union.anon* %114 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i545, i8* %116, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit553
+
+if.else.i.i550:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit511
+  %_M_p.i21.i.i547 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_3_w_path, i64 0, i32 0, i32 0
+  store i8* %116, i8** %_M_p.i21.i.i547, align 8, !tbaa !56, !alias.scope !80
+  %_M_allocated_capacity.i.i548 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i541, i64 0, i32 2, i32 0
+  %118 = load i64, i64* %_M_allocated_capacity.i.i548, align 8, !tbaa !12
+  %_M_allocated_capacity.i.i.i549 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_3_w_path, i64 0, i32 2, i32 0
+  store i64 %118, i64* %_M_allocated_capacity.i.i.i549, align 8, !tbaa !12, !alias.scope !80
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit553
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit553: ; preds = %if.then.i.i546, %if.else.i.i550
+  %_M_string_length.i20.i.i551 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i541, i64 0, i32 1
+  %119 = load i64, i64* %_M_string_length.i20.i.i551, align 8, !tbaa !53
+  %_M_string_length.i.i2.i552 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_3_w_path, i64 0, i32 1
+  store i64 %119, i64* %_M_string_length.i.i2.i552, align 8, !tbaa !53, !alias.scope !80
+  %120 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i541 to %union.anon**
+  store %union.anon* %117, %union.anon** %120, align 8, !tbaa !56
+  store i64 0, i64* %_M_string_length.i20.i.i551, align 8, !tbaa !53
+  store i8 0, i8* %arraydecay.i.i.i.i543, align 1, !tbaa !36
+  %_M_p.i.i.i.i554 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp20, i64 0, i32 0, i32 0
+  %121 = load i8*, i8** %_M_p.i.i.i.i554, align 8, !tbaa !56
+  %cmp.i.i.i556 = icmp eq i8* %121, %110
+  br i1 %cmp.i.i.i556, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit558, label %if.then.i.i557
+
+if.then.i.i557:                                   ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit553
+  call void @_ZdlPv(i8* %121) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit558
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit558: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit553, %if.then.i.i557
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %107) #7
+  %_M_p.i.i559 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_3_w_path, i64 0, i32 0, i32 0
+  %122 = load i8*, i8** %_M_p.i.i559, align 8, !tbaa !56
+  %call23 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %122, i32 0, i32 128, i32 64, i32 3, i32 3)
+  %123 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_3_b_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %123) #7
+  %124 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp24 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %124) #7
+  %125 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp24, i64 0, i32 2
+  %126 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp24 to %union.anon**
+  store %union.anon* %125, %union.anon** %126, align 8, !tbaa !52
+  %127 = bitcast %union.anon* %125 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %127, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.31, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i583 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp24, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i583, align 8, !tbaa !53
+  %128 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp24, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %128, align 2, !tbaa !36
+  %129 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !53, !noalias !83
+  %130 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !56, !noalias !83
+  %call3.i.i.i588 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp24, i64 0, i64 0, i8* %130, i64 %129) #7, !noalias !83
+  %131 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_3_b_path, i64 0, i32 2
+  %132 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_3_b_path to %union.anon**
+  store %union.anon* %131, %union.anon** %132, align 8, !tbaa !52, !alias.scope !83
+  %_M_p.i.i23.i.i589 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i588, i64 0, i32 0, i32 0
+  %133 = load i8*, i8** %_M_p.i.i23.i.i589, align 8, !tbaa !56
+  %134 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i588, i64 0, i32 2
+  %arraydecay.i.i.i.i590 = bitcast %union.anon* %134 to i8*
+  %cmp.i.i.i591 = icmp eq i8* %133, %arraydecay.i.i.i.i590
+  br i1 %cmp.i.i.i591, label %if.then.i.i593, label %if.else.i.i597
+
+if.then.i.i593:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit558
+  %arraydecay.i.i.i592 = bitcast %union.anon* %131 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i592, i8* %133, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit600
+
+if.else.i.i597:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit558
+  %_M_p.i21.i.i594 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_3_b_path, i64 0, i32 0, i32 0
+  store i8* %133, i8** %_M_p.i21.i.i594, align 8, !tbaa !56, !alias.scope !83
+  %_M_allocated_capacity.i.i595 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i588, i64 0, i32 2, i32 0
+  %135 = load i64, i64* %_M_allocated_capacity.i.i595, align 8, !tbaa !12
+  %_M_allocated_capacity.i.i.i596 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_3_b_path, i64 0, i32 2, i32 0
+  store i64 %135, i64* %_M_allocated_capacity.i.i.i596, align 8, !tbaa !12, !alias.scope !83
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit600
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit600: ; preds = %if.then.i.i593, %if.else.i.i597
+  %_M_string_length.i20.i.i598 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i588, i64 0, i32 1
+  %136 = load i64, i64* %_M_string_length.i20.i.i598, align 8, !tbaa !53
+  %_M_string_length.i.i2.i599 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_3_b_path, i64 0, i32 1
+  store i64 %136, i64* %_M_string_length.i.i2.i599, align 8, !tbaa !53, !alias.scope !83
+  %137 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i588 to %union.anon**
+  store %union.anon* %134, %union.anon** %137, align 8, !tbaa !56
+  store i64 0, i64* %_M_string_length.i20.i.i598, align 8, !tbaa !53
+  store i8 0, i8* %arraydecay.i.i.i.i590, align 1, !tbaa !36
+  %_M_p.i.i.i.i601 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp24, i64 0, i32 0, i32 0
+  %138 = load i8*, i8** %_M_p.i.i.i.i601, align 8, !tbaa !56
+  %cmp.i.i.i603 = icmp eq i8* %138, %127
+  br i1 %cmp.i.i.i603, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit605, label %if.then.i.i604
+
+if.then.i.i604:                                   ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit600
+  call void @_ZdlPv(i8* %138) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit605
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit605: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit600, %if.then.i.i604
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %124) #7
+  %_M_p.i.i606 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_3_b_path, i64 0, i32 0, i32 0
+  %139 = load i8*, i8** %_M_p.i.i606, align 8, !tbaa !56
+  %call27 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %139, i32 0, i32 1, i32 128, i32 1, i32 1)
+  %140 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_4_w_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %140) #7
+  %141 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp28 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %141) #7
+  %142 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp28, i64 0, i32 2
+  %143 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp28 to %union.anon**
+  store %union.anon* %142, %union.anon** %143, align 8, !tbaa !52
+  %144 = bitcast %union.anon* %142 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %144, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.32, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i630 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp28, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i630, align 8, !tbaa !53
+  %145 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp28, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %145, align 2, !tbaa !36
+  %146 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !53, !noalias !86
+  %147 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !56, !noalias !86
+  %call3.i.i.i635 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp28, i64 0, i64 0, i8* %147, i64 %146) #7, !noalias !86
+  %148 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_4_w_path, i64 0, i32 2
+  %149 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_4_w_path to %union.anon**
+  store %union.anon* %148, %union.anon** %149, align 8, !tbaa !52, !alias.scope !86
+  %_M_p.i.i23.i.i636 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i635, i64 0, i32 0, i32 0
+  %150 = load i8*, i8** %_M_p.i.i23.i.i636, align 8, !tbaa !56
+  %151 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i635, i64 0, i32 2
+  %arraydecay.i.i.i.i637 = bitcast %union.anon* %151 to i8*
+  %cmp.i.i.i638 = icmp eq i8* %150, %arraydecay.i.i.i.i637
+  br i1 %cmp.i.i.i638, label %if.then.i.i640, label %if.else.i.i644
+
+if.then.i.i640:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit605
+  %arraydecay.i.i.i639 = bitcast %union.anon* %148 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i639, i8* %150, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit647
+
+if.else.i.i644:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit605
+  %_M_p.i21.i.i641 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_4_w_path, i64 0, i32 0, i32 0
+  store i8* %150, i8** %_M_p.i21.i.i641, align 8, !tbaa !56, !alias.scope !86
+  %_M_allocated_capacity.i.i642 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i635, i64 0, i32 2, i32 0
+  %152 = load i64, i64* %_M_allocated_capacity.i.i642, align 8, !tbaa !12
+  %_M_allocated_capacity.i.i.i643 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_4_w_path, i64 0, i32 2, i32 0
+  store i64 %152, i64* %_M_allocated_capacity.i.i.i643, align 8, !tbaa !12, !alias.scope !86
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit647
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit647: ; preds = %if.then.i.i640, %if.else.i.i644
+  %_M_string_length.i20.i.i645 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i635, i64 0, i32 1
+  %153 = load i64, i64* %_M_string_length.i20.i.i645, align 8, !tbaa !53
+  %_M_string_length.i.i2.i646 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_4_w_path, i64 0, i32 1
+  store i64 %153, i64* %_M_string_length.i.i2.i646, align 8, !tbaa !53, !alias.scope !86
+  %154 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i635 to %union.anon**
+  store %union.anon* %151, %union.anon** %154, align 8, !tbaa !56
+  store i64 0, i64* %_M_string_length.i20.i.i645, align 8, !tbaa !53
+  store i8 0, i8* %arraydecay.i.i.i.i637, align 1, !tbaa !36
+  %_M_p.i.i.i.i648 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp28, i64 0, i32 0, i32 0
+  %155 = load i8*, i8** %_M_p.i.i.i.i648, align 8, !tbaa !56
+  %cmp.i.i.i650 = icmp eq i8* %155, %144
+  br i1 %cmp.i.i.i650, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit652, label %if.then.i.i651
+
+if.then.i.i651:                                   ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit647
+  call void @_ZdlPv(i8* %155) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit652
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit652: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit647, %if.then.i.i651
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %141) #7
+  %_M_p.i.i653 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_4_w_path, i64 0, i32 0, i32 0
+  %156 = load i8*, i8** %_M_p.i.i653, align 8, !tbaa !56
+  %call31 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %156, i32 0, i32 128, i32 128, i32 3, i32 3)
+  %157 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_4_b_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %157) #7
+  %158 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp32 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %158) #7
+  %159 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp32, i64 0, i32 2
+  %160 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp32 to %union.anon**
+  store %union.anon* %159, %union.anon** %160, align 8, !tbaa !52
+  %161 = bitcast %union.anon* %159 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %161, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.33, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i677 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp32, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i677, align 8, !tbaa !53
+  %162 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp32, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %162, align 2, !tbaa !36
+  %163 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !53, !noalias !89
+  %164 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !56, !noalias !89
+  %call3.i.i.i682 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp32, i64 0, i64 0, i8* %164, i64 %163) #7, !noalias !89
+  %165 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_4_b_path, i64 0, i32 2
+  %166 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_4_b_path to %union.anon**
+  store %union.anon* %165, %union.anon** %166, align 8, !tbaa !52, !alias.scope !89
+  %_M_p.i.i23.i.i683 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i682, i64 0, i32 0, i32 0
+  %167 = load i8*, i8** %_M_p.i.i23.i.i683, align 8, !tbaa !56
+  %168 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i682, i64 0, i32 2
+  %arraydecay.i.i.i.i684 = bitcast %union.anon* %168 to i8*
+  %cmp.i.i.i685 = icmp eq i8* %167, %arraydecay.i.i.i.i684
+  br i1 %cmp.i.i.i685, label %if.then.i.i687, label %if.else.i.i691
+
+if.then.i.i687:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit652
+  %arraydecay.i.i.i686 = bitcast %union.anon* %165 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i686, i8* %167, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit694
+
+if.else.i.i691:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit652
+  %_M_p.i21.i.i688 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_4_b_path, i64 0, i32 0, i32 0
+  store i8* %167, i8** %_M_p.i21.i.i688, align 8, !tbaa !56, !alias.scope !89
+  %_M_allocated_capacity.i.i689 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i682, i64 0, i32 2, i32 0
+  %169 = load i64, i64* %_M_allocated_capacity.i.i689, align 8, !tbaa !12
+  %_M_allocated_capacity.i.i.i690 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_4_b_path, i64 0, i32 2, i32 0
+  store i64 %169, i64* %_M_allocated_capacity.i.i.i690, align 8, !tbaa !12, !alias.scope !89
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit694
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit694: ; preds = %if.then.i.i687, %if.else.i.i691
+  %_M_string_length.i20.i.i692 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i682, i64 0, i32 1
+  %170 = load i64, i64* %_M_string_length.i20.i.i692, align 8, !tbaa !53
+  %_M_string_length.i.i2.i693 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_4_b_path, i64 0, i32 1
+  store i64 %170, i64* %_M_string_length.i.i2.i693, align 8, !tbaa !53, !alias.scope !89
+  %171 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i682 to %union.anon**
+  store %union.anon* %168, %union.anon** %171, align 8, !tbaa !56
+  store i64 0, i64* %_M_string_length.i20.i.i692, align 8, !tbaa !53
+  store i8 0, i8* %arraydecay.i.i.i.i684, align 1, !tbaa !36
+  %_M_p.i.i.i.i695 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp32, i64 0, i32 0, i32 0
+  %172 = load i8*, i8** %_M_p.i.i.i.i695, align 8, !tbaa !56
+  %cmp.i.i.i697 = icmp eq i8* %172, %161
+  br i1 %cmp.i.i.i697, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit699, label %if.then.i.i698
+
+if.then.i.i698:                                   ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit694
+  call void @_ZdlPv(i8* %172) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit699
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit699: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit694, %if.then.i.i698
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %158) #7
+  %_M_p.i.i700 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_4_b_path, i64 0, i32 0, i32 0
+  %173 = load i8*, i8** %_M_p.i.i700, align 8, !tbaa !56
+  %call35 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %173, i32 0, i32 1, i32 128, i32 1, i32 1)
+  %174 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_5_w_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %174) #7
+  %175 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp36 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %175) #7
+  %176 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp36, i64 0, i32 2
+  %177 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp36 to %union.anon**
+  store %union.anon* %176, %union.anon** %177, align 8, !tbaa !52
+  %178 = bitcast %union.anon* %176 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %178, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.34, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i724 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp36, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i724, align 8, !tbaa !53
+  %179 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp36, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %179, align 2, !tbaa !36
+  %180 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !53, !noalias !92
+  %181 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !56, !noalias !92
+  %call3.i.i.i729 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp36, i64 0, i64 0, i8* %181, i64 %180) #7, !noalias !92
+  %182 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_5_w_path, i64 0, i32 2
+  %183 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_5_w_path to %union.anon**
+  store %union.anon* %182, %union.anon** %183, align 8, !tbaa !52, !alias.scope !92
+  %_M_p.i.i23.i.i730 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i729, i64 0, i32 0, i32 0
+  %184 = load i8*, i8** %_M_p.i.i23.i.i730, align 8, !tbaa !56
+  %185 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i729, i64 0, i32 2
+  %arraydecay.i.i.i.i731 = bitcast %union.anon* %185 to i8*
+  %cmp.i.i.i732 = icmp eq i8* %184, %arraydecay.i.i.i.i731
+  br i1 %cmp.i.i.i732, label %if.then.i.i734, label %if.else.i.i738
+
+if.then.i.i734:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit699
+  %arraydecay.i.i.i733 = bitcast %union.anon* %182 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i733, i8* %184, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit741
+
+if.else.i.i738:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit699
+  %_M_p.i21.i.i735 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_5_w_path, i64 0, i32 0, i32 0
+  store i8* %184, i8** %_M_p.i21.i.i735, align 8, !tbaa !56, !alias.scope !92
+  %_M_allocated_capacity.i.i736 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i729, i64 0, i32 2, i32 0
+  %186 = load i64, i64* %_M_allocated_capacity.i.i736, align 8, !tbaa !12
+  %_M_allocated_capacity.i.i.i737 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_5_w_path, i64 0, i32 2, i32 0
+  store i64 %186, i64* %_M_allocated_capacity.i.i.i737, align 8, !tbaa !12, !alias.scope !92
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit741
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit741: ; preds = %if.then.i.i734, %if.else.i.i738
+  %_M_string_length.i20.i.i739 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i729, i64 0, i32 1
+  %187 = load i64, i64* %_M_string_length.i20.i.i739, align 8, !tbaa !53
+  %_M_string_length.i.i2.i740 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_5_w_path, i64 0, i32 1
+  store i64 %187, i64* %_M_string_length.i.i2.i740, align 8, !tbaa !53, !alias.scope !92
+  %188 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i729 to %union.anon**
+  store %union.anon* %185, %union.anon** %188, align 8, !tbaa !56
+  store i64 0, i64* %_M_string_length.i20.i.i739, align 8, !tbaa !53
+  store i8 0, i8* %arraydecay.i.i.i.i731, align 1, !tbaa !36
+  %_M_p.i.i.i.i742 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp36, i64 0, i32 0, i32 0
+  %189 = load i8*, i8** %_M_p.i.i.i.i742, align 8, !tbaa !56
+  %cmp.i.i.i744 = icmp eq i8* %189, %178
+  br i1 %cmp.i.i.i744, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit746, label %if.then.i.i745
+
+if.then.i.i745:                                   ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit741
+  call void @_ZdlPv(i8* %189) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit746
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit746: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit741, %if.then.i.i745
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %175) #7
+  %_M_p.i.i747 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_5_w_path, i64 0, i32 0, i32 0
+  %190 = load i8*, i8** %_M_p.i.i747, align 8, !tbaa !56
+  %call39 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %190, i32 0, i32 256, i32 128, i32 3, i32 3)
+  %191 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_5_b_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %191) #7
+  %192 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp40 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %192) #7
+  %193 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp40, i64 0, i32 2
+  %194 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp40 to %union.anon**
+  store %union.anon* %193, %union.anon** %194, align 8, !tbaa !52
+  %195 = bitcast %union.anon* %193 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %195, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.35, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i771 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp40, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i771, align 8, !tbaa !53
+  %196 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp40, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %196, align 2, !tbaa !36
+  %197 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !53, !noalias !95
+  %198 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !56, !noalias !95
+  %call3.i.i.i776 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp40, i64 0, i64 0, i8* %198, i64 %197) #7, !noalias !95
+  %199 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_5_b_path, i64 0, i32 2
+  %200 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_5_b_path to %union.anon**
+  store %union.anon* %199, %union.anon** %200, align 8, !tbaa !52, !alias.scope !95
+  %_M_p.i.i23.i.i777 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i776, i64 0, i32 0, i32 0
+  %201 = load i8*, i8** %_M_p.i.i23.i.i777, align 8, !tbaa !56
+  %202 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i776, i64 0, i32 2
+  %arraydecay.i.i.i.i778 = bitcast %union.anon* %202 to i8*
+  %cmp.i.i.i779 = icmp eq i8* %201, %arraydecay.i.i.i.i778
+  br i1 %cmp.i.i.i779, label %if.then.i.i781, label %if.else.i.i785
+
+if.then.i.i781:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit746
+  %arraydecay.i.i.i780 = bitcast %union.anon* %199 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i780, i8* %201, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit788
+
+if.else.i.i785:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit746
+  %_M_p.i21.i.i782 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_5_b_path, i64 0, i32 0, i32 0
+  store i8* %201, i8** %_M_p.i21.i.i782, align 8, !tbaa !56, !alias.scope !95
+  %_M_allocated_capacity.i.i783 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i776, i64 0, i32 2, i32 0
+  %203 = load i64, i64* %_M_allocated_capacity.i.i783, align 8, !tbaa !12
+  %_M_allocated_capacity.i.i.i784 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_5_b_path, i64 0, i32 2, i32 0
+  store i64 %203, i64* %_M_allocated_capacity.i.i.i784, align 8, !tbaa !12, !alias.scope !95
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit788
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit788: ; preds = %if.then.i.i781, %if.else.i.i785
+  %_M_string_length.i20.i.i786 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i776, i64 0, i32 1
+  %204 = load i64, i64* %_M_string_length.i20.i.i786, align 8, !tbaa !53
+  %_M_string_length.i.i2.i787 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_5_b_path, i64 0, i32 1
+  store i64 %204, i64* %_M_string_length.i.i2.i787, align 8, !tbaa !53, !alias.scope !95
+  %205 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i776 to %union.anon**
+  store %union.anon* %202, %union.anon** %205, align 8, !tbaa !56
+  store i64 0, i64* %_M_string_length.i20.i.i786, align 8, !tbaa !53
+  store i8 0, i8* %arraydecay.i.i.i.i778, align 1, !tbaa !36
+  %_M_p.i.i.i.i789 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp40, i64 0, i32 0, i32 0
+  %206 = load i8*, i8** %_M_p.i.i.i.i789, align 8, !tbaa !56
+  %cmp.i.i.i791 = icmp eq i8* %206, %195
+  br i1 %cmp.i.i.i791, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit793, label %if.then.i.i792
+
+if.then.i.i792:                                   ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit788
+  call void @_ZdlPv(i8* %206) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit793
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit793: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit788, %if.then.i.i792
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %192) #7
+  %_M_p.i.i794 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_5_b_path, i64 0, i32 0, i32 0
+  %207 = load i8*, i8** %_M_p.i.i794, align 8, !tbaa !56
+  %call43 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %207, i32 0, i32 1, i32 256, i32 1, i32 1)
+  %208 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_6_w_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %208) #7
+  %209 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp44 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %209) #7
+  %210 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp44, i64 0, i32 2
+  %211 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp44 to %union.anon**
+  store %union.anon* %210, %union.anon** %211, align 8, !tbaa !52
+  %212 = bitcast %union.anon* %210 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %212, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.36, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i818 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp44, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i818, align 8, !tbaa !53
+  %213 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp44, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %213, align 2, !tbaa !36
+  %214 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !53, !noalias !98
+  %215 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !56, !noalias !98
+  %call3.i.i.i823 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp44, i64 0, i64 0, i8* %215, i64 %214) #7, !noalias !98
+  %216 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_6_w_path, i64 0, i32 2
+  %217 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_6_w_path to %union.anon**
+  store %union.anon* %216, %union.anon** %217, align 8, !tbaa !52, !alias.scope !98
+  %_M_p.i.i23.i.i824 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i823, i64 0, i32 0, i32 0
+  %218 = load i8*, i8** %_M_p.i.i23.i.i824, align 8, !tbaa !56
+  %219 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i823, i64 0, i32 2
+  %arraydecay.i.i.i.i825 = bitcast %union.anon* %219 to i8*
+  %cmp.i.i.i826 = icmp eq i8* %218, %arraydecay.i.i.i.i825
+  br i1 %cmp.i.i.i826, label %if.then.i.i828, label %if.else.i.i832
+
+if.then.i.i828:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit793
+  %arraydecay.i.i.i827 = bitcast %union.anon* %216 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i827, i8* %218, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit835
+
+if.else.i.i832:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit793
+  %_M_p.i21.i.i829 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_6_w_path, i64 0, i32 0, i32 0
+  store i8* %218, i8** %_M_p.i21.i.i829, align 8, !tbaa !56, !alias.scope !98
+  %_M_allocated_capacity.i.i830 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i823, i64 0, i32 2, i32 0
+  %220 = load i64, i64* %_M_allocated_capacity.i.i830, align 8, !tbaa !12
+  %_M_allocated_capacity.i.i.i831 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_6_w_path, i64 0, i32 2, i32 0
+  store i64 %220, i64* %_M_allocated_capacity.i.i.i831, align 8, !tbaa !12, !alias.scope !98
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit835
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit835: ; preds = %if.then.i.i828, %if.else.i.i832
+  %_M_string_length.i20.i.i833 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i823, i64 0, i32 1
+  %221 = load i64, i64* %_M_string_length.i20.i.i833, align 8, !tbaa !53
+  %_M_string_length.i.i2.i834 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_6_w_path, i64 0, i32 1
+  store i64 %221, i64* %_M_string_length.i.i2.i834, align 8, !tbaa !53, !alias.scope !98
+  %222 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i823 to %union.anon**
+  store %union.anon* %219, %union.anon** %222, align 8, !tbaa !56
+  store i64 0, i64* %_M_string_length.i20.i.i833, align 8, !tbaa !53
+  store i8 0, i8* %arraydecay.i.i.i.i825, align 1, !tbaa !36
+  %_M_p.i.i.i.i836 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp44, i64 0, i32 0, i32 0
+  %223 = load i8*, i8** %_M_p.i.i.i.i836, align 8, !tbaa !56
+  %cmp.i.i.i838 = icmp eq i8* %223, %212
+  br i1 %cmp.i.i.i838, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit840, label %if.then.i.i839
+
+if.then.i.i839:                                   ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit835
+  call void @_ZdlPv(i8* %223) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit840
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit840: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit835, %if.then.i.i839
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %209) #7
+  %_M_p.i.i841 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_6_w_path, i64 0, i32 0, i32 0
+  %224 = load i8*, i8** %_M_p.i.i841, align 8, !tbaa !56
+  %call47 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %224, i32 0, i32 256, i32 256, i32 3, i32 3)
+  %225 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_6_b_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %225) #7
+  %226 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp48 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %226) #7
+  %227 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp48, i64 0, i32 2
+  %228 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp48 to %union.anon**
+  store %union.anon* %227, %union.anon** %228, align 8, !tbaa !52
+  %229 = bitcast %union.anon* %227 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %229, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.37, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i865 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp48, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i865, align 8, !tbaa !53
+  %230 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp48, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %230, align 2, !tbaa !36
+  %231 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !53, !noalias !101
+  %232 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !56, !noalias !101
+  %call3.i.i.i870 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp48, i64 0, i64 0, i8* %232, i64 %231) #7, !noalias !101
+  %233 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_6_b_path, i64 0, i32 2
+  %234 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_6_b_path to %union.anon**
+  store %union.anon* %233, %union.anon** %234, align 8, !tbaa !52, !alias.scope !101
+  %_M_p.i.i23.i.i871 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i870, i64 0, i32 0, i32 0
+  %235 = load i8*, i8** %_M_p.i.i23.i.i871, align 8, !tbaa !56
+  %236 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i870, i64 0, i32 2
+  %arraydecay.i.i.i.i872 = bitcast %union.anon* %236 to i8*
+  %cmp.i.i.i873 = icmp eq i8* %235, %arraydecay.i.i.i.i872
+  br i1 %cmp.i.i.i873, label %if.then.i.i875, label %if.else.i.i879
+
+if.then.i.i875:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit840
+  %arraydecay.i.i.i874 = bitcast %union.anon* %233 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i874, i8* %235, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit882
+
+if.else.i.i879:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit840
+  %_M_p.i21.i.i876 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_6_b_path, i64 0, i32 0, i32 0
+  store i8* %235, i8** %_M_p.i21.i.i876, align 8, !tbaa !56, !alias.scope !101
+  %_M_allocated_capacity.i.i877 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i870, i64 0, i32 2, i32 0
+  %237 = load i64, i64* %_M_allocated_capacity.i.i877, align 8, !tbaa !12
+  %_M_allocated_capacity.i.i.i878 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_6_b_path, i64 0, i32 2, i32 0
+  store i64 %237, i64* %_M_allocated_capacity.i.i.i878, align 8, !tbaa !12, !alias.scope !101
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit882
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit882: ; preds = %if.then.i.i875, %if.else.i.i879
+  %_M_string_length.i20.i.i880 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i870, i64 0, i32 1
+  %238 = load i64, i64* %_M_string_length.i20.i.i880, align 8, !tbaa !53
+  %_M_string_length.i.i2.i881 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_6_b_path, i64 0, i32 1
+  store i64 %238, i64* %_M_string_length.i.i2.i881, align 8, !tbaa !53, !alias.scope !101
+  %239 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i870 to %union.anon**
+  store %union.anon* %236, %union.anon** %239, align 8, !tbaa !56
+  store i64 0, i64* %_M_string_length.i20.i.i880, align 8, !tbaa !53
+  store i8 0, i8* %arraydecay.i.i.i.i872, align 1, !tbaa !36
+  %_M_p.i.i.i.i883 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp48, i64 0, i32 0, i32 0
+  %240 = load i8*, i8** %_M_p.i.i.i.i883, align 8, !tbaa !56
+  %cmp.i.i.i885 = icmp eq i8* %240, %229
+  br i1 %cmp.i.i.i885, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit887, label %if.then.i.i886
+
+if.then.i.i886:                                   ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit882
+  call void @_ZdlPv(i8* %240) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit887
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit887: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit882, %if.then.i.i886
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %226) #7
+  %_M_p.i.i888 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_6_b_path, i64 0, i32 0, i32 0
+  %241 = load i8*, i8** %_M_p.i.i888, align 8, !tbaa !56
+  %call51 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %241, i32 0, i32 1, i32 256, i32 1, i32 1)
+  %242 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_7_w_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %242) #7
+  %243 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp52 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %243) #7
+  %244 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp52, i64 0, i32 2
+  %245 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp52 to %union.anon**
+  store %union.anon* %244, %union.anon** %245, align 8, !tbaa !52
+  %246 = bitcast %union.anon* %244 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %246, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.38, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i912 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp52, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i912, align 8, !tbaa !53
+  %247 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp52, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %247, align 2, !tbaa !36
+  %248 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !53, !noalias !104
+  %249 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !56, !noalias !104
+  %call3.i.i.i917 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp52, i64 0, i64 0, i8* %249, i64 %248) #7, !noalias !104
+  %250 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_7_w_path, i64 0, i32 2
+  %251 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_7_w_path to %union.anon**
+  store %union.anon* %250, %union.anon** %251, align 8, !tbaa !52, !alias.scope !104
+  %_M_p.i.i23.i.i918 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i917, i64 0, i32 0, i32 0
+  %252 = load i8*, i8** %_M_p.i.i23.i.i918, align 8, !tbaa !56
+  %253 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i917, i64 0, i32 2
+  %arraydecay.i.i.i.i919 = bitcast %union.anon* %253 to i8*
+  %cmp.i.i.i920 = icmp eq i8* %252, %arraydecay.i.i.i.i919
+  br i1 %cmp.i.i.i920, label %if.then.i.i922, label %if.else.i.i926
+
+if.then.i.i922:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit887
+  %arraydecay.i.i.i921 = bitcast %union.anon* %250 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i921, i8* %252, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit929
+
+if.else.i.i926:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit887
+  %_M_p.i21.i.i923 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_7_w_path, i64 0, i32 0, i32 0
+  store i8* %252, i8** %_M_p.i21.i.i923, align 8, !tbaa !56, !alias.scope !104
+  %_M_allocated_capacity.i.i924 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i917, i64 0, i32 2, i32 0
+  %254 = load i64, i64* %_M_allocated_capacity.i.i924, align 8, !tbaa !12
+  %_M_allocated_capacity.i.i.i925 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_7_w_path, i64 0, i32 2, i32 0
+  store i64 %254, i64* %_M_allocated_capacity.i.i.i925, align 8, !tbaa !12, !alias.scope !104
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit929
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit929: ; preds = %if.then.i.i922, %if.else.i.i926
+  %_M_string_length.i20.i.i927 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i917, i64 0, i32 1
+  %255 = load i64, i64* %_M_string_length.i20.i.i927, align 8, !tbaa !53
+  %_M_string_length.i.i2.i928 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_7_w_path, i64 0, i32 1
+  store i64 %255, i64* %_M_string_length.i.i2.i928, align 8, !tbaa !53, !alias.scope !104
+  %256 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i917 to %union.anon**
+  store %union.anon* %253, %union.anon** %256, align 8, !tbaa !56
+  store i64 0, i64* %_M_string_length.i20.i.i927, align 8, !tbaa !53
+  store i8 0, i8* %arraydecay.i.i.i.i919, align 1, !tbaa !36
+  %_M_p.i.i.i.i930 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp52, i64 0, i32 0, i32 0
+  %257 = load i8*, i8** %_M_p.i.i.i.i930, align 8, !tbaa !56
+  %cmp.i.i.i932 = icmp eq i8* %257, %246
+  br i1 %cmp.i.i.i932, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit934, label %if.then.i.i933
+
+if.then.i.i933:                                   ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit929
+  call void @_ZdlPv(i8* %257) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit934
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit934: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit929, %if.then.i.i933
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %243) #7
+  %_M_p.i.i935 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_7_w_path, i64 0, i32 0, i32 0
+  %258 = load i8*, i8** %_M_p.i.i935, align 8, !tbaa !56
+  %call55 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %258, i32 0, i32 256, i32 256, i32 3, i32 3)
+  %259 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_7_b_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %259) #7
+  %260 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp56 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %260) #7
+  %261 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp56, i64 0, i32 2
+  %262 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp56 to %union.anon**
+  store %union.anon* %261, %union.anon** %262, align 8, !tbaa !52
+  %263 = bitcast %union.anon* %261 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %263, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.39, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i959 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp56, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i959, align 8, !tbaa !53
+  %264 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp56, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %264, align 2, !tbaa !36
+  %265 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !53, !noalias !107
+  %266 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !56, !noalias !107
+  %call3.i.i.i964 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp56, i64 0, i64 0, i8* %266, i64 %265) #7, !noalias !107
+  %267 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_7_b_path, i64 0, i32 2
+  %268 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_7_b_path to %union.anon**
+  store %union.anon* %267, %union.anon** %268, align 8, !tbaa !52, !alias.scope !107
+  %_M_p.i.i23.i.i965 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i964, i64 0, i32 0, i32 0
+  %269 = load i8*, i8** %_M_p.i.i23.i.i965, align 8, !tbaa !56
+  %270 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i964, i64 0, i32 2
+  %arraydecay.i.i.i.i966 = bitcast %union.anon* %270 to i8*
+  %cmp.i.i.i967 = icmp eq i8* %269, %arraydecay.i.i.i.i966
+  br i1 %cmp.i.i.i967, label %if.then.i.i969, label %if.else.i.i973
+
+if.then.i.i969:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit934
+  %arraydecay.i.i.i968 = bitcast %union.anon* %267 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i968, i8* %269, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit976
+
+if.else.i.i973:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit934
+  %_M_p.i21.i.i970 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_7_b_path, i64 0, i32 0, i32 0
+  store i8* %269, i8** %_M_p.i21.i.i970, align 8, !tbaa !56, !alias.scope !107
+  %_M_allocated_capacity.i.i971 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i964, i64 0, i32 2, i32 0
+  %271 = load i64, i64* %_M_allocated_capacity.i.i971, align 8, !tbaa !12
+  %_M_allocated_capacity.i.i.i972 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_7_b_path, i64 0, i32 2, i32 0
+  store i64 %271, i64* %_M_allocated_capacity.i.i.i972, align 8, !tbaa !12, !alias.scope !107
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit976
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit976: ; preds = %if.then.i.i969, %if.else.i.i973
+  %_M_string_length.i20.i.i974 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i964, i64 0, i32 1
+  %272 = load i64, i64* %_M_string_length.i20.i.i974, align 8, !tbaa !53
+  %_M_string_length.i.i2.i975 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_7_b_path, i64 0, i32 1
+  store i64 %272, i64* %_M_string_length.i.i2.i975, align 8, !tbaa !53, !alias.scope !107
+  %273 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i964 to %union.anon**
+  store %union.anon* %270, %union.anon** %273, align 8, !tbaa !56
+  store i64 0, i64* %_M_string_length.i20.i.i974, align 8, !tbaa !53
+  store i8 0, i8* %arraydecay.i.i.i.i966, align 1, !tbaa !36
+  %_M_p.i.i.i.i977 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp56, i64 0, i32 0, i32 0
+  %274 = load i8*, i8** %_M_p.i.i.i.i977, align 8, !tbaa !56
+  %cmp.i.i.i979 = icmp eq i8* %274, %263
+  br i1 %cmp.i.i.i979, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit981, label %if.then.i.i980
+
+if.then.i.i980:                                   ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit976
+  call void @_ZdlPv(i8* %274) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit981
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit981: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit976, %if.then.i.i980
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %260) #7
+  %_M_p.i.i982 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_7_b_path, i64 0, i32 0, i32 0
+  %275 = load i8*, i8** %_M_p.i.i982, align 8, !tbaa !56
+  %call59 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %275, i32 0, i32 1, i32 256, i32 1, i32 1)
+  %276 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_8_w_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %276) #7
+  %277 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp60 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %277) #7
+  %278 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp60, i64 0, i32 2
+  %279 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp60 to %union.anon**
+  store %union.anon* %278, %union.anon** %279, align 8, !tbaa !52
+  %280 = bitcast %union.anon* %278 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %280, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.40, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i1006 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp60, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i1006, align 8, !tbaa !53
+  %281 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp60, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %281, align 2, !tbaa !36
+  %282 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !53, !noalias !110
+  %283 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !56, !noalias !110
+  %call3.i.i.i1011 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp60, i64 0, i64 0, i8* %283, i64 %282) #7, !noalias !110
+  %284 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_8_w_path, i64 0, i32 2
+  %285 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_8_w_path to %union.anon**
+  store %union.anon* %284, %union.anon** %285, align 8, !tbaa !52, !alias.scope !110
+  %_M_p.i.i23.i.i1012 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1011, i64 0, i32 0, i32 0
+  %286 = load i8*, i8** %_M_p.i.i23.i.i1012, align 8, !tbaa !56
+  %287 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1011, i64 0, i32 2
+  %arraydecay.i.i.i.i1013 = bitcast %union.anon* %287 to i8*
+  %cmp.i.i.i1014 = icmp eq i8* %286, %arraydecay.i.i.i.i1013
+  br i1 %cmp.i.i.i1014, label %if.then.i.i1016, label %if.else.i.i1020
+
+if.then.i.i1016:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit981
+  %arraydecay.i.i.i1015 = bitcast %union.anon* %284 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i1015, i8* %286, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1023
+
+if.else.i.i1020:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit981
+  %_M_p.i21.i.i1017 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_8_w_path, i64 0, i32 0, i32 0
+  store i8* %286, i8** %_M_p.i21.i.i1017, align 8, !tbaa !56, !alias.scope !110
+  %_M_allocated_capacity.i.i1018 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1011, i64 0, i32 2, i32 0
+  %288 = load i64, i64* %_M_allocated_capacity.i.i1018, align 8, !tbaa !12
+  %_M_allocated_capacity.i.i.i1019 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_8_w_path, i64 0, i32 2, i32 0
+  store i64 %288, i64* %_M_allocated_capacity.i.i.i1019, align 8, !tbaa !12, !alias.scope !110
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1023
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1023: ; preds = %if.then.i.i1016, %if.else.i.i1020
+  %_M_string_length.i20.i.i1021 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1011, i64 0, i32 1
+  %289 = load i64, i64* %_M_string_length.i20.i.i1021, align 8, !tbaa !53
+  %_M_string_length.i.i2.i1022 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_8_w_path, i64 0, i32 1
+  store i64 %289, i64* %_M_string_length.i.i2.i1022, align 8, !tbaa !53, !alias.scope !110
+  %290 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i1011 to %union.anon**
+  store %union.anon* %287, %union.anon** %290, align 8, !tbaa !56
+  store i64 0, i64* %_M_string_length.i20.i.i1021, align 8, !tbaa !53
+  store i8 0, i8* %arraydecay.i.i.i.i1013, align 1, !tbaa !36
+  %_M_p.i.i.i.i1024 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp60, i64 0, i32 0, i32 0
+  %291 = load i8*, i8** %_M_p.i.i.i.i1024, align 8, !tbaa !56
+  %cmp.i.i.i1026 = icmp eq i8* %291, %280
+  br i1 %cmp.i.i.i1026, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1028, label %if.then.i.i1027
+
+if.then.i.i1027:                                  ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1023
+  call void @_ZdlPv(i8* %291) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1028
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1028: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1023, %if.then.i.i1027
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %277) #7
+  %_M_p.i.i1029 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_8_w_path, i64 0, i32 0, i32 0
+  %292 = load i8*, i8** %_M_p.i.i1029, align 8, !tbaa !56
+  %call63 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %292, i32 0, i32 512, i32 256, i32 3, i32 3)
+  %293 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_8_b_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %293) #7
+  %294 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp64 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %294) #7
+  %295 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp64, i64 0, i32 2
+  %296 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp64 to %union.anon**
+  store %union.anon* %295, %union.anon** %296, align 8, !tbaa !52
+  %297 = bitcast %union.anon* %295 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %297, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.41, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i1048 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp64, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i1048, align 8, !tbaa !53
+  %298 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp64, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %298, align 2, !tbaa !36
+  %299 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !53, !noalias !113
+  %300 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !56, !noalias !113
+  %call3.i.i.i1053 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp64, i64 0, i64 0, i8* %300, i64 %299) #7, !noalias !113
+  %301 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_8_b_path, i64 0, i32 2
+  %302 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_8_b_path to %union.anon**
+  store %union.anon* %301, %union.anon** %302, align 8, !tbaa !52, !alias.scope !113
+  %_M_p.i.i23.i.i1054 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1053, i64 0, i32 0, i32 0
+  %303 = load i8*, i8** %_M_p.i.i23.i.i1054, align 8, !tbaa !56
+  %304 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1053, i64 0, i32 2
+  %arraydecay.i.i.i.i1055 = bitcast %union.anon* %304 to i8*
+  %cmp.i.i.i1056 = icmp eq i8* %303, %arraydecay.i.i.i.i1055
+  br i1 %cmp.i.i.i1056, label %if.then.i.i1058, label %if.else.i.i1062
+
+if.then.i.i1058:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1028
+  %arraydecay.i.i.i1057 = bitcast %union.anon* %301 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i1057, i8* %303, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1065
+
+if.else.i.i1062:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1028
+  %_M_p.i21.i.i1059 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_8_b_path, i64 0, i32 0, i32 0
+  store i8* %303, i8** %_M_p.i21.i.i1059, align 8, !tbaa !56, !alias.scope !113
+  %_M_allocated_capacity.i.i1060 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1053, i64 0, i32 2, i32 0
+  %305 = load i64, i64* %_M_allocated_capacity.i.i1060, align 8, !tbaa !12
+  %_M_allocated_capacity.i.i.i1061 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_8_b_path, i64 0, i32 2, i32 0
+  store i64 %305, i64* %_M_allocated_capacity.i.i.i1061, align 8, !tbaa !12, !alias.scope !113
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1065
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1065: ; preds = %if.then.i.i1058, %if.else.i.i1062
+  %_M_string_length.i20.i.i1063 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1053, i64 0, i32 1
+  %306 = load i64, i64* %_M_string_length.i20.i.i1063, align 8, !tbaa !53
+  %_M_string_length.i.i2.i1064 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_8_b_path, i64 0, i32 1
+  store i64 %306, i64* %_M_string_length.i.i2.i1064, align 8, !tbaa !53, !alias.scope !113
+  %307 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i1053 to %union.anon**
+  store %union.anon* %304, %union.anon** %307, align 8, !tbaa !56
+  store i64 0, i64* %_M_string_length.i20.i.i1063, align 8, !tbaa !53
+  store i8 0, i8* %arraydecay.i.i.i.i1055, align 1, !tbaa !36
+  %_M_p.i.i.i.i1066 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp64, i64 0, i32 0, i32 0
+  %308 = load i8*, i8** %_M_p.i.i.i.i1066, align 8, !tbaa !56
+  %cmp.i.i.i1068 = icmp eq i8* %308, %297
+  br i1 %cmp.i.i.i1068, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1070, label %if.then.i.i1069
+
+if.then.i.i1069:                                  ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1065
+  call void @_ZdlPv(i8* %308) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1070
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1070: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1065, %if.then.i.i1069
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %294) #7
+  %_M_p.i.i1071 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_8_b_path, i64 0, i32 0, i32 0
+  %309 = load i8*, i8** %_M_p.i.i1071, align 8, !tbaa !56
+  %call67 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %309, i32 0, i32 1, i32 512, i32 1, i32 1)
+  %310 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_9_w_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %310) #7
+  %311 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp68 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %311) #7
+  %312 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp68, i64 0, i32 2
+  %313 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp68 to %union.anon**
+  store %union.anon* %312, %union.anon** %313, align 8, !tbaa !52
+  %314 = bitcast %union.anon* %312 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %314, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.42, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i1085 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp68, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i1085, align 8, !tbaa !53
+  %315 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp68, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %315, align 2, !tbaa !36
+  %316 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !53, !noalias !116
+  %317 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !56, !noalias !116
+  %call3.i.i.i1090 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp68, i64 0, i64 0, i8* %317, i64 %316) #7, !noalias !116
+  %318 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_9_w_path, i64 0, i32 2
+  %319 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_9_w_path to %union.anon**
+  store %union.anon* %318, %union.anon** %319, align 8, !tbaa !52, !alias.scope !116
+  %_M_p.i.i23.i.i1091 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1090, i64 0, i32 0, i32 0
+  %320 = load i8*, i8** %_M_p.i.i23.i.i1091, align 8, !tbaa !56
+  %321 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1090, i64 0, i32 2
+  %arraydecay.i.i.i.i1092 = bitcast %union.anon* %321 to i8*
+  %cmp.i.i.i1093 = icmp eq i8* %320, %arraydecay.i.i.i.i1092
+  br i1 %cmp.i.i.i1093, label %if.then.i.i1095, label %if.else.i.i1099
+
+if.then.i.i1095:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1070
+  %arraydecay.i.i.i1094 = bitcast %union.anon* %318 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i1094, i8* %320, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1102
+
+if.else.i.i1099:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1070
+  %_M_p.i21.i.i1096 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_9_w_path, i64 0, i32 0, i32 0
+  store i8* %320, i8** %_M_p.i21.i.i1096, align 8, !tbaa !56, !alias.scope !116
+  %_M_allocated_capacity.i.i1097 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1090, i64 0, i32 2, i32 0
+  %322 = load i64, i64* %_M_allocated_capacity.i.i1097, align 8, !tbaa !12
+  %_M_allocated_capacity.i.i.i1098 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_9_w_path, i64 0, i32 2, i32 0
+  store i64 %322, i64* %_M_allocated_capacity.i.i.i1098, align 8, !tbaa !12, !alias.scope !116
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1102
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1102: ; preds = %if.then.i.i1095, %if.else.i.i1099
+  %_M_string_length.i20.i.i1100 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1090, i64 0, i32 1
+  %323 = load i64, i64* %_M_string_length.i20.i.i1100, align 8, !tbaa !53
+  %_M_string_length.i.i2.i1101 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_9_w_path, i64 0, i32 1
+  store i64 %323, i64* %_M_string_length.i.i2.i1101, align 8, !tbaa !53, !alias.scope !116
+  %324 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i1090 to %union.anon**
+  store %union.anon* %321, %union.anon** %324, align 8, !tbaa !56
+  store i64 0, i64* %_M_string_length.i20.i.i1100, align 8, !tbaa !53
+  store i8 0, i8* %arraydecay.i.i.i.i1092, align 1, !tbaa !36
+  %_M_p.i.i.i.i1103 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp68, i64 0, i32 0, i32 0
+  %325 = load i8*, i8** %_M_p.i.i.i.i1103, align 8, !tbaa !56
+  %cmp.i.i.i1105 = icmp eq i8* %325, %314
+  br i1 %cmp.i.i.i1105, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1107, label %if.then.i.i1106
+
+if.then.i.i1106:                                  ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1102
+  call void @_ZdlPv(i8* %325) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1107
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1107: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1102, %if.then.i.i1106
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %311) #7
+  %_M_p.i.i1108 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_9_w_path, i64 0, i32 0, i32 0
+  %326 = load i8*, i8** %_M_p.i.i1108, align 8, !tbaa !56
+  %call71 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %326, i32 0, i32 512, i32 512, i32 3, i32 3)
+  %327 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_9_b_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %327) #7
+  %328 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp72 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %328) #7
+  %329 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp72, i64 0, i32 2
+  %330 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp72 to %union.anon**
+  store %union.anon* %329, %union.anon** %330, align 8, !tbaa !52
+  %331 = bitcast %union.anon* %329 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %331, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.43, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i1122 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp72, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i1122, align 8, !tbaa !53
+  %332 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp72, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %332, align 2, !tbaa !36
+  %333 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !53, !noalias !119
+  %334 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !56, !noalias !119
+  %call3.i.i.i1127 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp72, i64 0, i64 0, i8* %334, i64 %333) #7, !noalias !119
+  %335 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_9_b_path, i64 0, i32 2
+  %336 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_9_b_path to %union.anon**
+  store %union.anon* %335, %union.anon** %336, align 8, !tbaa !52, !alias.scope !119
+  %_M_p.i.i23.i.i1128 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1127, i64 0, i32 0, i32 0
+  %337 = load i8*, i8** %_M_p.i.i23.i.i1128, align 8, !tbaa !56
+  %338 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1127, i64 0, i32 2
+  %arraydecay.i.i.i.i1129 = bitcast %union.anon* %338 to i8*
+  %cmp.i.i.i1130 = icmp eq i8* %337, %arraydecay.i.i.i.i1129
+  br i1 %cmp.i.i.i1130, label %if.then.i.i1132, label %if.else.i.i1136
+
+if.then.i.i1132:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1107
+  %arraydecay.i.i.i1131 = bitcast %union.anon* %335 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i1131, i8* %337, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1139
+
+if.else.i.i1136:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1107
+  %_M_p.i21.i.i1133 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_9_b_path, i64 0, i32 0, i32 0
+  store i8* %337, i8** %_M_p.i21.i.i1133, align 8, !tbaa !56, !alias.scope !119
+  %_M_allocated_capacity.i.i1134 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1127, i64 0, i32 2, i32 0
+  %339 = load i64, i64* %_M_allocated_capacity.i.i1134, align 8, !tbaa !12
+  %_M_allocated_capacity.i.i.i1135 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_9_b_path, i64 0, i32 2, i32 0
+  store i64 %339, i64* %_M_allocated_capacity.i.i.i1135, align 8, !tbaa !12, !alias.scope !119
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1139
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1139: ; preds = %if.then.i.i1132, %if.else.i.i1136
+  %_M_string_length.i20.i.i1137 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1127, i64 0, i32 1
+  %340 = load i64, i64* %_M_string_length.i20.i.i1137, align 8, !tbaa !53
+  %_M_string_length.i.i2.i1138 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_9_b_path, i64 0, i32 1
+  store i64 %340, i64* %_M_string_length.i.i2.i1138, align 8, !tbaa !53, !alias.scope !119
+  %341 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i1127 to %union.anon**
+  store %union.anon* %338, %union.anon** %341, align 8, !tbaa !56
+  store i64 0, i64* %_M_string_length.i20.i.i1137, align 8, !tbaa !53
+  store i8 0, i8* %arraydecay.i.i.i.i1129, align 1, !tbaa !36
+  %_M_p.i.i.i.i1140 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp72, i64 0, i32 0, i32 0
+  %342 = load i8*, i8** %_M_p.i.i.i.i1140, align 8, !tbaa !56
+  %cmp.i.i.i1142 = icmp eq i8* %342, %331
+  br i1 %cmp.i.i.i1142, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1144, label %if.then.i.i1143
+
+if.then.i.i1143:                                  ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1139
+  call void @_ZdlPv(i8* %342) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1144
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1144: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1139, %if.then.i.i1143
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %328) #7
+  %_M_p.i.i1145 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_9_b_path, i64 0, i32 0, i32 0
+  %343 = load i8*, i8** %_M_p.i.i1145, align 8, !tbaa !56
+  %call75 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %343, i32 0, i32 1, i32 512, i32 1, i32 1)
+  %344 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_10_w_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %344) #7
+  %345 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp76 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %345) #7
+  %346 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp76, i64 0, i32 2
+  %347 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp76 to %union.anon**
+  store %union.anon* %346, %union.anon** %347, align 8, !tbaa !52
+  %348 = bitcast %union.anon* %346 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %348, i8* nonnull getelementptr inbounds ([16 x i8], [16 x i8]* @.str.44, i64 0, i64 0), i64 15, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i1159 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp76, i64 0, i32 1
+  store i64 15, i64* %_M_string_length.i.i.i.i.i.i1159, align 8, !tbaa !53
+  %349 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp76, i64 0, i32 2, i32 1, i64 7
+  store i8 0, i8* %349, align 1, !tbaa !36
+  %350 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !53, !noalias !122
+  %351 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !56, !noalias !122
+  %call3.i.i.i1164 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp76, i64 0, i64 0, i8* %351, i64 %350) #7, !noalias !122
+  %352 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_10_w_path, i64 0, i32 2
+  %353 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_10_w_path to %union.anon**
+  store %union.anon* %352, %union.anon** %353, align 8, !tbaa !52, !alias.scope !122
+  %_M_p.i.i23.i.i1165 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1164, i64 0, i32 0, i32 0
+  %354 = load i8*, i8** %_M_p.i.i23.i.i1165, align 8, !tbaa !56
+  %355 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1164, i64 0, i32 2
+  %arraydecay.i.i.i.i1166 = bitcast %union.anon* %355 to i8*
+  %cmp.i.i.i1167 = icmp eq i8* %354, %arraydecay.i.i.i.i1166
+  br i1 %cmp.i.i.i1167, label %if.then.i.i1169, label %if.else.i.i1173
+
+if.then.i.i1169:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1144
+  %arraydecay.i.i.i1168 = bitcast %union.anon* %352 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i1168, i8* %354, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1176
+
+if.else.i.i1173:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1144
+  %_M_p.i21.i.i1170 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_10_w_path, i64 0, i32 0, i32 0
+  store i8* %354, i8** %_M_p.i21.i.i1170, align 8, !tbaa !56, !alias.scope !122
+  %_M_allocated_capacity.i.i1171 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1164, i64 0, i32 2, i32 0
+  %356 = load i64, i64* %_M_allocated_capacity.i.i1171, align 8, !tbaa !12
+  %_M_allocated_capacity.i.i.i1172 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_10_w_path, i64 0, i32 2, i32 0
+  store i64 %356, i64* %_M_allocated_capacity.i.i.i1172, align 8, !tbaa !12, !alias.scope !122
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1176
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1176: ; preds = %if.then.i.i1169, %if.else.i.i1173
+  %_M_string_length.i20.i.i1174 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1164, i64 0, i32 1
+  %357 = load i64, i64* %_M_string_length.i20.i.i1174, align 8, !tbaa !53
+  %_M_string_length.i.i2.i1175 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_10_w_path, i64 0, i32 1
+  store i64 %357, i64* %_M_string_length.i.i2.i1175, align 8, !tbaa !53, !alias.scope !122
+  %358 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i1164 to %union.anon**
+  store %union.anon* %355, %union.anon** %358, align 8, !tbaa !56
+  store i64 0, i64* %_M_string_length.i20.i.i1174, align 8, !tbaa !53
+  store i8 0, i8* %arraydecay.i.i.i.i1166, align 1, !tbaa !36
+  %_M_p.i.i.i.i1177 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp76, i64 0, i32 0, i32 0
+  %359 = load i8*, i8** %_M_p.i.i.i.i1177, align 8, !tbaa !56
+  %cmp.i.i.i1179 = icmp eq i8* %359, %348
+  br i1 %cmp.i.i.i1179, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1181, label %if.then.i.i1180
+
+if.then.i.i1180:                                  ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1176
+  call void @_ZdlPv(i8* %359) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1181
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1181: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1176, %if.then.i.i1180
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %345) #7
+  %_M_p.i.i1182 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_10_w_path, i64 0, i32 0, i32 0
+  %360 = load i8*, i8** %_M_p.i.i1182, align 8, !tbaa !56
+  %call79 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %360, i32 0, i32 512, i32 512, i32 3, i32 3)
+  %361 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_10_b_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %361) #7
+  %362 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp80 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %362) #7
+  %363 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp80, i64 0, i32 2
+  %364 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp80 to %union.anon**
+  store %union.anon* %363, %union.anon** %364, align 8, !tbaa !52
+  %365 = bitcast %union.anon* %363 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %365, i8* nonnull getelementptr inbounds ([16 x i8], [16 x i8]* @.str.45, i64 0, i64 0), i64 15, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i1198 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp80, i64 0, i32 1
+  store i64 15, i64* %_M_string_length.i.i.i.i.i.i1198, align 8, !tbaa !53
+  %366 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp80, i64 0, i32 2, i32 1, i64 7
+  store i8 0, i8* %366, align 1, !tbaa !36
+  %367 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !53, !noalias !125
+  %368 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !56, !noalias !125
+  %call3.i.i.i1203 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp80, i64 0, i64 0, i8* %368, i64 %367) #7, !noalias !125
+  %369 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_10_b_path, i64 0, i32 2
+  %370 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_10_b_path to %union.anon**
+  store %union.anon* %369, %union.anon** %370, align 8, !tbaa !52, !alias.scope !125
+  %_M_p.i.i23.i.i1204 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1203, i64 0, i32 0, i32 0
+  %371 = load i8*, i8** %_M_p.i.i23.i.i1204, align 8, !tbaa !56
+  %372 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1203, i64 0, i32 2
+  %arraydecay.i.i.i.i1205 = bitcast %union.anon* %372 to i8*
+  %cmp.i.i.i1206 = icmp eq i8* %371, %arraydecay.i.i.i.i1205
+  br i1 %cmp.i.i.i1206, label %if.then.i.i1208, label %if.else.i.i1212
+
+if.then.i.i1208:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1181
+  %arraydecay.i.i.i1207 = bitcast %union.anon* %369 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i1207, i8* %371, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1215
+
+if.else.i.i1212:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1181
+  %_M_p.i21.i.i1209 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_10_b_path, i64 0, i32 0, i32 0
+  store i8* %371, i8** %_M_p.i21.i.i1209, align 8, !tbaa !56, !alias.scope !125
+  %_M_allocated_capacity.i.i1210 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1203, i64 0, i32 2, i32 0
+  %373 = load i64, i64* %_M_allocated_capacity.i.i1210, align 8, !tbaa !12
+  %_M_allocated_capacity.i.i.i1211 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_10_b_path, i64 0, i32 2, i32 0
+  store i64 %373, i64* %_M_allocated_capacity.i.i.i1211, align 8, !tbaa !12, !alias.scope !125
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1215
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1215: ; preds = %if.then.i.i1208, %if.else.i.i1212
+  %_M_string_length.i20.i.i1213 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1203, i64 0, i32 1
+  %374 = load i64, i64* %_M_string_length.i20.i.i1213, align 8, !tbaa !53
+  %_M_string_length.i.i2.i1214 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_10_b_path, i64 0, i32 1
+  store i64 %374, i64* %_M_string_length.i.i2.i1214, align 8, !tbaa !53, !alias.scope !125
+  %375 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i1203 to %union.anon**
+  store %union.anon* %372, %union.anon** %375, align 8, !tbaa !56
+  store i64 0, i64* %_M_string_length.i20.i.i1213, align 8, !tbaa !53
+  store i8 0, i8* %arraydecay.i.i.i.i1205, align 1, !tbaa !36
+  %_M_p.i.i.i.i1216 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp80, i64 0, i32 0, i32 0
+  %376 = load i8*, i8** %_M_p.i.i.i.i1216, align 8, !tbaa !56
+  %cmp.i.i.i1218 = icmp eq i8* %376, %365
+  br i1 %cmp.i.i.i1218, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1220, label %if.then.i.i1219
+
+if.then.i.i1219:                                  ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1215
+  call void @_ZdlPv(i8* %376) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1220
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1220: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1215, %if.then.i.i1219
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %362) #7
+  %_M_p.i.i1221 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_10_b_path, i64 0, i32 0, i32 0
+  %377 = load i8*, i8** %_M_p.i.i1221, align 8, !tbaa !56
+  %call83 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %377, i32 0, i32 1, i32 512, i32 1, i32 1)
+  %378 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_11_w_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %378) #7
+  %379 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp84 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %379) #7
+  %380 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp84, i64 0, i32 2
+  %381 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp84 to %union.anon**
+  store %union.anon* %380, %union.anon** %381, align 8, !tbaa !52
+  %382 = bitcast %union.anon* %380 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %382, i8* nonnull getelementptr inbounds ([16 x i8], [16 x i8]* @.str.46, i64 0, i64 0), i64 15, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i1256 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp84, i64 0, i32 1
+  store i64 15, i64* %_M_string_length.i.i.i.i.i.i1256, align 8, !tbaa !53
+  %383 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp84, i64 0, i32 2, i32 1, i64 7
+  store i8 0, i8* %383, align 1, !tbaa !36
+  %384 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !53, !noalias !128
+  %385 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !56, !noalias !128
+  %call3.i.i.i1261 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp84, i64 0, i64 0, i8* %385, i64 %384) #7, !noalias !128
+  %386 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_11_w_path, i64 0, i32 2
+  %387 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_11_w_path to %union.anon**
+  store %union.anon* %386, %union.anon** %387, align 8, !tbaa !52, !alias.scope !128
+  %_M_p.i.i23.i.i1262 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1261, i64 0, i32 0, i32 0
+  %388 = load i8*, i8** %_M_p.i.i23.i.i1262, align 8, !tbaa !56
+  %389 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1261, i64 0, i32 2
+  %arraydecay.i.i.i.i1263 = bitcast %union.anon* %389 to i8*
+  %cmp.i.i.i1264 = icmp eq i8* %388, %arraydecay.i.i.i.i1263
+  br i1 %cmp.i.i.i1264, label %if.then.i.i1266, label %if.else.i.i1270
+
+if.then.i.i1266:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1220
+  %arraydecay.i.i.i1265 = bitcast %union.anon* %386 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i1265, i8* %388, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1273
+
+if.else.i.i1270:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1220
+  %_M_p.i21.i.i1267 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_11_w_path, i64 0, i32 0, i32 0
+  store i8* %388, i8** %_M_p.i21.i.i1267, align 8, !tbaa !56, !alias.scope !128
+  %_M_allocated_capacity.i.i1268 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1261, i64 0, i32 2, i32 0
+  %390 = load i64, i64* %_M_allocated_capacity.i.i1268, align 8, !tbaa !12
+  %_M_allocated_capacity.i.i.i1269 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_11_w_path, i64 0, i32 2, i32 0
+  store i64 %390, i64* %_M_allocated_capacity.i.i.i1269, align 8, !tbaa !12, !alias.scope !128
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1273
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1273: ; preds = %if.then.i.i1266, %if.else.i.i1270
+  %_M_string_length.i20.i.i1271 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1261, i64 0, i32 1
+  %391 = load i64, i64* %_M_string_length.i20.i.i1271, align 8, !tbaa !53
+  %_M_string_length.i.i2.i1272 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_11_w_path, i64 0, i32 1
+  store i64 %391, i64* %_M_string_length.i.i2.i1272, align 8, !tbaa !53, !alias.scope !128
+  %392 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i1261 to %union.anon**
+  store %union.anon* %389, %union.anon** %392, align 8, !tbaa !56
+  store i64 0, i64* %_M_string_length.i20.i.i1271, align 8, !tbaa !53
+  store i8 0, i8* %arraydecay.i.i.i.i1263, align 1, !tbaa !36
+  %_M_p.i.i.i.i1274 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp84, i64 0, i32 0, i32 0
+  %393 = load i8*, i8** %_M_p.i.i.i.i1274, align 8, !tbaa !56
+  %cmp.i.i.i1276 = icmp eq i8* %393, %382
+  br i1 %cmp.i.i.i1276, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1278, label %if.then.i.i1277
+
+if.then.i.i1277:                                  ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1273
+  call void @_ZdlPv(i8* %393) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1278
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1278: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1273, %if.then.i.i1277
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %379) #7
+  %_M_p.i.i1279 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_11_w_path, i64 0, i32 0, i32 0
+  %394 = load i8*, i8** %_M_p.i.i1279, align 8, !tbaa !56
+  %call87 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %394, i32 0, i32 512, i32 512, i32 3, i32 3)
+  %395 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_11_b_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %395) #7
+  %396 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp88 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %396) #7
+  %397 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp88, i64 0, i32 2
+  %398 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp88 to %union.anon**
+  store %union.anon* %397, %union.anon** %398, align 8, !tbaa !52
+  %399 = bitcast %union.anon* %397 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %399, i8* nonnull getelementptr inbounds ([16 x i8], [16 x i8]* @.str.47, i64 0, i64 0), i64 15, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i1309 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp88, i64 0, i32 1
+  store i64 15, i64* %_M_string_length.i.i.i.i.i.i1309, align 8, !tbaa !53
+  %400 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp88, i64 0, i32 2, i32 1, i64 7
+  store i8 0, i8* %400, align 1, !tbaa !36
+  %401 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !53, !noalias !131
+  %402 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !56, !noalias !131
+  %call3.i.i.i1314 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp88, i64 0, i64 0, i8* %402, i64 %401) #7, !noalias !131
+  %403 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_11_b_path, i64 0, i32 2
+  %404 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_11_b_path to %union.anon**
+  store %union.anon* %403, %union.anon** %404, align 8, !tbaa !52, !alias.scope !131
+  %_M_p.i.i23.i.i1315 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1314, i64 0, i32 0, i32 0
+  %405 = load i8*, i8** %_M_p.i.i23.i.i1315, align 8, !tbaa !56
+  %406 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1314, i64 0, i32 2
+  %arraydecay.i.i.i.i1316 = bitcast %union.anon* %406 to i8*
+  %cmp.i.i.i1317 = icmp eq i8* %405, %arraydecay.i.i.i.i1316
+  br i1 %cmp.i.i.i1317, label %if.then.i.i1319, label %if.else.i.i1323
+
+if.then.i.i1319:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1278
+  %arraydecay.i.i.i1318 = bitcast %union.anon* %403 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i1318, i8* %405, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1326
+
+if.else.i.i1323:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1278
+  %_M_p.i21.i.i1320 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_11_b_path, i64 0, i32 0, i32 0
+  store i8* %405, i8** %_M_p.i21.i.i1320, align 8, !tbaa !56, !alias.scope !131
+  %_M_allocated_capacity.i.i1321 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1314, i64 0, i32 2, i32 0
+  %407 = load i64, i64* %_M_allocated_capacity.i.i1321, align 8, !tbaa !12
+  %_M_allocated_capacity.i.i.i1322 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_11_b_path, i64 0, i32 2, i32 0
+  store i64 %407, i64* %_M_allocated_capacity.i.i.i1322, align 8, !tbaa !12, !alias.scope !131
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1326
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1326: ; preds = %if.then.i.i1319, %if.else.i.i1323
+  %_M_string_length.i20.i.i1324 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1314, i64 0, i32 1
+  %408 = load i64, i64* %_M_string_length.i20.i.i1324, align 8, !tbaa !53
+  %_M_string_length.i.i2.i1325 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_11_b_path, i64 0, i32 1
+  store i64 %408, i64* %_M_string_length.i.i2.i1325, align 8, !tbaa !53, !alias.scope !131
+  %409 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i1314 to %union.anon**
+  store %union.anon* %406, %union.anon** %409, align 8, !tbaa !56
+  store i64 0, i64* %_M_string_length.i20.i.i1324, align 8, !tbaa !53
+  store i8 0, i8* %arraydecay.i.i.i.i1316, align 1, !tbaa !36
+  %_M_p.i.i.i.i1327 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp88, i64 0, i32 0, i32 0
+  %410 = load i8*, i8** %_M_p.i.i.i.i1327, align 8, !tbaa !56
+  %cmp.i.i.i1329 = icmp eq i8* %410, %399
+  br i1 %cmp.i.i.i1329, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1331, label %if.then.i.i1330
+
+if.then.i.i1330:                                  ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1326
+  call void @_ZdlPv(i8* %410) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1331
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1331: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1326, %if.then.i.i1330
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %396) #7
+  %_M_p.i.i1332 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_11_b_path, i64 0, i32 0, i32 0
+  %411 = load i8*, i8** %_M_p.i.i1332, align 8, !tbaa !56
+  %call91 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %411, i32 0, i32 1, i32 512, i32 1, i32 1)
+  %412 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_12_w_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %412) #7
+  %413 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp92 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %413) #7
+  %414 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp92, i64 0, i32 2
+  %415 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp92 to %union.anon**
+  store %union.anon* %414, %union.anon** %415, align 8, !tbaa !52
+  %416 = bitcast %union.anon* %414 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %416, i8* nonnull getelementptr inbounds ([16 x i8], [16 x i8]* @.str.48, i64 0, i64 0), i64 15, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i1352 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp92, i64 0, i32 1
+  store i64 15, i64* %_M_string_length.i.i.i.i.i.i1352, align 8, !tbaa !53
+  %417 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp92, i64 0, i32 2, i32 1, i64 7
+  store i8 0, i8* %417, align 1, !tbaa !36
+  %418 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !53, !noalias !134
+  %419 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !56, !noalias !134
+  %call3.i.i.i1357 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp92, i64 0, i64 0, i8* %419, i64 %418) #7, !noalias !134
+  %420 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_12_w_path, i64 0, i32 2
+  %421 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_12_w_path to %union.anon**
+  store %union.anon* %420, %union.anon** %421, align 8, !tbaa !52, !alias.scope !134
+  %_M_p.i.i23.i.i1358 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1357, i64 0, i32 0, i32 0
+  %422 = load i8*, i8** %_M_p.i.i23.i.i1358, align 8, !tbaa !56
+  %423 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1357, i64 0, i32 2
+  %arraydecay.i.i.i.i1359 = bitcast %union.anon* %423 to i8*
+  %cmp.i.i.i1360 = icmp eq i8* %422, %arraydecay.i.i.i.i1359
+  br i1 %cmp.i.i.i1360, label %if.then.i.i1362, label %if.else.i.i1366
+
+if.then.i.i1362:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1331
+  %arraydecay.i.i.i1361 = bitcast %union.anon* %420 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i1361, i8* %422, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1369
+
+if.else.i.i1366:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1331
+  %_M_p.i21.i.i1363 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_12_w_path, i64 0, i32 0, i32 0
+  store i8* %422, i8** %_M_p.i21.i.i1363, align 8, !tbaa !56, !alias.scope !134
+  %_M_allocated_capacity.i.i1364 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1357, i64 0, i32 2, i32 0
+  %424 = load i64, i64* %_M_allocated_capacity.i.i1364, align 8, !tbaa !12
+  %_M_allocated_capacity.i.i.i1365 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_12_w_path, i64 0, i32 2, i32 0
+  store i64 %424, i64* %_M_allocated_capacity.i.i.i1365, align 8, !tbaa !12, !alias.scope !134
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1369
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1369: ; preds = %if.then.i.i1362, %if.else.i.i1366
+  %_M_string_length.i20.i.i1367 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1357, i64 0, i32 1
+  %425 = load i64, i64* %_M_string_length.i20.i.i1367, align 8, !tbaa !53
+  %_M_string_length.i.i2.i1368 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_12_w_path, i64 0, i32 1
+  store i64 %425, i64* %_M_string_length.i.i2.i1368, align 8, !tbaa !53, !alias.scope !134
+  %426 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i1357 to %union.anon**
+  store %union.anon* %423, %union.anon** %426, align 8, !tbaa !56
+  store i64 0, i64* %_M_string_length.i20.i.i1367, align 8, !tbaa !53
+  store i8 0, i8* %arraydecay.i.i.i.i1359, align 1, !tbaa !36
+  %_M_p.i.i.i.i1370 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp92, i64 0, i32 0, i32 0
+  %427 = load i8*, i8** %_M_p.i.i.i.i1370, align 8, !tbaa !56
+  %cmp.i.i.i1372 = icmp eq i8* %427, %416
+  br i1 %cmp.i.i.i1372, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1374, label %if.then.i.i1373
+
+if.then.i.i1373:                                  ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1369
+  call void @_ZdlPv(i8* %427) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1374
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1374: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1369, %if.then.i.i1373
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %413) #7
+  %_M_p.i.i1375 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_12_w_path, i64 0, i32 0, i32 0
+  %428 = load i8*, i8** %_M_p.i.i1375, align 8, !tbaa !56
+  %call95 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %428, i32 0, i32 512, i32 512, i32 3, i32 3)
+  %429 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_12_b_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %429) #7
+  %430 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp96 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %430) #7
+  %431 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp96, i64 0, i32 2
+  %432 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp96 to %union.anon**
+  store %union.anon* %431, %union.anon** %432, align 8, !tbaa !52
+  %433 = bitcast %union.anon* %431 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %433, i8* nonnull getelementptr inbounds ([16 x i8], [16 x i8]* @.str.49, i64 0, i64 0), i64 15, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i1420 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp96, i64 0, i32 1
+  store i64 15, i64* %_M_string_length.i.i.i.i.i.i1420, align 8, !tbaa !53
+  %434 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp96, i64 0, i32 2, i32 1, i64 7
+  store i8 0, i8* %434, align 1, !tbaa !36
+  %435 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !53, !noalias !137
+  %436 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !56, !noalias !137
+  %call3.i.i.i1425 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp96, i64 0, i64 0, i8* %436, i64 %435) #7, !noalias !137
+  %437 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_12_b_path, i64 0, i32 2
+  %438 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_12_b_path to %union.anon**
+  store %union.anon* %437, %union.anon** %438, align 8, !tbaa !52, !alias.scope !137
+  %_M_p.i.i23.i.i1426 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1425, i64 0, i32 0, i32 0
+  %439 = load i8*, i8** %_M_p.i.i23.i.i1426, align 8, !tbaa !56
+  %440 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1425, i64 0, i32 2
+  %arraydecay.i.i.i.i1427 = bitcast %union.anon* %440 to i8*
+  %cmp.i.i.i1428 = icmp eq i8* %439, %arraydecay.i.i.i.i1427
+  br i1 %cmp.i.i.i1428, label %if.then.i.i1430, label %if.else.i.i1434
+
+if.then.i.i1430:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1374
+  %arraydecay.i.i.i1429 = bitcast %union.anon* %437 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i1429, i8* %439, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1437
+
+if.else.i.i1434:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1374
+  %_M_p.i21.i.i1431 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_12_b_path, i64 0, i32 0, i32 0
+  store i8* %439, i8** %_M_p.i21.i.i1431, align 8, !tbaa !56, !alias.scope !137
+  %_M_allocated_capacity.i.i1432 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1425, i64 0, i32 2, i32 0
+  %441 = load i64, i64* %_M_allocated_capacity.i.i1432, align 8, !tbaa !12
+  %_M_allocated_capacity.i.i.i1433 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_12_b_path, i64 0, i32 2, i32 0
+  store i64 %441, i64* %_M_allocated_capacity.i.i.i1433, align 8, !tbaa !12, !alias.scope !137
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1437
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1437: ; preds = %if.then.i.i1430, %if.else.i.i1434
+  %_M_string_length.i20.i.i1435 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1425, i64 0, i32 1
+  %442 = load i64, i64* %_M_string_length.i20.i.i1435, align 8, !tbaa !53
+  %_M_string_length.i.i2.i1436 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_12_b_path, i64 0, i32 1
+  store i64 %442, i64* %_M_string_length.i.i2.i1436, align 8, !tbaa !53, !alias.scope !137
+  %443 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i1425 to %union.anon**
+  store %union.anon* %440, %union.anon** %443, align 8, !tbaa !56
+  store i64 0, i64* %_M_string_length.i20.i.i1435, align 8, !tbaa !53
+  store i8 0, i8* %arraydecay.i.i.i.i1427, align 1, !tbaa !36
+  %_M_p.i.i.i.i1438 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp96, i64 0, i32 0, i32 0
+  %444 = load i8*, i8** %_M_p.i.i.i.i1438, align 8, !tbaa !56
+  %cmp.i.i.i1440 = icmp eq i8* %444, %433
+  br i1 %cmp.i.i.i1440, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1442, label %if.then.i.i1441
+
+if.then.i.i1441:                                  ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1437
+  call void @_ZdlPv(i8* %444) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1442
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1442: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1437, %if.then.i.i1441
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %430) #7
+  %_M_p.i.i1443 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_12_b_path, i64 0, i32 0, i32 0
+  %445 = load i8*, i8** %_M_p.i.i1443, align 8, !tbaa !56
+  %call99 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %445, i32 0, i32 1, i32 512, i32 1, i32 1)
+  %446 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_13_w_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %446) #7
+  %447 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp100 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %447) #7
+  %448 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp100, i64 0, i32 2
+  %449 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp100 to %union.anon**
+  store %union.anon* %448, %union.anon** %449, align 8, !tbaa !52
+  %450 = bitcast %union.anon* %448 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %450, i8* nonnull getelementptr inbounds ([16 x i8], [16 x i8]* @.str.50, i64 0, i64 0), i64 15, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i1457 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp100, i64 0, i32 1
+  store i64 15, i64* %_M_string_length.i.i.i.i.i.i1457, align 8, !tbaa !53
+  %451 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp100, i64 0, i32 2, i32 1, i64 7
+  store i8 0, i8* %451, align 1, !tbaa !36
+  %452 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !53, !noalias !140
+  %453 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !56, !noalias !140
+  %call3.i.i.i1462 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp100, i64 0, i64 0, i8* %453, i64 %452) #7, !noalias !140
+  %454 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_13_w_path, i64 0, i32 2
+  %455 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_13_w_path to %union.anon**
+  store %union.anon* %454, %union.anon** %455, align 8, !tbaa !52, !alias.scope !140
+  %_M_p.i.i23.i.i1463 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1462, i64 0, i32 0, i32 0
+  %456 = load i8*, i8** %_M_p.i.i23.i.i1463, align 8, !tbaa !56
+  %457 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1462, i64 0, i32 2
+  %arraydecay.i.i.i.i1464 = bitcast %union.anon* %457 to i8*
+  %cmp.i.i.i1465 = icmp eq i8* %456, %arraydecay.i.i.i.i1464
+  br i1 %cmp.i.i.i1465, label %if.then.i.i1467, label %if.else.i.i1471
+
+if.then.i.i1467:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1442
+  %arraydecay.i.i.i1466 = bitcast %union.anon* %454 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i1466, i8* %456, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1474
+
+if.else.i.i1471:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1442
+  %_M_p.i21.i.i1468 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_13_w_path, i64 0, i32 0, i32 0
+  store i8* %456, i8** %_M_p.i21.i.i1468, align 8, !tbaa !56, !alias.scope !140
+  %_M_allocated_capacity.i.i1469 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1462, i64 0, i32 2, i32 0
+  %458 = load i64, i64* %_M_allocated_capacity.i.i1469, align 8, !tbaa !12
+  %_M_allocated_capacity.i.i.i1470 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_13_w_path, i64 0, i32 2, i32 0
+  store i64 %458, i64* %_M_allocated_capacity.i.i.i1470, align 8, !tbaa !12, !alias.scope !140
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1474
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1474: ; preds = %if.then.i.i1467, %if.else.i.i1471
+  %_M_string_length.i20.i.i1472 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1462, i64 0, i32 1
+  %459 = load i64, i64* %_M_string_length.i20.i.i1472, align 8, !tbaa !53
+  %_M_string_length.i.i2.i1473 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_13_w_path, i64 0, i32 1
+  store i64 %459, i64* %_M_string_length.i.i2.i1473, align 8, !tbaa !53, !alias.scope !140
+  %460 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i1462 to %union.anon**
+  store %union.anon* %457, %union.anon** %460, align 8, !tbaa !56
+  store i64 0, i64* %_M_string_length.i20.i.i1472, align 8, !tbaa !53
+  store i8 0, i8* %arraydecay.i.i.i.i1464, align 1, !tbaa !36
+  %_M_p.i.i.i.i1475 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp100, i64 0, i32 0, i32 0
+  %461 = load i8*, i8** %_M_p.i.i.i.i1475, align 8, !tbaa !56
+  %cmp.i.i.i1477 = icmp eq i8* %461, %450
+  br i1 %cmp.i.i.i1477, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1479, label %if.then.i.i1478
+
+if.then.i.i1478:                                  ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1474
+  call void @_ZdlPv(i8* %461) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1479
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1479: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1474, %if.then.i.i1478
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %447) #7
+  %_M_p.i.i1480 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_13_w_path, i64 0, i32 0, i32 0
+  %462 = load i8*, i8** %_M_p.i.i1480, align 8, !tbaa !56
+  %call103 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %462, i32 0, i32 512, i32 512, i32 3, i32 3)
+  %463 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_13_b_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %463) #7
+  %464 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp104 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %464) #7
+  %465 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp104, i64 0, i32 2
+  %466 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp104 to %union.anon**
+  store %union.anon* %465, %union.anon** %466, align 8, !tbaa !52
+  %467 = bitcast %union.anon* %465 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %467, i8* nonnull getelementptr inbounds ([16 x i8], [16 x i8]* @.str.51, i64 0, i64 0), i64 15, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i1515 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp104, i64 0, i32 1
+  store i64 15, i64* %_M_string_length.i.i.i.i.i.i1515, align 8, !tbaa !53
+  %468 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp104, i64 0, i32 2, i32 1, i64 7
+  store i8 0, i8* %468, align 1, !tbaa !36
+  %469 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !53, !noalias !143
+  %470 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !56, !noalias !143
+  %call3.i.i.i1520 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp104, i64 0, i64 0, i8* %470, i64 %469) #7, !noalias !143
+  %471 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_13_b_path, i64 0, i32 2
+  %472 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_13_b_path to %union.anon**
+  store %union.anon* %471, %union.anon** %472, align 8, !tbaa !52, !alias.scope !143
+  %_M_p.i.i23.i.i1521 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1520, i64 0, i32 0, i32 0
+  %473 = load i8*, i8** %_M_p.i.i23.i.i1521, align 8, !tbaa !56
+  %474 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1520, i64 0, i32 2
+  %arraydecay.i.i.i.i1522 = bitcast %union.anon* %474 to i8*
+  %cmp.i.i.i1523 = icmp eq i8* %473, %arraydecay.i.i.i.i1522
+  br i1 %cmp.i.i.i1523, label %if.then.i.i1525, label %if.else.i.i1529
+
+if.then.i.i1525:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1479
+  %arraydecay.i.i.i1524 = bitcast %union.anon* %471 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i1524, i8* %473, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1532
+
+if.else.i.i1529:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1479
+  %_M_p.i21.i.i1526 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_13_b_path, i64 0, i32 0, i32 0
+  store i8* %473, i8** %_M_p.i21.i.i1526, align 8, !tbaa !56, !alias.scope !143
+  %_M_allocated_capacity.i.i1527 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1520, i64 0, i32 2, i32 0
+  %475 = load i64, i64* %_M_allocated_capacity.i.i1527, align 8, !tbaa !12
+  %_M_allocated_capacity.i.i.i1528 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_13_b_path, i64 0, i32 2, i32 0
+  store i64 %475, i64* %_M_allocated_capacity.i.i.i1528, align 8, !tbaa !12, !alias.scope !143
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1532
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1532: ; preds = %if.then.i.i1525, %if.else.i.i1529
+  %_M_string_length.i20.i.i1530 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1520, i64 0, i32 1
+  %476 = load i64, i64* %_M_string_length.i20.i.i1530, align 8, !tbaa !53
+  %_M_string_length.i.i2.i1531 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_13_b_path, i64 0, i32 1
+  store i64 %476, i64* %_M_string_length.i.i2.i1531, align 8, !tbaa !53, !alias.scope !143
+  %477 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i1520 to %union.anon**
+  store %union.anon* %474, %union.anon** %477, align 8, !tbaa !56
+  store i64 0, i64* %_M_string_length.i20.i.i1530, align 8, !tbaa !53
+  store i8 0, i8* %arraydecay.i.i.i.i1522, align 1, !tbaa !36
+  %_M_p.i.i.i.i1533 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp104, i64 0, i32 0, i32 0
+  %478 = load i8*, i8** %_M_p.i.i.i.i1533, align 8, !tbaa !56
+  %cmp.i.i.i1535 = icmp eq i8* %478, %467
+  br i1 %cmp.i.i.i1535, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1537, label %if.then.i.i1536
+
+if.then.i.i1536:                                  ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1532
+  call void @_ZdlPv(i8* %478) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1537
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1537: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1532, %if.then.i.i1536
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %464) #7
+  %_M_p.i.i1538 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_13_b_path, i64 0, i32 0, i32 0
+  %479 = load i8*, i8** %_M_p.i.i1538, align 8, !tbaa !56
+  %call107 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %479, i32 0, i32 1, i32 512, i32 1, i32 1)
+  %480 = bitcast %"class.std::__cxx11::basic_string"* %dense_1_w_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %480) #7
+  %481 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp108 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %481) #7
+  %482 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp108, i64 0, i32 2
+  %483 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp108 to %union.anon**
+  store %union.anon* %482, %union.anon** %483, align 8, !tbaa !52
+  %484 = bitcast %union.anon* %482 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %484, i8* nonnull getelementptr inbounds ([14 x i8], [14 x i8]* @.str.52, i64 0, i64 0), i64 13, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i1568 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp108, i64 0, i32 1
+  store i64 13, i64* %_M_string_length.i.i.i.i.i.i1568, align 8, !tbaa !53
+  %485 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp108, i64 0, i32 2, i32 1, i64 5
+  store i8 0, i8* %485, align 1, !tbaa !36
+  %486 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !53, !noalias !146
+  %487 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !56, !noalias !146
+  %call3.i.i.i1573 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp108, i64 0, i64 0, i8* %487, i64 %486) #7, !noalias !146
+  %488 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_1_w_path, i64 0, i32 2
+  %489 = bitcast %"class.std::__cxx11::basic_string"* %dense_1_w_path to %union.anon**
+  store %union.anon* %488, %union.anon** %489, align 8, !tbaa !52, !alias.scope !146
+  %_M_p.i.i23.i.i1574 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1573, i64 0, i32 0, i32 0
+  %490 = load i8*, i8** %_M_p.i.i23.i.i1574, align 8, !tbaa !56
+  %491 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1573, i64 0, i32 2
+  %arraydecay.i.i.i.i1575 = bitcast %union.anon* %491 to i8*
+  %cmp.i.i.i1576 = icmp eq i8* %490, %arraydecay.i.i.i.i1575
+  br i1 %cmp.i.i.i1576, label %if.then.i.i1578, label %if.else.i.i1582
+
+if.then.i.i1578:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1537
+  %arraydecay.i.i.i1577 = bitcast %union.anon* %488 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i1577, i8* %490, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1585
+
+if.else.i.i1582:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1537
+  %_M_p.i21.i.i1579 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_1_w_path, i64 0, i32 0, i32 0
+  store i8* %490, i8** %_M_p.i21.i.i1579, align 8, !tbaa !56, !alias.scope !146
+  %_M_allocated_capacity.i.i1580 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1573, i64 0, i32 2, i32 0
+  %492 = load i64, i64* %_M_allocated_capacity.i.i1580, align 8, !tbaa !12
+  %_M_allocated_capacity.i.i.i1581 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_1_w_path, i64 0, i32 2, i32 0
+  store i64 %492, i64* %_M_allocated_capacity.i.i.i1581, align 8, !tbaa !12, !alias.scope !146
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1585
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1585: ; preds = %if.then.i.i1578, %if.else.i.i1582
+  %_M_string_length.i20.i.i1583 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1573, i64 0, i32 1
+  %493 = load i64, i64* %_M_string_length.i20.i.i1583, align 8, !tbaa !53
+  %_M_string_length.i.i2.i1584 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_1_w_path, i64 0, i32 1
+  store i64 %493, i64* %_M_string_length.i.i2.i1584, align 8, !tbaa !53, !alias.scope !146
+  %494 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i1573 to %union.anon**
+  store %union.anon* %491, %union.anon** %494, align 8, !tbaa !56
+  store i64 0, i64* %_M_string_length.i20.i.i1583, align 8, !tbaa !53
+  store i8 0, i8* %arraydecay.i.i.i.i1575, align 1, !tbaa !36
+  %_M_p.i.i.i.i1586 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp108, i64 0, i32 0, i32 0
+  %495 = load i8*, i8** %_M_p.i.i.i.i1586, align 8, !tbaa !56
+  %cmp.i.i.i1588 = icmp eq i8* %495, %484
+  br i1 %cmp.i.i.i1588, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1590, label %if.then.i.i1589
+
+if.then.i.i1589:                                  ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1585
+  call void @_ZdlPv(i8* %495) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1590
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1590: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1585, %if.then.i.i1589
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %481) #7
+  %_M_p.i.i1591 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_1_w_path, i64 0, i32 0, i32 0
+  %496 = load i8*, i8** %_M_p.i.i1591, align 8, !tbaa !56
+  %call111 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %496, i32 0, i32 1, i32 1, i32 512, i32 512)
+  %497 = bitcast %"class.std::__cxx11::basic_string"* %dense_1_b_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %497) #7
+  %498 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp112 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %498) #7
+  %499 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp112, i64 0, i32 2
+  %500 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp112 to %union.anon**
+  store %union.anon* %499, %union.anon** %500, align 8, !tbaa !52
+  %501 = bitcast %union.anon* %499 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %501, i8* nonnull getelementptr inbounds ([14 x i8], [14 x i8]* @.str.53, i64 0, i64 0), i64 13, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i1552 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp112, i64 0, i32 1
+  store i64 13, i64* %_M_string_length.i.i.i.i.i.i1552, align 8, !tbaa !53
+  %502 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp112, i64 0, i32 2, i32 1, i64 5
+  store i8 0, i8* %502, align 1, !tbaa !36
+  %503 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !53, !noalias !149
+  %504 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !56, !noalias !149
+  %call3.i.i.i1489 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp112, i64 0, i64 0, i8* %504, i64 %503) #7, !noalias !149
+  %505 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_1_b_path, i64 0, i32 2
+  %506 = bitcast %"class.std::__cxx11::basic_string"* %dense_1_b_path to %union.anon**
+  store %union.anon* %505, %union.anon** %506, align 8, !tbaa !52, !alias.scope !149
+  %_M_p.i.i23.i.i1490 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1489, i64 0, i32 0, i32 0
+  %507 = load i8*, i8** %_M_p.i.i23.i.i1490, align 8, !tbaa !56
+  %508 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1489, i64 0, i32 2
+  %arraydecay.i.i.i.i1491 = bitcast %union.anon* %508 to i8*
+  %cmp.i.i.i1492 = icmp eq i8* %507, %arraydecay.i.i.i.i1491
+  br i1 %cmp.i.i.i1492, label %if.then.i.i1494, label %if.else.i.i1498
+
+if.then.i.i1494:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1590
+  %arraydecay.i.i.i1493 = bitcast %union.anon* %505 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i1493, i8* %507, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1501
+
+if.else.i.i1498:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1590
+  %_M_p.i21.i.i1495 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_1_b_path, i64 0, i32 0, i32 0
+  store i8* %507, i8** %_M_p.i21.i.i1495, align 8, !tbaa !56, !alias.scope !149
+  %_M_allocated_capacity.i.i1496 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1489, i64 0, i32 2, i32 0
+  %509 = load i64, i64* %_M_allocated_capacity.i.i1496, align 8, !tbaa !12
+  %_M_allocated_capacity.i.i.i1497 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_1_b_path, i64 0, i32 2, i32 0
+  store i64 %509, i64* %_M_allocated_capacity.i.i.i1497, align 8, !tbaa !12, !alias.scope !149
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1501
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1501: ; preds = %if.then.i.i1494, %if.else.i.i1498
+  %_M_string_length.i20.i.i1499 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1489, i64 0, i32 1
+  %510 = load i64, i64* %_M_string_length.i20.i.i1499, align 8, !tbaa !53
+  %_M_string_length.i.i2.i1500 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_1_b_path, i64 0, i32 1
+  store i64 %510, i64* %_M_string_length.i.i2.i1500, align 8, !tbaa !53, !alias.scope !149
+  %511 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i1489 to %union.anon**
+  store %union.anon* %508, %union.anon** %511, align 8, !tbaa !56
+  store i64 0, i64* %_M_string_length.i20.i.i1499, align 8, !tbaa !53
+  store i8 0, i8* %arraydecay.i.i.i.i1491, align 1, !tbaa !36
+  %_M_p.i.i.i.i1482 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp112, i64 0, i32 0, i32 0
+  %512 = load i8*, i8** %_M_p.i.i.i.i1482, align 8, !tbaa !56
+  %cmp.i.i.i1484 = icmp eq i8* %512, %501
+  br i1 %cmp.i.i.i1484, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1486, label %if.then.i.i1485
+
+if.then.i.i1485:                                  ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1501
+  call void @_ZdlPv(i8* %512) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1486
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1486: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1501, %if.then.i.i1485
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %498) #7
+  %_M_p.i.i1481 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_1_b_path, i64 0, i32 0, i32 0
+  %513 = load i8*, i8** %_M_p.i.i1481, align 8, !tbaa !56
+  %call115 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %513, i32 0, i32 1, i32 512, i32 1, i32 1)
+  %514 = bitcast %"class.std::__cxx11::basic_string"* %dense_2_w_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %514) #7
+  %515 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp116 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %515) #7
+  %516 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp116, i64 0, i32 2
+  %517 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp116 to %union.anon**
+  store %union.anon* %516, %union.anon** %517, align 8, !tbaa !52
+  %518 = bitcast %union.anon* %516 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %518, i8* nonnull getelementptr inbounds ([14 x i8], [14 x i8]* @.str.54, i64 0, i64 0), i64 13, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i1404 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp116, i64 0, i32 1
+  store i64 13, i64* %_M_string_length.i.i.i.i.i.i1404, align 8, !tbaa !53
+  %519 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp116, i64 0, i32 2, i32 1, i64 5
+  store i8 0, i8* %519, align 1, !tbaa !36
+  %520 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !53, !noalias !152
+  %521 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !56, !noalias !152
+  %call3.i.i.i1378 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp116, i64 0, i64 0, i8* %521, i64 %520) #7, !noalias !152
+  %522 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_2_w_path, i64 0, i32 2
+  %523 = bitcast %"class.std::__cxx11::basic_string"* %dense_2_w_path to %union.anon**
+  store %union.anon* %522, %union.anon** %523, align 8, !tbaa !52, !alias.scope !152
+  %_M_p.i.i23.i.i1379 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1378, i64 0, i32 0, i32 0
+  %524 = load i8*, i8** %_M_p.i.i23.i.i1379, align 8, !tbaa !56
+  %525 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1378, i64 0, i32 2
+  %arraydecay.i.i.i.i1380 = bitcast %union.anon* %525 to i8*
+  %cmp.i.i.i1381 = icmp eq i8* %524, %arraydecay.i.i.i.i1380
+  br i1 %cmp.i.i.i1381, label %if.then.i.i1383, label %if.else.i.i1387
+
+if.then.i.i1383:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1486
+  %arraydecay.i.i.i1382 = bitcast %union.anon* %522 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i1382, i8* %524, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1390
+
+if.else.i.i1387:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1486
+  %_M_p.i21.i.i1384 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_2_w_path, i64 0, i32 0, i32 0
+  store i8* %524, i8** %_M_p.i21.i.i1384, align 8, !tbaa !56, !alias.scope !152
+  %_M_allocated_capacity.i.i1385 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1378, i64 0, i32 2, i32 0
+  %526 = load i64, i64* %_M_allocated_capacity.i.i1385, align 8, !tbaa !12
+  %_M_allocated_capacity.i.i.i1386 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_2_w_path, i64 0, i32 2, i32 0
+  store i64 %526, i64* %_M_allocated_capacity.i.i.i1386, align 8, !tbaa !12, !alias.scope !152
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1390
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1390: ; preds = %if.then.i.i1383, %if.else.i.i1387
+  %_M_string_length.i20.i.i1388 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1378, i64 0, i32 1
+  %527 = load i64, i64* %_M_string_length.i20.i.i1388, align 8, !tbaa !53
+  %_M_string_length.i.i2.i1389 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_2_w_path, i64 0, i32 1
+  store i64 %527, i64* %_M_string_length.i.i2.i1389, align 8, !tbaa !53, !alias.scope !152
+  %528 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i1378 to %union.anon**
+  store %union.anon* %525, %union.anon** %528, align 8, !tbaa !56
+  store i64 0, i64* %_M_string_length.i20.i.i1388, align 8, !tbaa !53
+  store i8 0, i8* %arraydecay.i.i.i.i1380, align 1, !tbaa !36
+  %_M_p.i.i.i.i1334 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp116, i64 0, i32 0, i32 0
+  %529 = load i8*, i8** %_M_p.i.i.i.i1334, align 8, !tbaa !56
+  %cmp.i.i.i1336 = icmp eq i8* %529, %518
+  br i1 %cmp.i.i.i1336, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1338, label %if.then.i.i1337
+
+if.then.i.i1337:                                  ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1390
+  call void @_ZdlPv(i8* %529) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1338
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1338: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1390, %if.then.i.i1337
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %515) #7
+  %_M_p.i.i1333 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_2_w_path, i64 0, i32 0, i32 0
+  %530 = load i8*, i8** %_M_p.i.i1333, align 8, !tbaa !56
+  %call119 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %530, i32 0, i32 1, i32 1, i32 512, i32 10)
+  %531 = bitcast %"class.std::__cxx11::basic_string"* %dense_2_b_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %531) #7
+  %532 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp120 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %532) #7
+  %533 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp120, i64 0, i32 2
+  %534 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp120 to %union.anon**
+  store %union.anon* %533, %union.anon** %534, align 8, !tbaa !52
+  %535 = bitcast %union.anon* %533 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %535, i8* nonnull getelementptr inbounds ([14 x i8], [14 x i8]* @.str.55, i64 0, i64 0), i64 13, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i1293 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp120, i64 0, i32 1
+  store i64 13, i64* %_M_string_length.i.i.i.i.i.i1293, align 8, !tbaa !53
+  %536 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp120, i64 0, i32 2, i32 1, i64 5
+  store i8 0, i8* %536, align 1, !tbaa !36
+  %537 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !53, !noalias !155
+  %538 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !56, !noalias !155
+  %call3.i.i.i1230 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp120, i64 0, i64 0, i8* %538, i64 %537) #7, !noalias !155
+  %539 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_2_b_path, i64 0, i32 2
+  %540 = bitcast %"class.std::__cxx11::basic_string"* %dense_2_b_path to %union.anon**
+  store %union.anon* %539, %union.anon** %540, align 8, !tbaa !52, !alias.scope !155
+  %_M_p.i.i23.i.i1231 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1230, i64 0, i32 0, i32 0
+  %541 = load i8*, i8** %_M_p.i.i23.i.i1231, align 8, !tbaa !56
+  %542 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1230, i64 0, i32 2
+  %arraydecay.i.i.i.i1232 = bitcast %union.anon* %542 to i8*
+  %cmp.i.i.i1233 = icmp eq i8* %541, %arraydecay.i.i.i.i1232
+  br i1 %cmp.i.i.i1233, label %if.then.i.i1235, label %if.else.i.i1239
+
+if.then.i.i1235:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1338
+  %arraydecay.i.i.i1234 = bitcast %union.anon* %539 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i1234, i8* %541, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1242
+
+if.else.i.i1239:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1338
+  %_M_p.i21.i.i1236 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_2_b_path, i64 0, i32 0, i32 0
+  store i8* %541, i8** %_M_p.i21.i.i1236, align 8, !tbaa !56, !alias.scope !155
+  %_M_allocated_capacity.i.i1237 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1230, i64 0, i32 2, i32 0
+  %543 = load i64, i64* %_M_allocated_capacity.i.i1237, align 8, !tbaa !12
+  %_M_allocated_capacity.i.i.i1238 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_2_b_path, i64 0, i32 2, i32 0
+  store i64 %543, i64* %_M_allocated_capacity.i.i.i1238, align 8, !tbaa !12, !alias.scope !155
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1242
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1242: ; preds = %if.then.i.i1235, %if.else.i.i1239
+  %_M_string_length.i20.i.i1240 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1230, i64 0, i32 1
+  %544 = load i64, i64* %_M_string_length.i20.i.i1240, align 8, !tbaa !53
+  %_M_string_length.i.i2.i1241 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_2_b_path, i64 0, i32 1
+  store i64 %544, i64* %_M_string_length.i.i2.i1241, align 8, !tbaa !53, !alias.scope !155
+  %545 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i1230 to %union.anon**
+  store %union.anon* %542, %union.anon** %545, align 8, !tbaa !56
+  store i64 0, i64* %_M_string_length.i20.i.i1240, align 8, !tbaa !53
+  store i8 0, i8* %arraydecay.i.i.i.i1232, align 1, !tbaa !36
+  %_M_p.i.i.i.i1223 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp120, i64 0, i32 0, i32 0
+  %546 = load i8*, i8** %_M_p.i.i.i.i1223, align 8, !tbaa !56
+  %cmp.i.i.i1225 = icmp eq i8* %546, %535
+  br i1 %cmp.i.i.i1225, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1227, label %if.then.i.i1226
+
+if.then.i.i1226:                                  ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1242
+  call void @_ZdlPv(i8* %546) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1227
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1227: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1242, %if.then.i.i1226
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %532) #7
+  %_M_p.i.i1222 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_2_b_path, i64 0, i32 0, i32 0
+  %547 = load i8*, i8** %_M_p.i.i1222, align 8, !tbaa !56
+  %call123 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %547, i32 0, i32 1, i32 10, i32 1, i32 1)
+  %_M_p.i.i1184 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %input_path, i64 0, i32 0, i32 0
+  %548 = load i8*, i8** %_M_p.i.i1184, align 8, !tbaa !56
+  %call125 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %548, i32 0, i32 2000, i32 3, i32 32, i32 32)
+  %_M_p.i.i1183 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %labels_path, i64 0, i32 0, i32 0
+  %549 = load i8*, i8** %_M_p.i.i1183, align 8, !tbaa !56
+  %call.i = call noalias i8* @malloc(i64 2000) #7
+  %call1.i = call %struct._IO_FILE* @fopen(i8* %549, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0)) #7
+  %cmp.i = icmp eq %struct._IO_FILE* %call1.i, null
+  br i1 %cmp.i, label %if.then.i, label %_Z10readLabelsPKci.exit
+
+if.then.i:                                        ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1227
+  %call2.i = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.18, i64 0, i64 0), i8* %549) #7
+  call void @abort() #8
+  unreachable
+
+_Z10readLabelsPKci.exit:                          ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1227
+  %call5.i = call i64 @fread(i8* %call.i, i64 1, i64 2000, %struct._IO_FILE* nonnull %call1.i) #7
+  %call6.i = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.19, i64 0, i64 0), i64 %call5.i) #7
+  call void @__visc__init() #7
+  %call128 = call noalias i8* @malloc(i64 512) #7
+  %input129 = bitcast i8* %call128 to i8**
+  %550 = bitcast i8* %call128 to %struct.Tensor**
+  store %struct.Tensor* %call125, %struct.Tensor** %550, align 1, !tbaa !158
+  %input_bytes = getelementptr inbounds i8, i8* %call128, i64 8
+  %551 = bitcast i8* %input_bytes to i64*
+  store i64 0, i64* %551, align 1, !tbaa !161
+  %conv2d_1_w130 = getelementptr inbounds i8, i8* %call128, i64 16
+  %552 = bitcast i8* %conv2d_1_w130 to %struct.Tensor**
+  store %struct.Tensor* %call7, %struct.Tensor** %552, align 1, !tbaa !162
+  %conv2d_1_w_bytes = getelementptr inbounds i8, i8* %call128, i64 24
+  %553 = bitcast i8* %conv2d_1_w_bytes to i64*
+  store i64 0, i64* %553, align 1, !tbaa !163
+  %conv2d_1_b131 = getelementptr inbounds i8, i8* %call128, i64 32
+  %554 = bitcast i8* %conv2d_1_b131 to %struct.Tensor**
+  store %struct.Tensor* %call11, %struct.Tensor** %554, align 1, !tbaa !164
+  %conv2d_1_b_bytes = getelementptr inbounds i8, i8* %call128, i64 40
+  %555 = bitcast i8* %conv2d_1_b_bytes to i64*
+  store i64 0, i64* %555, align 1, !tbaa !165
+  %conv2d_2_w132 = getelementptr inbounds i8, i8* %call128, i64 48
+  %556 = bitcast i8* %conv2d_2_w132 to %struct.Tensor**
+  store %struct.Tensor* %call15, %struct.Tensor** %556, align 1, !tbaa !166
+  %conv2d_2_w_bytes = getelementptr inbounds i8, i8* %call128, i64 56
+  %557 = bitcast i8* %conv2d_2_w_bytes to i64*
+  store i64 0, i64* %557, align 1, !tbaa !167
+  %conv2d_2_b133 = getelementptr inbounds i8, i8* %call128, i64 64
+  %558 = bitcast i8* %conv2d_2_b133 to %struct.Tensor**
+  store %struct.Tensor* %call19, %struct.Tensor** %558, align 1, !tbaa !168
+  %conv2d_2_b_bytes = getelementptr inbounds i8, i8* %call128, i64 72
+  %559 = bitcast i8* %conv2d_2_b_bytes to i64*
+  store i64 0, i64* %559, align 1, !tbaa !169
+  %conv2d_3_w134 = getelementptr inbounds i8, i8* %call128, i64 80
+  %560 = bitcast i8* %conv2d_3_w134 to %struct.Tensor**
+  store %struct.Tensor* %call23, %struct.Tensor** %560, align 1, !tbaa !170
+  %conv2d_3_w_bytes = getelementptr inbounds i8, i8* %call128, i64 88
+  %561 = bitcast i8* %conv2d_3_w_bytes to i64*
+  store i64 0, i64* %561, align 1, !tbaa !171
+  %conv2d_3_b135 = getelementptr inbounds i8, i8* %call128, i64 96
+  %562 = bitcast i8* %conv2d_3_b135 to %struct.Tensor**
+  store %struct.Tensor* %call27, %struct.Tensor** %562, align 1, !tbaa !172
+  %conv2d_3_b_bytes = getelementptr inbounds i8, i8* %call128, i64 104
+  %563 = bitcast i8* %conv2d_3_b_bytes to i64*
+  store i64 0, i64* %563, align 1, !tbaa !173
+  %conv2d_4_w136 = getelementptr inbounds i8, i8* %call128, i64 112
+  %564 = bitcast i8* %conv2d_4_w136 to %struct.Tensor**
+  store %struct.Tensor* %call31, %struct.Tensor** %564, align 1, !tbaa !174
+  %conv2d_4_w_bytes = getelementptr inbounds i8, i8* %call128, i64 120
+  %565 = bitcast i8* %conv2d_4_w_bytes to i64*
+  store i64 0, i64* %565, align 1, !tbaa !175
+  %conv2d_4_b137 = getelementptr inbounds i8, i8* %call128, i64 128
+  %566 = bitcast i8* %conv2d_4_b137 to %struct.Tensor**
+  store %struct.Tensor* %call35, %struct.Tensor** %566, align 1, !tbaa !176
+  %conv2d_4_b_bytes = getelementptr inbounds i8, i8* %call128, i64 136
+  %567 = bitcast i8* %conv2d_4_b_bytes to i64*
+  store i64 0, i64* %567, align 1, !tbaa !177
+  %conv2d_5_w138 = getelementptr inbounds i8, i8* %call128, i64 144
+  %568 = bitcast i8* %conv2d_5_w138 to %struct.Tensor**
+  store %struct.Tensor* %call39, %struct.Tensor** %568, align 1, !tbaa !178
+  %conv2d_5_w_bytes = getelementptr inbounds i8, i8* %call128, i64 152
+  %569 = bitcast i8* %conv2d_5_w_bytes to i64*
+  store i64 0, i64* %569, align 1, !tbaa !179
+  %conv2d_5_b139 = getelementptr inbounds i8, i8* %call128, i64 160
+  %570 = bitcast i8* %conv2d_5_b139 to %struct.Tensor**
+  store %struct.Tensor* %call43, %struct.Tensor** %570, align 1, !tbaa !180
+  %conv2d_5_b_bytes = getelementptr inbounds i8, i8* %call128, i64 168
+  %571 = bitcast i8* %conv2d_5_b_bytes to i64*
+  store i64 0, i64* %571, align 1, !tbaa !181
+  %conv2d_6_w140 = getelementptr inbounds i8, i8* %call128, i64 176
+  %572 = bitcast i8* %conv2d_6_w140 to %struct.Tensor**
+  store %struct.Tensor* %call47, %struct.Tensor** %572, align 1, !tbaa !182
+  %conv2d_6_w_bytes = getelementptr inbounds i8, i8* %call128, i64 184
+  %573 = bitcast i8* %conv2d_6_w_bytes to i64*
+  store i64 0, i64* %573, align 1, !tbaa !183
+  %conv2d_6_b141 = getelementptr inbounds i8, i8* %call128, i64 192
+  %574 = bitcast i8* %conv2d_6_b141 to %struct.Tensor**
+  store %struct.Tensor* %call51, %struct.Tensor** %574, align 1, !tbaa !184
+  %conv2d_6_b_bytes = getelementptr inbounds i8, i8* %call128, i64 200
+  %575 = bitcast i8* %conv2d_6_b_bytes to i64*
+  store i64 0, i64* %575, align 1, !tbaa !185
+  %conv2d_7_w142 = getelementptr inbounds i8, i8* %call128, i64 208
+  %576 = bitcast i8* %conv2d_7_w142 to %struct.Tensor**
+  store %struct.Tensor* %call55, %struct.Tensor** %576, align 1, !tbaa !186
+  %conv2d_7_w_bytes = getelementptr inbounds i8, i8* %call128, i64 216
+  %577 = bitcast i8* %conv2d_7_w_bytes to i64*
+  store i64 0, i64* %577, align 1, !tbaa !187
+  %conv2d_7_b143 = getelementptr inbounds i8, i8* %call128, i64 224
+  %578 = bitcast i8* %conv2d_7_b143 to %struct.Tensor**
+  store %struct.Tensor* %call59, %struct.Tensor** %578, align 1, !tbaa !188
+  %conv2d_7_b_bytes = getelementptr inbounds i8, i8* %call128, i64 232
+  %579 = bitcast i8* %conv2d_7_b_bytes to i64*
+  store i64 0, i64* %579, align 1, !tbaa !189
+  %conv2d_8_w144 = getelementptr inbounds i8, i8* %call128, i64 240
+  %580 = bitcast i8* %conv2d_8_w144 to %struct.Tensor**
+  store %struct.Tensor* %call63, %struct.Tensor** %580, align 1, !tbaa !190
+  %conv2d_8_w_bytes = getelementptr inbounds i8, i8* %call128, i64 248
+  %581 = bitcast i8* %conv2d_8_w_bytes to i64*
+  store i64 0, i64* %581, align 1, !tbaa !191
+  %conv2d_8_b145 = getelementptr inbounds i8, i8* %call128, i64 256
+  %582 = bitcast i8* %conv2d_8_b145 to %struct.Tensor**
+  store %struct.Tensor* %call67, %struct.Tensor** %582, align 1, !tbaa !192
+  %conv2d_8_b_bytes = getelementptr inbounds i8, i8* %call128, i64 264
+  %583 = bitcast i8* %conv2d_8_b_bytes to i64*
+  store i64 0, i64* %583, align 1, !tbaa !193
+  %conv2d_9_w146 = getelementptr inbounds i8, i8* %call128, i64 272
+  %584 = bitcast i8* %conv2d_9_w146 to %struct.Tensor**
+  store %struct.Tensor* %call71, %struct.Tensor** %584, align 1, !tbaa !194
+  %conv2d_9_w_bytes = getelementptr inbounds i8, i8* %call128, i64 280
+  %585 = bitcast i8* %conv2d_9_w_bytes to i64*
+  store i64 0, i64* %585, align 1, !tbaa !195
+  %conv2d_9_b147 = getelementptr inbounds i8, i8* %call128, i64 288
+  %586 = bitcast i8* %conv2d_9_b147 to %struct.Tensor**
+  store %struct.Tensor* %call75, %struct.Tensor** %586, align 1, !tbaa !196
+  %conv2d_9_b_bytes = getelementptr inbounds i8, i8* %call128, i64 296
+  %587 = bitcast i8* %conv2d_9_b_bytes to i64*
+  store i64 0, i64* %587, align 1, !tbaa !197
+  %conv2d_10_w148 = getelementptr inbounds i8, i8* %call128, i64 304
+  %588 = bitcast i8* %conv2d_10_w148 to %struct.Tensor**
+  store %struct.Tensor* %call79, %struct.Tensor** %588, align 1, !tbaa !198
+  %conv2d_10_w_bytes = getelementptr inbounds i8, i8* %call128, i64 312
+  %589 = bitcast i8* %conv2d_10_w_bytes to i64*
+  store i64 0, i64* %589, align 1, !tbaa !199
+  %conv2d_10_b149 = getelementptr inbounds i8, i8* %call128, i64 320
+  %590 = bitcast i8* %conv2d_10_b149 to %struct.Tensor**
+  store %struct.Tensor* %call83, %struct.Tensor** %590, align 1, !tbaa !200
+  %conv2d_10_b_bytes = getelementptr inbounds i8, i8* %call128, i64 328
+  %591 = bitcast i8* %conv2d_10_b_bytes to i64*
+  store i64 0, i64* %591, align 1, !tbaa !201
+  %conv2d_11_w150 = getelementptr inbounds i8, i8* %call128, i64 336
+  %592 = bitcast i8* %conv2d_11_w150 to %struct.Tensor**
+  store %struct.Tensor* %call87, %struct.Tensor** %592, align 1, !tbaa !202
+  %conv2d_11_w_bytes = getelementptr inbounds i8, i8* %call128, i64 344
+  %593 = bitcast i8* %conv2d_11_w_bytes to i64*
+  store i64 0, i64* %593, align 1, !tbaa !203
+  %conv2d_11_b151 = getelementptr inbounds i8, i8* %call128, i64 352
+  %594 = bitcast i8* %conv2d_11_b151 to %struct.Tensor**
+  store %struct.Tensor* %call91, %struct.Tensor** %594, align 1, !tbaa !204
+  %conv2d_11_b_bytes = getelementptr inbounds i8, i8* %call128, i64 360
+  %595 = bitcast i8* %conv2d_11_b_bytes to i64*
+  store i64 0, i64* %595, align 1, !tbaa !205
+  %conv2d_12_w152 = getelementptr inbounds i8, i8* %call128, i64 368
+  %596 = bitcast i8* %conv2d_12_w152 to %struct.Tensor**
+  store %struct.Tensor* %call95, %struct.Tensor** %596, align 1, !tbaa !206
+  %conv2d_12_w_bytes = getelementptr inbounds i8, i8* %call128, i64 376
+  %597 = bitcast i8* %conv2d_12_w_bytes to i64*
+  store i64 0, i64* %597, align 1, !tbaa !207
+  %conv2d_12_b153 = getelementptr inbounds i8, i8* %call128, i64 384
+  %598 = bitcast i8* %conv2d_12_b153 to %struct.Tensor**
+  store %struct.Tensor* %call99, %struct.Tensor** %598, align 1, !tbaa !208
+  %conv2d_12_b_bytes = getelementptr inbounds i8, i8* %call128, i64 392
+  %599 = bitcast i8* %conv2d_12_b_bytes to i64*
+  store i64 0, i64* %599, align 1, !tbaa !209
+  %conv2d_13_w154 = getelementptr inbounds i8, i8* %call128, i64 400
+  %600 = bitcast i8* %conv2d_13_w154 to %struct.Tensor**
+  store %struct.Tensor* %call103, %struct.Tensor** %600, align 1, !tbaa !210
+  %conv2d_13_w_bytes = getelementptr inbounds i8, i8* %call128, i64 408
+  %601 = bitcast i8* %conv2d_13_w_bytes to i64*
+  store i64 0, i64* %601, align 1, !tbaa !211
+  %conv2d_13_b155 = getelementptr inbounds i8, i8* %call128, i64 416
+  %602 = bitcast i8* %conv2d_13_b155 to %struct.Tensor**
+  store %struct.Tensor* %call107, %struct.Tensor** %602, align 1, !tbaa !212
+  %conv2d_13_b_bytes = getelementptr inbounds i8, i8* %call128, i64 424
+  %603 = bitcast i8* %conv2d_13_b_bytes to i64*
+  store i64 0, i64* %603, align 1, !tbaa !213
+  %dense_1_w156 = getelementptr inbounds i8, i8* %call128, i64 432
+  %604 = bitcast i8* %dense_1_w156 to %struct.Tensor**
+  store %struct.Tensor* %call111, %struct.Tensor** %604, align 1, !tbaa !214
+  %dense_1_w_bytes = getelementptr inbounds i8, i8* %call128, i64 440
+  %605 = bitcast i8* %dense_1_w_bytes to i64*
+  store i64 0, i64* %605, align 1, !tbaa !215
+  %dense_1_b157 = getelementptr inbounds i8, i8* %call128, i64 448
+  %606 = bitcast i8* %dense_1_b157 to %struct.Tensor**
+  store %struct.Tensor* %call115, %struct.Tensor** %606, align 1, !tbaa !216
+  %dense_1_b_bytes = getelementptr inbounds i8, i8* %call128, i64 456
+  %607 = bitcast i8* %dense_1_b_bytes to i64*
+  store i64 0, i64* %607, align 1, !tbaa !217
+  %dense_2_w158 = getelementptr inbounds i8, i8* %call128, i64 464
+  %608 = bitcast i8* %dense_2_w158 to %struct.Tensor**
+  store %struct.Tensor* %call119, %struct.Tensor** %608, align 1, !tbaa !218
+  %dense_2_w_bytes = getelementptr inbounds i8, i8* %call128, i64 472
+  %609 = bitcast i8* %dense_2_w_bytes to i64*
+  store i64 0, i64* %609, align 1, !tbaa !219
+  %dense_2_b159 = getelementptr inbounds i8, i8* %call128, i64 480
+  %610 = bitcast i8* %dense_2_b159 to %struct.Tensor**
+  store %struct.Tensor* %call123, %struct.Tensor** %610, align 1, !tbaa !220
+  %dense_2_b_bytes = getelementptr inbounds i8, i8* %call128, i64 488
+  %611 = bitcast i8* %dense_2_b_bytes to i64*
+  store i64 0, i64* %611, align 1, !tbaa !221
+  %call160 = call i8* (i32, ...) @__visc__launch(i32 0, void (i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64)* nonnull @_Z4rootPvmS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_m, i8* %call128) #7
+  call void @__visc__wait(i8* %call160) #7
+  %612 = load i8*, i8** %input129, align 1, !tbaa !158
+  call void @hpvm_request_tensor(i8* %612, i32 0) #7
+  call void @__visc__cleanup() #7
+  call void @_Z16computeAccuracy2PhiPv(i8* %call.i, i32 undef, i8* %612)
+  %613 = load i8*, i8** %_M_p.i.i1222, align 8, !tbaa !56
+  %arraydecay.i.i.i.i1031 = bitcast %union.anon* %539 to i8*
+  %cmp.i.i.i1032 = icmp eq i8* %613, %arraydecay.i.i.i.i1031
+  br i1 %cmp.i.i.i1032, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1034, label %if.then.i.i1033
+
+if.then.i.i1033:                                  ; preds = %_Z10readLabelsPKci.exit
+  call void @_ZdlPv(i8* %613) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1034
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1034: ; preds = %_Z10readLabelsPKci.exit, %if.then.i.i1033
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %531) #7
+  %614 = load i8*, i8** %_M_p.i.i1333, align 8, !tbaa !56
+  %arraydecay.i.i.i.i989 = bitcast %union.anon* %522 to i8*
+  %cmp.i.i.i990 = icmp eq i8* %614, %arraydecay.i.i.i.i989
+  br i1 %cmp.i.i.i990, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit992, label %if.then.i.i991
+
+if.then.i.i991:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1034
+  call void @_ZdlPv(i8* %614) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit992
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit992: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1034, %if.then.i.i991
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %514) #7
+  %615 = load i8*, i8** %_M_p.i.i1481, align 8, !tbaa !56
+  %arraydecay.i.i.i.i984 = bitcast %union.anon* %505 to i8*
+  %cmp.i.i.i985 = icmp eq i8* %615, %arraydecay.i.i.i.i984
+  br i1 %cmp.i.i.i985, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit987, label %if.then.i.i986
+
+if.then.i.i986:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit992
+  call void @_ZdlPv(i8* %615) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit987
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit987: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit992, %if.then.i.i986
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %497) #7
+  %616 = load i8*, i8** %_M_p.i.i1591, align 8, !tbaa !56
+  %arraydecay.i.i.i.i942 = bitcast %union.anon* %488 to i8*
+  %cmp.i.i.i943 = icmp eq i8* %616, %arraydecay.i.i.i.i942
+  br i1 %cmp.i.i.i943, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit945, label %if.then.i.i944
+
+if.then.i.i944:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit987
+  call void @_ZdlPv(i8* %616) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit945
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit945: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit987, %if.then.i.i944
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %480) #7
+  %617 = load i8*, i8** %_M_p.i.i1538, align 8, !tbaa !56
+  %arraydecay.i.i.i.i937 = bitcast %union.anon* %471 to i8*
+  %cmp.i.i.i938 = icmp eq i8* %617, %arraydecay.i.i.i.i937
+  br i1 %cmp.i.i.i938, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit940, label %if.then.i.i939
+
+if.then.i.i939:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit945
+  call void @_ZdlPv(i8* %617) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit940
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit940: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit945, %if.then.i.i939
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %463) #7
+  %618 = load i8*, i8** %_M_p.i.i1480, align 8, !tbaa !56
+  %arraydecay.i.i.i.i895 = bitcast %union.anon* %454 to i8*
+  %cmp.i.i.i896 = icmp eq i8* %618, %arraydecay.i.i.i.i895
+  br i1 %cmp.i.i.i896, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit898, label %if.then.i.i897
+
+if.then.i.i897:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit940
+  call void @_ZdlPv(i8* %618) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit898
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit898: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit940, %if.then.i.i897
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %446) #7
+  %619 = load i8*, i8** %_M_p.i.i1443, align 8, !tbaa !56
+  %arraydecay.i.i.i.i890 = bitcast %union.anon* %437 to i8*
+  %cmp.i.i.i891 = icmp eq i8* %619, %arraydecay.i.i.i.i890
+  br i1 %cmp.i.i.i891, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit893, label %if.then.i.i892
+
+if.then.i.i892:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit898
+  call void @_ZdlPv(i8* %619) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit893
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit893: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit898, %if.then.i.i892
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %429) #7
+  %620 = load i8*, i8** %_M_p.i.i1375, align 8, !tbaa !56
+  %arraydecay.i.i.i.i848 = bitcast %union.anon* %420 to i8*
+  %cmp.i.i.i849 = icmp eq i8* %620, %arraydecay.i.i.i.i848
+  br i1 %cmp.i.i.i849, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit851, label %if.then.i.i850
+
+if.then.i.i850:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit893
+  call void @_ZdlPv(i8* %620) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit851
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit851: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit893, %if.then.i.i850
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %412) #7
+  %621 = load i8*, i8** %_M_p.i.i1332, align 8, !tbaa !56
+  %arraydecay.i.i.i.i843 = bitcast %union.anon* %403 to i8*
+  %cmp.i.i.i844 = icmp eq i8* %621, %arraydecay.i.i.i.i843
+  br i1 %cmp.i.i.i844, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit846, label %if.then.i.i845
+
+if.then.i.i845:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit851
+  call void @_ZdlPv(i8* %621) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit846
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit846: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit851, %if.then.i.i845
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %395) #7
+  %622 = load i8*, i8** %_M_p.i.i1279, align 8, !tbaa !56
+  %arraydecay.i.i.i.i801 = bitcast %union.anon* %386 to i8*
+  %cmp.i.i.i802 = icmp eq i8* %622, %arraydecay.i.i.i.i801
+  br i1 %cmp.i.i.i802, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit804, label %if.then.i.i803
+
+if.then.i.i803:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit846
+  call void @_ZdlPv(i8* %622) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit804
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit804: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit846, %if.then.i.i803
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %378) #7
+  %623 = load i8*, i8** %_M_p.i.i1221, align 8, !tbaa !56
+  %arraydecay.i.i.i.i796 = bitcast %union.anon* %369 to i8*
+  %cmp.i.i.i797 = icmp eq i8* %623, %arraydecay.i.i.i.i796
+  br i1 %cmp.i.i.i797, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit799, label %if.then.i.i798
+
+if.then.i.i798:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit804
+  call void @_ZdlPv(i8* %623) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit799
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit799: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit804, %if.then.i.i798
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %361) #7
+  %624 = load i8*, i8** %_M_p.i.i1182, align 8, !tbaa !56
+  %arraydecay.i.i.i.i754 = bitcast %union.anon* %352 to i8*
+  %cmp.i.i.i755 = icmp eq i8* %624, %arraydecay.i.i.i.i754
+  br i1 %cmp.i.i.i755, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit757, label %if.then.i.i756
+
+if.then.i.i756:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit799
+  call void @_ZdlPv(i8* %624) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit757
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit757: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit799, %if.then.i.i756
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %344) #7
+  %625 = load i8*, i8** %_M_p.i.i1145, align 8, !tbaa !56
+  %arraydecay.i.i.i.i749 = bitcast %union.anon* %335 to i8*
+  %cmp.i.i.i750 = icmp eq i8* %625, %arraydecay.i.i.i.i749
+  br i1 %cmp.i.i.i750, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit752, label %if.then.i.i751
+
+if.then.i.i751:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit757
+  call void @_ZdlPv(i8* %625) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit752
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit752: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit757, %if.then.i.i751
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %327) #7
+  %626 = load i8*, i8** %_M_p.i.i1108, align 8, !tbaa !56
+  %arraydecay.i.i.i.i707 = bitcast %union.anon* %318 to i8*
+  %cmp.i.i.i708 = icmp eq i8* %626, %arraydecay.i.i.i.i707
+  br i1 %cmp.i.i.i708, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit710, label %if.then.i.i709
+
+if.then.i.i709:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit752
+  call void @_ZdlPv(i8* %626) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit710
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit710: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit752, %if.then.i.i709
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %310) #7
+  %627 = load i8*, i8** %_M_p.i.i1071, align 8, !tbaa !56
+  %arraydecay.i.i.i.i702 = bitcast %union.anon* %301 to i8*
+  %cmp.i.i.i703 = icmp eq i8* %627, %arraydecay.i.i.i.i702
+  br i1 %cmp.i.i.i703, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit705, label %if.then.i.i704
+
+if.then.i.i704:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit710
+  call void @_ZdlPv(i8* %627) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit705
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit705: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit710, %if.then.i.i704
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %293) #7
+  %628 = load i8*, i8** %_M_p.i.i1029, align 8, !tbaa !56
+  %arraydecay.i.i.i.i660 = bitcast %union.anon* %284 to i8*
+  %cmp.i.i.i661 = icmp eq i8* %628, %arraydecay.i.i.i.i660
+  br i1 %cmp.i.i.i661, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit663, label %if.then.i.i662
+
+if.then.i.i662:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit705
+  call void @_ZdlPv(i8* %628) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit663
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit663: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit705, %if.then.i.i662
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %276) #7
+  %629 = load i8*, i8** %_M_p.i.i982, align 8, !tbaa !56
+  %arraydecay.i.i.i.i655 = bitcast %union.anon* %267 to i8*
+  %cmp.i.i.i656 = icmp eq i8* %629, %arraydecay.i.i.i.i655
+  br i1 %cmp.i.i.i656, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit658, label %if.then.i.i657
+
+if.then.i.i657:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit663
+  call void @_ZdlPv(i8* %629) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit658
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit658: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit663, %if.then.i.i657
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %259) #7
+  %630 = load i8*, i8** %_M_p.i.i935, align 8, !tbaa !56
+  %arraydecay.i.i.i.i613 = bitcast %union.anon* %250 to i8*
+  %cmp.i.i.i614 = icmp eq i8* %630, %arraydecay.i.i.i.i613
+  br i1 %cmp.i.i.i614, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit616, label %if.then.i.i615
+
+if.then.i.i615:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit658
+  call void @_ZdlPv(i8* %630) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit616
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit616: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit658, %if.then.i.i615
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %242) #7
+  %631 = load i8*, i8** %_M_p.i.i888, align 8, !tbaa !56
+  %arraydecay.i.i.i.i608 = bitcast %union.anon* %233 to i8*
+  %cmp.i.i.i609 = icmp eq i8* %631, %arraydecay.i.i.i.i608
+  br i1 %cmp.i.i.i609, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit611, label %if.then.i.i610
+
+if.then.i.i610:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit616
+  call void @_ZdlPv(i8* %631) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit611
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit611: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit616, %if.then.i.i610
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %225) #7
+  %632 = load i8*, i8** %_M_p.i.i841, align 8, !tbaa !56
+  %arraydecay.i.i.i.i566 = bitcast %union.anon* %216 to i8*
+  %cmp.i.i.i567 = icmp eq i8* %632, %arraydecay.i.i.i.i566
+  br i1 %cmp.i.i.i567, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit569, label %if.then.i.i568
+
+if.then.i.i568:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit611
+  call void @_ZdlPv(i8* %632) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit569
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit569: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit611, %if.then.i.i568
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %208) #7
+  %633 = load i8*, i8** %_M_p.i.i794, align 8, !tbaa !56
+  %arraydecay.i.i.i.i561 = bitcast %union.anon* %199 to i8*
+  %cmp.i.i.i562 = icmp eq i8* %633, %arraydecay.i.i.i.i561
+  br i1 %cmp.i.i.i562, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit564, label %if.then.i.i563
+
+if.then.i.i563:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit569
+  call void @_ZdlPv(i8* %633) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit564
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit564: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit569, %if.then.i.i563
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %191) #7
+  %634 = load i8*, i8** %_M_p.i.i747, align 8, !tbaa !56
+  %arraydecay.i.i.i.i519 = bitcast %union.anon* %182 to i8*
+  %cmp.i.i.i520 = icmp eq i8* %634, %arraydecay.i.i.i.i519
+  br i1 %cmp.i.i.i520, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit522, label %if.then.i.i521
+
+if.then.i.i521:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit564
+  call void @_ZdlPv(i8* %634) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit522
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit522: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit564, %if.then.i.i521
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %174) #7
+  %635 = load i8*, i8** %_M_p.i.i700, align 8, !tbaa !56
+  %arraydecay.i.i.i.i514 = bitcast %union.anon* %165 to i8*
+  %cmp.i.i.i515 = icmp eq i8* %635, %arraydecay.i.i.i.i514
+  br i1 %cmp.i.i.i515, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit517, label %if.then.i.i516
+
+if.then.i.i516:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit522
+  call void @_ZdlPv(i8* %635) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit517
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit517: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit522, %if.then.i.i516
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %157) #7
+  %636 = load i8*, i8** %_M_p.i.i653, align 8, !tbaa !56
+  %arraydecay.i.i.i.i472 = bitcast %union.anon* %148 to i8*
+  %cmp.i.i.i473 = icmp eq i8* %636, %arraydecay.i.i.i.i472
+  br i1 %cmp.i.i.i473, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit475, label %if.then.i.i474
+
+if.then.i.i474:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit517
+  call void @_ZdlPv(i8* %636) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit475
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit475: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit517, %if.then.i.i474
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %140) #7
+  %637 = load i8*, i8** %_M_p.i.i606, align 8, !tbaa !56
+  %arraydecay.i.i.i.i467 = bitcast %union.anon* %131 to i8*
+  %cmp.i.i.i468 = icmp eq i8* %637, %arraydecay.i.i.i.i467
+  br i1 %cmp.i.i.i468, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit470, label %if.then.i.i469
+
+if.then.i.i469:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit475
+  call void @_ZdlPv(i8* %637) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit470
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit470: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit475, %if.then.i.i469
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %123) #7
+  %638 = load i8*, i8** %_M_p.i.i559, align 8, !tbaa !56
+  %arraydecay.i.i.i.i425 = bitcast %union.anon* %114 to i8*
+  %cmp.i.i.i426 = icmp eq i8* %638, %arraydecay.i.i.i.i425
+  br i1 %cmp.i.i.i426, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit428, label %if.then.i.i427
+
+if.then.i.i427:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit470
+  call void @_ZdlPv(i8* %638) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit428
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit428: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit470, %if.then.i.i427
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %106) #7
+  %639 = load i8*, i8** %_M_p.i.i512, align 8, !tbaa !56
+  %arraydecay.i.i.i.i420 = bitcast %union.anon* %97 to i8*
+  %cmp.i.i.i421 = icmp eq i8* %639, %arraydecay.i.i.i.i420
+  br i1 %cmp.i.i.i421, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit423, label %if.then.i.i422
+
+if.then.i.i422:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit428
+  call void @_ZdlPv(i8* %639) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit423
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit423: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit428, %if.then.i.i422
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %89) #7
+  %640 = load i8*, i8** %_M_p.i.i465, align 8, !tbaa !56
+  %arraydecay.i.i.i.i378 = bitcast %union.anon* %80 to i8*
+  %cmp.i.i.i379 = icmp eq i8* %640, %arraydecay.i.i.i.i378
+  br i1 %cmp.i.i.i379, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit381, label %if.then.i.i380
+
+if.then.i.i380:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit423
+  call void @_ZdlPv(i8* %640) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit381
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit381: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit423, %if.then.i.i380
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %72) #7
+  %641 = load i8*, i8** %_M_p.i.i418, align 8, !tbaa !56
+  %arraydecay.i.i.i.i373 = bitcast %union.anon* %63 to i8*
+  %cmp.i.i.i374 = icmp eq i8* %641, %arraydecay.i.i.i.i373
+  br i1 %cmp.i.i.i374, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit376, label %if.then.i.i375
+
+if.then.i.i375:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit381
+  call void @_ZdlPv(i8* %641) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit376
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit376: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit381, %if.then.i.i375
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %55) #7
+  %642 = load i8*, i8** %_M_p.i.i, align 8, !tbaa !56
+  %arraydecay.i.i.i.i332 = bitcast %union.anon* %46 to i8*
+  %cmp.i.i.i333 = icmp eq i8* %642, %arraydecay.i.i.i.i332
+  br i1 %cmp.i.i.i333, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit335, label %if.then.i.i334
+
+if.then.i.i334:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit376
+  call void @_ZdlPv(i8* %642) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit335
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit335: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit376, %if.then.i.i334
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %38) #7
+  %643 = load i8*, i8** %_M_p.i.i1183, align 8, !tbaa !56
+  %arraydecay.i.i.i.i291 = bitcast %union.anon* %30 to i8*
+  %cmp.i.i.i292 = icmp eq i8* %643, %arraydecay.i.i.i.i291
+  br i1 %cmp.i.i.i292, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit294, label %if.then.i.i293
+
+if.then.i.i293:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit335
+  call void @_ZdlPv(i8* %643) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit294
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit294: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit335, %if.then.i.i293
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %22) #7
+  %644 = load i8*, i8** %_M_p.i.i1184, align 8, !tbaa !56
+  %arraydecay.i.i.i.i262 = bitcast %union.anon* %14 to i8*
+  %cmp.i.i.i263 = icmp eq i8* %644, %arraydecay.i.i.i.i262
+  br i1 %cmp.i.i.i263, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit265, label %if.then.i.i264
+
+if.then.i.i264:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit294
+  call void @_ZdlPv(i8* %644) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit265
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit265: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit294, %if.then.i.i264
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %6) #7
+  %645 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !56
+  %cmp.i.i.i = icmp eq i8* %645, %3
+  br i1 %cmp.i.i.i, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit, label %if.then.i.i
+
+if.then.i.i:                                      ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit265
+  call void @_ZdlPv(i8* %645) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit265, %if.then.i.i
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %0) #7
+  ret i32 0
+}
+
+declare void @__visc__init() local_unnamed_addr #3
+
+declare i8* @__visc__launch(i32, ...) local_unnamed_addr #3
+
+declare void @__visc__wait(i8*) local_unnamed_addr #3
+
+declare void @__visc__cleanup() local_unnamed_addr #3
+
+; Function Attrs: nobuiltin nounwind
+declare void @_ZdlPv(i8*) local_unnamed_addr #6
+
+declare void @_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E(%"class.std::basic_ios"*, %"class.std::basic_streambuf"*) local_unnamed_addr #3
+
+; Function Attrs: nounwind
+declare void @_ZNSt8ios_baseC2Ev(%"class.std::ios_base"*) unnamed_addr #2
+
+; Function Attrs: nounwind
+declare void @_ZNSt6localeC1Ev(%"class.std::locale"*) unnamed_addr #2
+
+; Function Attrs: nounwind
+declare void @_ZNSt6localeD1Ev(%"class.std::locale"*) unnamed_addr #2
+
+; Function Attrs: nounwind
+declare void @_ZNSt8ios_baseD2Ev(%"class.std::ios_base"*) unnamed_addr #2
+
+declare dereferenceable(272) %"class.std::basic_ostream"* @_ZNSo9_M_insertIdEERSoT_(%"class.std::basic_ostream"*, double) local_unnamed_addr #3
+
+; Function Attrs: nounwind uwtable
+declare void @_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv(%"class.std::__cxx11::basic_string"* noalias sret, %"class.std::__cxx11::basic_stringbuf"*) local_unnamed_addr #0 align 2
+
+declare i8* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm(%"class.std::__cxx11::basic_string"*, i64* dereferenceable(8), i64) local_unnamed_addr #3
+
+; Function Attrs: argmemonly nounwind
+declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture writeonly, i8* nocapture readonly, i64, i32, i1) #1
+
+declare dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"*, i64, i64, i8*, i64) local_unnamed_addr #3
+
+; Function Attrs: nounwind
+declare i32 @puts(i8* nocapture readonly) #7
+
+declare i32 @putchar(i32)
+
+; Function Attrs: argmemonly nounwind
+declare void @llvm.memset.p0i8.i64(i8* nocapture writeonly, i8, i64, i32, i1) #1
+
+attributes #0 = { nounwind uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="true" "no-jump-tables"="false" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="true" "use-soft-float"="false" }
+attributes #1 = { argmemonly nounwind }
+attributes #2 = { nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="true" "use-soft-float"="false" }
+attributes #3 = { "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="true" "use-soft-float"="false" }
+attributes #4 = { noreturn nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="true" "use-soft-float"="false" }
+attributes #5 = { norecurse nounwind uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="true" "no-jump-tables"="false" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="true" "use-soft-float"="false" }
+attributes #6 = { nobuiltin nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="true" "use-soft-float"="false" }
+attributes #7 = { nounwind }
+attributes #8 = { noreturn nounwind }
+
+!llvm.ident = !{!0}
+
+!0 = !{!"clang version 4.0.1 "}
+!1 = !{!2, !7, i64 40}
+!2 = !{!"_ZTS6Tensor", !3, i64 0, !3, i64 4, !6, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !8, i64 48, !8, i64 56, !9, i64 64}
+!3 = !{!"int", !4, i64 0}
+!4 = !{!"omnipotent char", !5, i64 0}
+!5 = !{!"Simple C++ TBAA"}
+!6 = !{!"_ZTS15data_location_t", !4, i64 0}
+!7 = !{!"any pointer", !4, i64 0}
+!8 = !{!"long", !4, i64 0}
+!9 = !{!"_ZTS9Dimension", !3, i64 0, !7, i64 8}
+!10 = !{!2, !3, i64 64}
+!11 = !{!2, !7, i64 72}
+!12 = !{!8, !8, i64 0}
+!13 = !{!2, !8, i64 48}
+!14 = !{!2, !8, i64 56}
+!15 = !{!2, !7, i64 32}
+!16 = !{!2, !3, i64 0}
+!17 = !{!18, !18, i64 0}
+!18 = !{!"float", !4, i64 0}
+!19 = distinct !{!19, !20}
+!20 = !{!"llvm.loop.unroll.disable"}
+!21 = distinct !{!21, !22, !23}
+!22 = !{!"llvm.loop.vectorize.width", i32 1}
+!23 = !{!"llvm.loop.interleave.count", i32 1}
+!24 = distinct !{!24, !22, !23}
+!25 = distinct !{!25, !20}
+!26 = distinct !{!26, !22, !23}
+!27 = distinct !{!27, !20}
+!28 = distinct !{!28, !22, !23}
+!29 = distinct !{!29, !22, !23}
+!30 = distinct !{!30, !22, !23}
+!31 = distinct !{!31, !20}
+!32 = distinct !{!32, !22, !23}
+!33 = distinct !{!33, !22, !23}
+!34 = distinct !{!34, !22, !23}
+!35 = distinct !{!35, !22, !23}
+!36 = !{!4, !4, i64 0}
+!37 = distinct !{!37, !22, !23}
+!38 = distinct !{!38, !39, !22, !23}
+!39 = !{!"llvm.loop.unroll.runtime.disable"}
+!40 = !{!41, !41, i64 0}
+!41 = !{!"vtable pointer", !5, i64 0}
+!42 = !{!43, !7, i64 216}
+!43 = !{!"_ZTSSt9basic_iosIcSt11char_traitsIcEE", !7, i64 216, !4, i64 224, !44, i64 225, !7, i64 232, !7, i64 240, !7, i64 248, !7, i64 256}
+!44 = !{!"bool", !4, i64 0}
+!45 = !{!43, !4, i64 224}
+!46 = !{!43, !44, i64 225}
+!47 = !{!48, !49, i64 64}
+!48 = !{!"_ZTSNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEE", !49, i64 64, !50, i64 72}
+!49 = !{!"_ZTSSt13_Ios_Openmode", !4, i64 0}
+!50 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !51, i64 0, !8, i64 8, !4, i64 16}
+!51 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !7, i64 0}
+!52 = !{!51, !7, i64 0}
+!53 = !{!50, !8, i64 8}
+!54 = !{!55, !55, i64 0}
+!55 = !{!"_ZTSSt13_Ios_Fmtflags", !4, i64 0}
+!56 = !{!50, !7, i64 0}
+!57 = !{!58, !55, i64 24}
+!58 = !{!"_ZTSSt8ios_base", !8, i64 8, !8, i64 16, !55, i64 24, !59, i64 28, !59, i64 32, !7, i64 40, !60, i64 48, !4, i64 64, !3, i64 192, !7, i64 200, !61, i64 208}
+!59 = !{!"_ZTSSt12_Ios_Iostate", !4, i64 0}
+!60 = !{!"_ZTSNSt8ios_base6_WordsE", !7, i64 0, !8, i64 8}
+!61 = !{!"_ZTSSt6locale", !7, i64 0}
+!62 = !{!63}
+!63 = distinct !{!63, !64, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!64 = distinct !{!64, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!65 = !{!66}
+!66 = distinct !{!66, !67, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!67 = distinct !{!67, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!68 = !{!69}
+!69 = distinct !{!69, !70, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!70 = distinct !{!70, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!71 = !{!72}
+!72 = distinct !{!72, !73, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!73 = distinct !{!73, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!74 = !{!75}
+!75 = distinct !{!75, !76, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!76 = distinct !{!76, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!77 = !{!78}
+!78 = distinct !{!78, !79, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!79 = distinct !{!79, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!80 = !{!81}
+!81 = distinct !{!81, !82, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!82 = distinct !{!82, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!83 = !{!84}
+!84 = distinct !{!84, !85, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!85 = distinct !{!85, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!86 = !{!87}
+!87 = distinct !{!87, !88, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!88 = distinct !{!88, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!89 = !{!90}
+!90 = distinct !{!90, !91, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!91 = distinct !{!91, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!92 = !{!93}
+!93 = distinct !{!93, !94, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!94 = distinct !{!94, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!95 = !{!96}
+!96 = distinct !{!96, !97, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!97 = distinct !{!97, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!98 = !{!99}
+!99 = distinct !{!99, !100, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!100 = distinct !{!100, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!101 = !{!102}
+!102 = distinct !{!102, !103, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!103 = distinct !{!103, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!104 = !{!105}
+!105 = distinct !{!105, !106, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!106 = distinct !{!106, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!107 = !{!108}
+!108 = distinct !{!108, !109, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!109 = distinct !{!109, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!110 = !{!111}
+!111 = distinct !{!111, !112, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!112 = distinct !{!112, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!113 = !{!114}
+!114 = distinct !{!114, !115, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!115 = distinct !{!115, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!116 = !{!117}
+!117 = distinct !{!117, !118, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!118 = distinct !{!118, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!119 = !{!120}
+!120 = distinct !{!120, !121, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!121 = distinct !{!121, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!122 = !{!123}
+!123 = distinct !{!123, !124, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!124 = distinct !{!124, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!125 = !{!126}
+!126 = distinct !{!126, !127, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!127 = distinct !{!127, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!128 = !{!129}
+!129 = distinct !{!129, !130, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!130 = distinct !{!130, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!131 = !{!132}
+!132 = distinct !{!132, !133, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!133 = distinct !{!133, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!134 = !{!135}
+!135 = distinct !{!135, !136, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!136 = distinct !{!136, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!137 = !{!138}
+!138 = distinct !{!138, !139, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!139 = distinct !{!139, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!140 = !{!141}
+!141 = distinct !{!141, !142, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!142 = distinct !{!142, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!143 = !{!144}
+!144 = distinct !{!144, !145, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!145 = distinct !{!145, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!146 = !{!147}
+!147 = distinct !{!147, !148, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!148 = distinct !{!148, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!149 = !{!150}
+!150 = distinct !{!150, !151, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!151 = distinct !{!151, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!152 = !{!153}
+!153 = distinct !{!153, !154, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!154 = distinct !{!154, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!155 = !{!156}
+!156 = distinct !{!156, !157, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!157 = distinct !{!157, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!158 = !{!159, !7, i64 0}
+!159 = !{!"_ZTS6RootIn", !7, i64 0, !8, i64 8, !7, i64 16, !8, i64 24, !7, i64 32, !8, i64 40, !7, i64 48, !8, i64 56, !7, i64 64, !8, i64 72, !7, i64 80, !8, i64 88, !7, i64 96, !8, i64 104, !7, i64 112, !8, i64 120, !7, i64 128, !8, i64 136, !7, i64 144, !8, i64 152, !7, i64 160, !8, i64 168, !7, i64 176, !8, i64 184, !7, i64 192, !8, i64 200, !7, i64 208, !8, i64 216, !7, i64 224, !8, i64 232, !7, i64 240, !8, i64 248, !7, i64 256, !8, i64 264, !7, i64 272, !8, i64 280, !7, i64 288, !8, i64 296, !7, i64 304, !8, i64 312, !7, i64 320, !8, i64 328, !7, i64 336, !8, i64 344, !7, i64 352, !8, i64 360, !7, i64 368, !8, i64 376, !7, i64 384, !8, i64 392, !7, i64 400, !8, i64 408, !7, i64 416, !8, i64 424, !7, i64 432, !8, i64 440, !7, i64 448, !8, i64 456, !7, i64 464, !8, i64 472, !7, i64 480, !8, i64 488, !160, i64 496}
+!160 = !{!"_ZTS5ret_t", !7, i64 0, !8, i64 8}
+!161 = !{!159, !8, i64 8}
+!162 = !{!159, !7, i64 16}
+!163 = !{!159, !8, i64 24}
+!164 = !{!159, !7, i64 32}
+!165 = !{!159, !8, i64 40}
+!166 = !{!159, !7, i64 48}
+!167 = !{!159, !8, i64 56}
+!168 = !{!159, !7, i64 64}
+!169 = !{!159, !8, i64 72}
+!170 = !{!159, !7, i64 80}
+!171 = !{!159, !8, i64 88}
+!172 = !{!159, !7, i64 96}
+!173 = !{!159, !8, i64 104}
+!174 = !{!159, !7, i64 112}
+!175 = !{!159, !8, i64 120}
+!176 = !{!159, !7, i64 128}
+!177 = !{!159, !8, i64 136}
+!178 = !{!159, !7, i64 144}
+!179 = !{!159, !8, i64 152}
+!180 = !{!159, !7, i64 160}
+!181 = !{!159, !8, i64 168}
+!182 = !{!159, !7, i64 176}
+!183 = !{!159, !8, i64 184}
+!184 = !{!159, !7, i64 192}
+!185 = !{!159, !8, i64 200}
+!186 = !{!159, !7, i64 208}
+!187 = !{!159, !8, i64 216}
+!188 = !{!159, !7, i64 224}
+!189 = !{!159, !8, i64 232}
+!190 = !{!159, !7, i64 240}
+!191 = !{!159, !8, i64 248}
+!192 = !{!159, !7, i64 256}
+!193 = !{!159, !8, i64 264}
+!194 = !{!159, !7, i64 272}
+!195 = !{!159, !8, i64 280}
+!196 = !{!159, !7, i64 288}
+!197 = !{!159, !8, i64 296}
+!198 = !{!159, !7, i64 304}
+!199 = !{!159, !8, i64 312}
+!200 = !{!159, !7, i64 320}
+!201 = !{!159, !8, i64 328}
+!202 = !{!159, !7, i64 336}
+!203 = !{!159, !8, i64 344}
+!204 = !{!159, !7, i64 352}
+!205 = !{!159, !8, i64 360}
+!206 = !{!159, !7, i64 368}
+!207 = !{!159, !8, i64 376}
+!208 = !{!159, !7, i64 384}
+!209 = !{!159, !8, i64 392}
+!210 = !{!159, !7, i64 400}
+!211 = !{!159, !8, i64 408}
+!212 = !{!159, !7, i64 416}
+!213 = !{!159, !8, i64 424}
+!214 = !{!159, !7, i64 432}
+!215 = !{!159, !8, i64 440}
+!216 = !{!159, !7, i64 448}
+!217 = !{!159, !8, i64 456}
+!218 = !{!159, !7, i64 464}
+!219 = !{!159, !8, i64 472}
+!220 = !{!159, !7, i64 480}
+!221 = !{!159, !8, i64 488}
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10_front/build/vgg16_cifar10.opt.bc b/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10_front/build/vgg16_cifar10.opt.bc
new file mode 100644
index 0000000000000000000000000000000000000000..3219048b57801e110245112716cccde0b8c4aa78
Binary files /dev/null and b/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10_front/build/vgg16_cifar10.opt.bc differ
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10_front/build/vgg16_cifar10.visc.ll b/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10_front/build/vgg16_cifar10.visc.ll
new file mode 100644
index 0000000000000000000000000000000000000000..bec01ca7d31361c6a7b39230407563c6c468f53e
--- /dev/null
+++ b/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10_front/build/vgg16_cifar10.visc.ll
@@ -0,0 +1,5680 @@
+; ModuleID = 'build/vgg16_cifar10.ll'
+source_filename = "src/vgg16_cifar10.cpp"
+target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
+target triple = "x86_64-unknown-linux-gnu"
+
+%struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct._IO_FILE*, i32, i32, i64, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i8*, i8*, i64, i32, [20 x i8] }
+%struct._IO_marker = type { %struct._IO_marker*, %struct._IO_FILE*, i32 }
+%struct.Tensor = type { i32, i32, i32, %struct.cudnnTensorStruct*, %struct.cudnnFilterStruct*, i8*, i8*, i64, i64, %struct.Dimension }
+%struct.cudnnTensorStruct = type opaque
+%struct.cudnnFilterStruct = type opaque
+%struct.Dimension = type { i32, i64* }
+%"class.std::__cxx11::basic_ostringstream" = type { %"class.std::basic_ostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
+%"class.std::basic_ostream.base" = type { i32 (...)** }
+%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
+%"class.std::basic_streambuf" = type { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, %"class.std::locale" }
+%"class.std::locale" = type { %"class.std::locale::_Impl"* }
+%"class.std::locale::_Impl" = type { i32, %"class.std::locale::facet"**, i64, %"class.std::locale::facet"**, i8** }
+%"class.std::locale::facet" = type <{ i32 (...)**, i32, [4 x i8] }>
+%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider", i64, %union.anon }
+%"struct.std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider" = type { i8* }
+%union.anon = type { i64, [8 x i8] }
+%"class.std::basic_ios" = type { %"class.std::ios_base", %"class.std::basic_ostream"*, i8, i8, %"class.std::basic_streambuf"*, %"class.std::ctype"*, %"class.std::num_put"*, %"class.std::num_get"* }
+%"class.std::ios_base" = type { i32 (...)**, i64, i64, i32, i32, i32, %"struct.std::ios_base::_Callback_list"*, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, %"struct.std::ios_base::_Words"*, %"class.std::locale" }
+%"struct.std::ios_base::_Callback_list" = type { %"struct.std::ios_base::_Callback_list"*, void (i32, %"class.std::ios_base"*, i32)*, i32, i32 }
+%"struct.std::ios_base::_Words" = type { i8*, i64 }
+%"class.std::basic_ostream" = type { i32 (...)**, %"class.std::basic_ios" }
+%"class.std::ctype" = type <{ %"class.std::locale::facet.base", [4 x i8], %struct.__locale_struct*, i8, [7 x i8], i32*, i32*, i16*, i8, [256 x i8], [256 x i8], i8, [6 x i8] }>
+%"class.std::locale::facet.base" = type <{ i32 (...)**, i32 }>
+%struct.__locale_struct = type { [13 x %struct.__locale_data*], i16*, i32*, i32*, [13 x i8*] }
+%struct.__locale_data = type opaque
+%"class.std::num_put" = type { %"class.std::locale::facet.base", [4 x i8] }
+%"class.std::num_get" = type { %"class.std::locale::facet.base", [4 x i8] }
+%struct.out._Z10var_0_nodePvmS_m = type <{ i8*, i64 }>
+%struct.out._Z10var_1_nodePvmS_m = type <{ i8*, i64 }>
+%struct.out._Z10var_2_nodePvm = type <{ i8*, i64 }>
+%struct.out._Z10var_3_nodePvmS_m = type <{ i8*, i64 }>
+%struct.out._Z10var_4_nodePvmS_m = type <{ i8*, i64 }>
+%struct.out._Z10var_5_nodePvm = type <{ i8*, i64 }>
+%struct.out._Z10var_6_nodePvm = type <{ i8*, i64 }>
+%struct.out._Z10var_7_nodePvmS_m = type <{ i8*, i64 }>
+%struct.out._Z10var_8_nodePvmS_m = type <{ i8*, i64 }>
+%struct.out._Z10var_9_nodePvm = type <{ i8*, i64 }>
+%struct.out._Z11var_10_nodePvmS_m = type <{ i8*, i64 }>
+%struct.out._Z11var_11_nodePvmS_m = type <{ i8*, i64 }>
+%struct.out._Z11var_12_nodePvm = type <{ i8*, i64 }>
+%struct.out._Z11var_13_nodePvm = type <{ i8*, i64 }>
+%struct.out._Z11var_14_nodePvmS_m = type <{ i8*, i64 }>
+%struct.out._Z11var_15_nodePvmS_m = type <{ i8*, i64 }>
+%struct.out._Z11var_16_nodePvm = type <{ i8*, i64 }>
+%struct.out._Z11var_17_nodePvmS_m = type <{ i8*, i64 }>
+%struct.out._Z11var_18_nodePvmS_m = type <{ i8*, i64 }>
+%struct.out._Z11var_19_nodePvm = type <{ i8*, i64 }>
+%struct.out._Z11var_20_nodePvmS_m = type <{ i8*, i64 }>
+%struct.out._Z11var_21_nodePvmS_m = type <{ i8*, i64 }>
+%struct.out._Z11var_22_nodePvm = type <{ i8*, i64 }>
+%struct.out._Z11var_23_nodePvm = type <{ i8*, i64 }>
+%struct.out._Z11var_24_nodePvmS_m = type <{ i8*, i64 }>
+%struct.out._Z11var_25_nodePvmS_m = type <{ i8*, i64 }>
+%struct.out._Z11var_26_nodePvm = type <{ i8*, i64 }>
+%struct.out._Z11var_27_nodePvmS_m = type <{ i8*, i64 }>
+%struct.out._Z11var_28_nodePvmS_m = type <{ i8*, i64 }>
+%struct.out._Z11var_29_nodePvm = type <{ i8*, i64 }>
+%struct.out._Z11var_30_nodePvmS_m = type <{ i8*, i64 }>
+%struct.out._Z11var_31_nodePvmS_m = type <{ i8*, i64 }>
+%struct.out._Z11var_32_nodePvm = type <{ i8*, i64 }>
+%struct.out._Z11var_33_nodePvm = type <{ i8*, i64 }>
+%struct.out._Z11var_34_nodePvmS_m = type <{ i8*, i64 }>
+%struct.out._Z11var_35_nodePvmS_m = type <{ i8*, i64 }>
+%struct.out._Z11var_36_nodePvm = type <{ i8*, i64 }>
+%struct.out._Z11var_37_nodePvmS_m = type <{ i8*, i64 }>
+%struct.out._Z11var_38_nodePvmS_m = type <{ i8*, i64 }>
+%struct.out._Z11var_39_nodePvm = type <{ i8*, i64 }>
+%struct.out._Z11var_40_nodePvmS_m = type <{ i8*, i64 }>
+%struct.out._Z11var_41_nodePvmS_m = type <{ i8*, i64 }>
+%struct.out._Z11var_42_nodePvm = type <{ i8*, i64 }>
+%struct.out._Z11var_43_nodePvm = type <{ i8*, i64 }>
+%struct.out._Z11var_44_nodePvmS_m = type <{ i8*, i64 }>
+%struct.out._Z11var_45_nodePvmS_m = type <{ i8*, i64 }>
+%struct.out._Z11var_46_nodePvm = type <{ i8*, i64 }>
+%struct.out._Z11var_47_nodePvmS_m = type <{ i8*, i64 }>
+%struct.out._Z11var_48_nodePvmS_m = type <{ i8*, i64 }>
+%struct.out._Z11var_49_nodePvm = type <{ i8*, i64 }>
+%struct.out._Z4rootPvmS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_m = type <{ i8*, i64 }>
+
+@.str.1 = private unnamed_addr constant [19 x i8] c"tensor dims = %d \0A\00", align 1
+@.str.2 = private unnamed_addr constant [18 x i8] c"dim1_size = %zu \0A\00", align 1
+@.str.3 = private unnamed_addr constant [18 x i8] c"dim2_size = %zu \0A\00", align 1
+@.str.4 = private unnamed_addr constant [18 x i8] c"num_elems = %zu \0A\00", align 1
+@.str.5 = private unnamed_addr constant [3 x i8] c"wb\00", align 1
+@.str.6 = private unnamed_addr constant [58 x i8] c"File %s could not be created. Check if directory exists \0A\00", align 1
+@.str.7 = private unnamed_addr constant [22 x i8] c"size_in_bytes = %zu \0A\00", align 1
+@.str.8 = private unnamed_addr constant [21 x i8] c"bytes_written = %zu\0A\00", align 1
+@.str.9 = private unnamed_addr constant [4 x i8] c"%f,\00", align 1
+@.str.11 = private unnamed_addr constant [18 x i8] c"Num_elems = %zu \0A\00", align 1
+@.str.12 = private unnamed_addr constant [16 x i8] c"dim[%d] = %zu \0A\00", align 1
+@.str.13 = private unnamed_addr constant [35 x i8] c"Tensor data mismatch at index %d \0A\00", align 1
+@.str.14 = private unnamed_addr constant [21 x i8] c"Tensor data mismatch\00", align 1
+@.str.15 = private unnamed_addr constant [3 x i8] c"rb\00", align 1
+@.str.16 = private unnamed_addr constant [41 x i8] c"Data file %s is not found. Aborting... \0A\00", align 1
+@.str.17 = private unnamed_addr constant [23 x i8] c"tensor_data[%d] = %f \0A\00", align 1
+@.str.18 = private unnamed_addr constant [40 x i8] c"Data file %s is not found. Aborting...\0A\00", align 1
+@.str.19 = private unnamed_addr constant [26 x i8] c"*Label bytes_read = %zu \0A\00", align 1
+@.str.20 = private unnamed_addr constant [24 x i8] c"****** Accuracy = %f \0A\0A\00", align 1
+@.str.21 = private unnamed_addr constant [15 x i8] c"final_accuracy\00", align 1
+@.str.22 = private unnamed_addr constant [3 x i8] c"w+\00", align 1
+@.str.23 = private unnamed_addr constant [72 x i8] c"../../../../../../projects/hpvm-tensor-rt/model_params/vgg16_cifar10_2/\00", align 1
+@.str.24 = private unnamed_addr constant [10 x i8] c"input.bin\00", align 1
+@.str.25 = private unnamed_addr constant [11 x i8] c"labels.bin\00", align 1
+@.str.26 = private unnamed_addr constant [15 x i8] c"conv2d_1_w.bin\00", align 1
+@.str.27 = private unnamed_addr constant [15 x i8] c"conv2d_1_b.bin\00", align 1
+@.str.28 = private unnamed_addr constant [15 x i8] c"conv2d_2_w.bin\00", align 1
+@.str.29 = private unnamed_addr constant [15 x i8] c"conv2d_2_b.bin\00", align 1
+@.str.30 = private unnamed_addr constant [15 x i8] c"conv2d_3_w.bin\00", align 1
+@.str.31 = private unnamed_addr constant [15 x i8] c"conv2d_3_b.bin\00", align 1
+@.str.32 = private unnamed_addr constant [15 x i8] c"conv2d_4_w.bin\00", align 1
+@.str.33 = private unnamed_addr constant [15 x i8] c"conv2d_4_b.bin\00", align 1
+@.str.34 = private unnamed_addr constant [15 x i8] c"conv2d_5_w.bin\00", align 1
+@.str.35 = private unnamed_addr constant [15 x i8] c"conv2d_5_b.bin\00", align 1
+@.str.36 = private unnamed_addr constant [15 x i8] c"conv2d_6_w.bin\00", align 1
+@.str.37 = private unnamed_addr constant [15 x i8] c"conv2d_6_b.bin\00", align 1
+@.str.38 = private unnamed_addr constant [15 x i8] c"conv2d_7_w.bin\00", align 1
+@.str.39 = private unnamed_addr constant [15 x i8] c"conv2d_7_b.bin\00", align 1
+@.str.40 = private unnamed_addr constant [15 x i8] c"conv2d_8_w.bin\00", align 1
+@.str.41 = private unnamed_addr constant [15 x i8] c"conv2d_8_b.bin\00", align 1
+@.str.42 = private unnamed_addr constant [15 x i8] c"conv2d_9_w.bin\00", align 1
+@.str.43 = private unnamed_addr constant [15 x i8] c"conv2d_9_b.bin\00", align 1
+@.str.44 = private unnamed_addr constant [16 x i8] c"conv2d_10_w.bin\00", align 1
+@.str.45 = private unnamed_addr constant [16 x i8] c"conv2d_10_b.bin\00", align 1
+@.str.46 = private unnamed_addr constant [16 x i8] c"conv2d_11_w.bin\00", align 1
+@.str.47 = private unnamed_addr constant [16 x i8] c"conv2d_11_b.bin\00", align 1
+@.str.48 = private unnamed_addr constant [16 x i8] c"conv2d_12_w.bin\00", align 1
+@.str.49 = private unnamed_addr constant [16 x i8] c"conv2d_12_b.bin\00", align 1
+@.str.50 = private unnamed_addr constant [16 x i8] c"conv2d_13_w.bin\00", align 1
+@.str.51 = private unnamed_addr constant [16 x i8] c"conv2d_13_b.bin\00", align 1
+@.str.52 = private unnamed_addr constant [14 x i8] c"dense_1_w.bin\00", align 1
+@.str.53 = private unnamed_addr constant [14 x i8] c"dense_1_b.bin\00", align 1
+@.str.54 = private unnamed_addr constant [14 x i8] c"dense_2_w.bin\00", align 1
+@.str.55 = private unnamed_addr constant [14 x i8] c"dense_2_b.bin\00", align 1
+@_ZTVNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE = external unnamed_addr constant { [5 x i8*], [5 x i8*] }
+@_ZTTNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE = external unnamed_addr constant [4 x i8*]
+@_ZTVSt9basic_iosIcSt11char_traitsIcEE = external unnamed_addr constant { [4 x i8*] }
+@_ZTVNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEE = external unnamed_addr constant { [16 x i8*] }
+@_ZTVSt15basic_streambufIcSt11char_traitsIcEE = external unnamed_addr constant { [16 x i8*] }
+@str = private unnamed_addr constant [23 x i8] c"Successful cudaMalloc \00"
+
+; Function Attrs: nounwind uwtable
+define void @_Z15printTensorInfoPv(i8* nocapture readonly %tensor_ptr) local_unnamed_addr #0 {
+entry:
+  %gpu_data = getelementptr inbounds i8, i8* %tensor_ptr, i64 40
+  %0 = bitcast i8* %gpu_data to i8**
+  %1 = load i8*, i8** %0, align 8, !tbaa !52
+  %cmp = icmp eq i8* %1, null
+  br i1 %cmp, label %if.end, label %if.then
+
+if.then:                                          ; preds = %entry
+  %puts = tail call i32 @puts(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @str, i64 0, i64 0))
+  br label %if.end
+
+if.end:                                           ; preds = %if.then, %entry
+  %dims = getelementptr inbounds i8, i8* %tensor_ptr, i64 64
+  %num_dims = bitcast i8* %dims to i32*
+  %2 = load i32, i32* %num_dims, align 8, !tbaa !61
+  %call1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1, i64 0, i64 0), i32 %2)
+  %dim_sizes = getelementptr inbounds i8, i8* %tensor_ptr, i64 72
+  %3 = bitcast i8* %dim_sizes to i64**
+  %4 = load i64*, i64** %3, align 8, !tbaa !62
+  %5 = load i64, i64* %4, align 8, !tbaa !63
+  %call3 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.2, i64 0, i64 0), i64 %5)
+  %6 = load i64*, i64** %3, align 8, !tbaa !62
+  %arrayidx6 = getelementptr inbounds i64, i64* %6, i64 1
+  %7 = load i64, i64* %arrayidx6, align 8, !tbaa !63
+  %call7 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.3, i64 0, i64 0), i64 %7)
+  %num_elems = getelementptr inbounds i8, i8* %tensor_ptr, i64 48
+  %8 = bitcast i8* %num_elems to i64*
+  %9 = load i64, i64* %8, align 8, !tbaa !64
+  %call8 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.4, i64 0, i64 0), i64 %9)
+  ret void
+}
+
+; Function Attrs: argmemonly nounwind
+declare void @llvm.lifetime.start(i64, i8* nocapture) #1
+
+; Function Attrs: nounwind
+declare i32 @printf(i8* nocapture readonly, ...) local_unnamed_addr #2
+
+; Function Attrs: argmemonly nounwind
+declare void @llvm.lifetime.end(i64, i8* nocapture) #1
+
+; Function Attrs: nounwind uwtable
+define void @_Z17dumpWeightsToFilePcPv(i8* %file_name, i8* %weights_ptr) local_unnamed_addr #0 {
+entry:
+  tail call void @hpvm_request_tensor(i8* %weights_ptr, i32 0) #7
+  %call = tail call %struct._IO_FILE* @fopen(i8* %file_name, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.5, i64 0, i64 0))
+  %cmp = icmp eq %struct._IO_FILE* %call, null
+  br i1 %cmp, label %if.then, label %if.end
+
+if.then:                                          ; preds = %entry
+  %call1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.6, i64 0, i64 0), i8* %file_name)
+  tail call void @abort() #8
+  unreachable
+
+if.end:                                           ; preds = %entry
+  %size_in_bytes = getelementptr inbounds i8, i8* %weights_ptr, i64 56
+  %0 = bitcast i8* %size_in_bytes to i64*
+  %1 = load i64, i64* %0, align 8, !tbaa !65
+  %call2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.7, i64 0, i64 0), i64 %1)
+  %host_data = getelementptr inbounds i8, i8* %weights_ptr, i64 32
+  %2 = bitcast i8* %host_data to i8**
+  %3 = load i8*, i8** %2, align 8, !tbaa !66
+  %4 = load i64, i64* %0, align 8, !tbaa !65
+  %call4 = tail call i64 @fwrite(i8* %3, i64 1, i64 %4, %struct._IO_FILE* nonnull %call)
+  %call5 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.8, i64 0, i64 0), i64 %call4)
+  %call6 = tail call i32 @fclose(%struct._IO_FILE* nonnull %call)
+  ret void
+}
+
+declare void @hpvm_request_tensor(i8*, i32) local_unnamed_addr #3
+
+; Function Attrs: nounwind
+declare noalias %struct._IO_FILE* @fopen(i8* nocapture readonly, i8* nocapture readonly) local_unnamed_addr #2
+
+; Function Attrs: noreturn nounwind
+declare void @abort() local_unnamed_addr #4
+
+; Function Attrs: nounwind
+declare i64 @fwrite(i8* nocapture, i64, i64, %struct._IO_FILE* nocapture) local_unnamed_addr #2
+
+; Function Attrs: nounwind
+declare i32 @fclose(%struct._IO_FILE* nocapture) local_unnamed_addr #2
+
+; Function Attrs: nounwind uwtable
+define void @_Z18fillTensorWithOnesPv(i8* %tensor_ptr) local_unnamed_addr #0 {
+entry:
+  tail call void @hpvm_request_tensor(i8* %tensor_ptr, i32 0) #7
+  %data_type = bitcast i8* %tensor_ptr to i32*
+  %0 = load i32, i32* %data_type, align 8, !tbaa !67
+  %cmp = icmp eq i32 %0, 0
+  br i1 %cmp, label %if.then, label %if.end
+
+if.then:                                          ; preds = %entry
+  %host_data = getelementptr inbounds i8, i8* %tensor_ptr, i64 32
+  %1 = bitcast i8* %host_data to float**
+  %2 = load float*, float** %1, align 8, !tbaa !66
+  %num_elems = getelementptr inbounds i8, i8* %tensor_ptr, i64 48
+  %3 = bitcast i8* %num_elems to i64*
+  %4 = load i64, i64* %3, align 8, !tbaa !64
+  %cmp110 = icmp eq i64 %4, 0
+  br i1 %cmp110, label %if.end, label %for.body.preheader
+
+for.body.preheader:                               ; preds = %if.then
+  %min.iters.check = icmp ult i64 %4, 8
+  br i1 %min.iters.check, label %for.body.preheader22, label %min.iters.checked
+
+min.iters.checked:                                ; preds = %for.body.preheader
+  %n.vec = and i64 %4, -8
+  %cmp.zero = icmp eq i64 %n.vec, 0
+  br i1 %cmp.zero, label %for.body.preheader22, label %vector.scevcheck
+
+vector.scevcheck:                                 ; preds = %min.iters.checked
+  %5 = add i64 %4, -1
+  %6 = trunc i64 %5 to i32
+  %7 = icmp eq i32 %6, -1
+  %8 = icmp ugt i64 %5, 4294967295
+  %9 = or i1 %7, %8
+  %cast.crd = trunc i64 %n.vec to i32
+  br i1 %9, label %for.body.preheader22, label %vector.body.preheader
+
+vector.body.preheader:                            ; preds = %vector.scevcheck
+  %10 = add i64 %n.vec, -8
+  %11 = lshr exact i64 %10, 3
+  %12 = add nuw nsw i64 %11, 1
+  %xtraiter = and i64 %12, 7
+  %lcmp.mod = icmp eq i64 %xtraiter, 0
+  br i1 %lcmp.mod, label %vector.body.prol.loopexit, label %vector.body.prol.preheader
+
+vector.body.prol.preheader:                       ; preds = %vector.body.preheader
+  br label %vector.body.prol
+
+vector.body.prol:                                 ; preds = %vector.body.prol, %vector.body.prol.preheader
+  %index.prol = phi i64 [ %index.next.prol, %vector.body.prol ], [ 0, %vector.body.prol.preheader ]
+  %prol.iter = phi i64 [ %prol.iter.sub, %vector.body.prol ], [ %xtraiter, %vector.body.prol.preheader ]
+  %13 = getelementptr inbounds float, float* %2, i64 %index.prol
+  %14 = bitcast float* %13 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %14, align 4, !tbaa !68
+  %15 = getelementptr float, float* %13, i64 4
+  %16 = bitcast float* %15 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %16, align 4, !tbaa !68
+  %index.next.prol = add i64 %index.prol, 8
+  %prol.iter.sub = add i64 %prol.iter, -1
+  %prol.iter.cmp = icmp eq i64 %prol.iter.sub, 0
+  br i1 %prol.iter.cmp, label %vector.body.prol.loopexit.unr-lcssa, label %vector.body.prol, !llvm.loop !70
+
+vector.body.prol.loopexit.unr-lcssa:              ; preds = %vector.body.prol
+  br label %vector.body.prol.loopexit
+
+vector.body.prol.loopexit:                        ; preds = %vector.body.prol.loopexit.unr-lcssa, %vector.body.preheader
+  %index.unr = phi i64 [ 0, %vector.body.preheader ], [ %index.next.prol, %vector.body.prol.loopexit.unr-lcssa ]
+  %17 = icmp ult i64 %10, 56
+  br i1 %17, label %middle.block, label %vector.body.preheader.new
+
+vector.body.preheader.new:                        ; preds = %vector.body.prol.loopexit
+  br label %vector.body
+
+vector.body:                                      ; preds = %vector.body, %vector.body.preheader.new
+  %index = phi i64 [ %index.unr, %vector.body.preheader.new ], [ %index.next.7, %vector.body ]
+  %18 = getelementptr inbounds float, float* %2, i64 %index
+  %19 = bitcast float* %18 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %19, align 4, !tbaa !68
+  %20 = getelementptr float, float* %18, i64 4
+  %21 = bitcast float* %20 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %21, align 4, !tbaa !68
+  %index.next = add i64 %index, 8
+  %22 = getelementptr inbounds float, float* %2, i64 %index.next
+  %23 = bitcast float* %22 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %23, align 4, !tbaa !68
+  %24 = getelementptr float, float* %22, i64 4
+  %25 = bitcast float* %24 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %25, align 4, !tbaa !68
+  %index.next.1 = add i64 %index, 16
+  %26 = getelementptr inbounds float, float* %2, i64 %index.next.1
+  %27 = bitcast float* %26 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %27, align 4, !tbaa !68
+  %28 = getelementptr float, float* %26, i64 4
+  %29 = bitcast float* %28 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %29, align 4, !tbaa !68
+  %index.next.2 = add i64 %index, 24
+  %30 = getelementptr inbounds float, float* %2, i64 %index.next.2
+  %31 = bitcast float* %30 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %31, align 4, !tbaa !68
+  %32 = getelementptr float, float* %30, i64 4
+  %33 = bitcast float* %32 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %33, align 4, !tbaa !68
+  %index.next.3 = add i64 %index, 32
+  %34 = getelementptr inbounds float, float* %2, i64 %index.next.3
+  %35 = bitcast float* %34 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %35, align 4, !tbaa !68
+  %36 = getelementptr float, float* %34, i64 4
+  %37 = bitcast float* %36 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %37, align 4, !tbaa !68
+  %index.next.4 = add i64 %index, 40
+  %38 = getelementptr inbounds float, float* %2, i64 %index.next.4
+  %39 = bitcast float* %38 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %39, align 4, !tbaa !68
+  %40 = getelementptr float, float* %38, i64 4
+  %41 = bitcast float* %40 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %41, align 4, !tbaa !68
+  %index.next.5 = add i64 %index, 48
+  %42 = getelementptr inbounds float, float* %2, i64 %index.next.5
+  %43 = bitcast float* %42 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %43, align 4, !tbaa !68
+  %44 = getelementptr float, float* %42, i64 4
+  %45 = bitcast float* %44 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %45, align 4, !tbaa !68
+  %index.next.6 = add i64 %index, 56
+  %46 = getelementptr inbounds float, float* %2, i64 %index.next.6
+  %47 = bitcast float* %46 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %47, align 4, !tbaa !68
+  %48 = getelementptr float, float* %46, i64 4
+  %49 = bitcast float* %48 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %49, align 4, !tbaa !68
+  %index.next.7 = add i64 %index, 64
+  %50 = icmp eq i64 %index.next.7, %n.vec
+  br i1 %50, label %middle.block.unr-lcssa, label %vector.body, !llvm.loop !72
+
+middle.block.unr-lcssa:                           ; preds = %vector.body
+  br label %middle.block
+
+middle.block:                                     ; preds = %middle.block.unr-lcssa, %vector.body.prol.loopexit
+  %cmp.n = icmp eq i64 %4, %n.vec
+  br i1 %cmp.n, label %if.end, label %for.body.preheader22
+
+for.body.preheader22:                             ; preds = %middle.block, %vector.scevcheck, %min.iters.checked, %for.body.preheader
+  %conv12.ph = phi i64 [ 0, %vector.scevcheck ], [ 0, %min.iters.checked ], [ 0, %for.body.preheader ], [ %n.vec, %middle.block ]
+  %i.011.ph = phi i32 [ 0, %vector.scevcheck ], [ 0, %min.iters.checked ], [ 0, %for.body.preheader ], [ %cast.crd, %middle.block ]
+  br label %for.body
+
+for.body:                                         ; preds = %for.body, %for.body.preheader22
+  %conv12 = phi i64 [ %conv, %for.body ], [ %conv12.ph, %for.body.preheader22 ]
+  %i.011 = phi i32 [ %inc, %for.body ], [ %i.011.ph, %for.body.preheader22 ]
+  %arrayidx = getelementptr inbounds float, float* %2, i64 %conv12
+  store float 1.000000e+00, float* %arrayidx, align 4, !tbaa !68
+  %inc = add i32 %i.011, 1
+  %conv = zext i32 %inc to i64
+  %cmp1 = icmp ult i64 %conv, %4
+  br i1 %cmp1, label %for.body, label %if.end.loopexit, !llvm.loop !75
+
+if.end.loopexit:                                  ; preds = %for.body
+  br label %if.end
+
+if.end:                                           ; preds = %if.end.loopexit, %middle.block, %if.then, %entry
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z19fillWithOnesAndTwosPv(i8* %tensor_ptr) local_unnamed_addr #0 {
+entry:
+  tail call void @hpvm_request_tensor(i8* %tensor_ptr, i32 0) #7
+  %data_type = bitcast i8* %tensor_ptr to i32*
+  %0 = load i32, i32* %data_type, align 8, !tbaa !67
+  %cmp = icmp eq i32 %0, 0
+  br i1 %cmp, label %if.then, label %if.end
+
+if.then:                                          ; preds = %entry
+  %host_data = getelementptr inbounds i8, i8* %tensor_ptr, i64 32
+  %1 = bitcast i8* %host_data to float**
+  %2 = load float*, float** %1, align 8, !tbaa !66
+  %num_elems = getelementptr inbounds i8, i8* %tensor_ptr, i64 48
+  %3 = bitcast i8* %num_elems to i64*
+  %4 = load i64, i64* %3, align 8, !tbaa !64
+  %div35 = lshr i64 %4, 1
+  %cmp136 = icmp eq i64 %div35, 0
+  br i1 %cmp136, label %for.cond.cleanup, label %for.body.preheader
+
+for.body.preheader:                               ; preds = %if.then
+  %min.iters.check = icmp ult i64 %4, 16
+  br i1 %min.iters.check, label %for.body.preheader85, label %min.iters.checked
+
+for.body.preheader85:                             ; preds = %middle.block, %vector.scevcheck, %min.iters.checked, %for.body.preheader
+  %conv38.ph = phi i64 [ 0, %vector.scevcheck ], [ 0, %min.iters.checked ], [ 0, %for.body.preheader ], [ %n.vec, %middle.block ]
+  %i.037.ph = phi i32 [ 0, %vector.scevcheck ], [ 0, %min.iters.checked ], [ 0, %for.body.preheader ], [ %cast.crd, %middle.block ]
+  br label %for.body
+
+min.iters.checked:                                ; preds = %for.body.preheader
+  %n.vec = and i64 %div35, 9223372036854775800
+  %cmp.zero = icmp eq i64 %n.vec, 0
+  br i1 %cmp.zero, label %for.body.preheader85, label %vector.scevcheck
+
+vector.scevcheck:                                 ; preds = %min.iters.checked
+  %5 = add nsw i64 %div35, -1
+  %6 = trunc i64 %5 to i32
+  %7 = icmp eq i32 %6, -1
+  %8 = icmp ugt i64 %5, 4294967295
+  %9 = or i1 %7, %8
+  %cast.crd = trunc i64 %n.vec to i32
+  br i1 %9, label %for.body.preheader85, label %vector.body.preheader
+
+vector.body.preheader:                            ; preds = %vector.scevcheck
+  %10 = add nsw i64 %n.vec, -8
+  %11 = lshr exact i64 %10, 3
+  %12 = add nuw nsw i64 %11, 1
+  %xtraiter86 = and i64 %12, 7
+  %lcmp.mod87 = icmp eq i64 %xtraiter86, 0
+  br i1 %lcmp.mod87, label %vector.body.prol.loopexit, label %vector.body.prol.preheader
+
+vector.body.prol.preheader:                       ; preds = %vector.body.preheader
+  br label %vector.body.prol
+
+vector.body.prol:                                 ; preds = %vector.body.prol, %vector.body.prol.preheader
+  %index.prol = phi i64 [ %index.next.prol, %vector.body.prol ], [ 0, %vector.body.prol.preheader ]
+  %prol.iter88 = phi i64 [ %prol.iter88.sub, %vector.body.prol ], [ %xtraiter86, %vector.body.prol.preheader ]
+  %13 = getelementptr inbounds float, float* %2, i64 %index.prol
+  %14 = bitcast float* %13 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %14, align 4, !tbaa !68
+  %15 = getelementptr float, float* %13, i64 4
+  %16 = bitcast float* %15 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %16, align 4, !tbaa !68
+  %index.next.prol = add i64 %index.prol, 8
+  %prol.iter88.sub = add i64 %prol.iter88, -1
+  %prol.iter88.cmp = icmp eq i64 %prol.iter88.sub, 0
+  br i1 %prol.iter88.cmp, label %vector.body.prol.loopexit.unr-lcssa, label %vector.body.prol, !llvm.loop !76
+
+vector.body.prol.loopexit.unr-lcssa:              ; preds = %vector.body.prol
+  br label %vector.body.prol.loopexit
+
+vector.body.prol.loopexit:                        ; preds = %vector.body.prol.loopexit.unr-lcssa, %vector.body.preheader
+  %index.unr = phi i64 [ 0, %vector.body.preheader ], [ %index.next.prol, %vector.body.prol.loopexit.unr-lcssa ]
+  %17 = icmp ult i64 %10, 56
+  br i1 %17, label %middle.block, label %vector.body.preheader.new
+
+vector.body.preheader.new:                        ; preds = %vector.body.prol.loopexit
+  br label %vector.body
+
+vector.body:                                      ; preds = %vector.body, %vector.body.preheader.new
+  %index = phi i64 [ %index.unr, %vector.body.preheader.new ], [ %index.next.7, %vector.body ]
+  %18 = getelementptr inbounds float, float* %2, i64 %index
+  %19 = bitcast float* %18 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %19, align 4, !tbaa !68
+  %20 = getelementptr float, float* %18, i64 4
+  %21 = bitcast float* %20 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %21, align 4, !tbaa !68
+  %index.next = add i64 %index, 8
+  %22 = getelementptr inbounds float, float* %2, i64 %index.next
+  %23 = bitcast float* %22 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %23, align 4, !tbaa !68
+  %24 = getelementptr float, float* %22, i64 4
+  %25 = bitcast float* %24 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %25, align 4, !tbaa !68
+  %index.next.1 = add i64 %index, 16
+  %26 = getelementptr inbounds float, float* %2, i64 %index.next.1
+  %27 = bitcast float* %26 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %27, align 4, !tbaa !68
+  %28 = getelementptr float, float* %26, i64 4
+  %29 = bitcast float* %28 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %29, align 4, !tbaa !68
+  %index.next.2 = add i64 %index, 24
+  %30 = getelementptr inbounds float, float* %2, i64 %index.next.2
+  %31 = bitcast float* %30 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %31, align 4, !tbaa !68
+  %32 = getelementptr float, float* %30, i64 4
+  %33 = bitcast float* %32 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %33, align 4, !tbaa !68
+  %index.next.3 = add i64 %index, 32
+  %34 = getelementptr inbounds float, float* %2, i64 %index.next.3
+  %35 = bitcast float* %34 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %35, align 4, !tbaa !68
+  %36 = getelementptr float, float* %34, i64 4
+  %37 = bitcast float* %36 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %37, align 4, !tbaa !68
+  %index.next.4 = add i64 %index, 40
+  %38 = getelementptr inbounds float, float* %2, i64 %index.next.4
+  %39 = bitcast float* %38 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %39, align 4, !tbaa !68
+  %40 = getelementptr float, float* %38, i64 4
+  %41 = bitcast float* %40 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %41, align 4, !tbaa !68
+  %index.next.5 = add i64 %index, 48
+  %42 = getelementptr inbounds float, float* %2, i64 %index.next.5
+  %43 = bitcast float* %42 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %43, align 4, !tbaa !68
+  %44 = getelementptr float, float* %42, i64 4
+  %45 = bitcast float* %44 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %45, align 4, !tbaa !68
+  %index.next.6 = add i64 %index, 56
+  %46 = getelementptr inbounds float, float* %2, i64 %index.next.6
+  %47 = bitcast float* %46 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %47, align 4, !tbaa !68
+  %48 = getelementptr float, float* %46, i64 4
+  %49 = bitcast float* %48 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, <4 x float>* %49, align 4, !tbaa !68
+  %index.next.7 = add i64 %index, 64
+  %50 = icmp eq i64 %index.next.7, %n.vec
+  br i1 %50, label %middle.block.unr-lcssa, label %vector.body, !llvm.loop !77
+
+middle.block.unr-lcssa:                           ; preds = %vector.body
+  br label %middle.block
+
+middle.block:                                     ; preds = %middle.block.unr-lcssa, %vector.body.prol.loopexit
+  %cmp.n = icmp eq i64 %div35, %n.vec
+  br i1 %cmp.n, label %for.cond.cleanup, label %for.body.preheader85
+
+for.cond.cleanup.loopexit:                        ; preds = %for.body
+  br label %for.cond.cleanup
+
+for.cond.cleanup:                                 ; preds = %for.cond.cleanup.loopexit, %middle.block, %if.then
+  %div.lcssa = phi i64 [ 0, %if.then ], [ %div35, %middle.block ], [ %div35, %for.cond.cleanup.loopexit ]
+  %conv731 = and i64 %div.lcssa, 4294967295
+  %cmp932 = icmp ult i64 %conv731, %4
+  br i1 %cmp932, label %for.body11.lr.ph, label %if.end
+
+for.body11.lr.ph:                                 ; preds = %for.cond.cleanup
+  %conv5 = trunc i64 %div.lcssa to i32
+  %51 = add nuw i64 %div.lcssa, 1
+  %52 = and i64 %51, 4294967295
+  %53 = icmp ugt i64 %4, %52
+  %umax = select i1 %53, i64 %4, i64 %52
+  %54 = add i64 %umax, 1
+  %55 = sub i64 %54, %52
+  %min.iters.check52 = icmp ult i64 %55, 8
+  br i1 %min.iters.check52, label %for.body11.preheader, label %min.iters.checked53
+
+for.body11.preheader:                             ; preds = %middle.block50, %vector.scevcheck65, %min.iters.checked53, %for.body11.lr.ph
+  %conv734.ph = phi i64 [ %conv731, %vector.scevcheck65 ], [ %conv731, %min.iters.checked53 ], [ %conv731, %for.body11.lr.ph ], [ %ind.end70, %middle.block50 ]
+  %i2.033.ph = phi i32 [ %conv5, %vector.scevcheck65 ], [ %conv5, %min.iters.checked53 ], [ %conv5, %for.body11.lr.ph ], [ %ind.end73, %middle.block50 ]
+  br label %for.body11
+
+min.iters.checked53:                              ; preds = %for.body11.lr.ph
+  %n.vec55 = and i64 %55, -8
+  %cmp.zero56 = icmp eq i64 %n.vec55, 0
+  br i1 %cmp.zero56, label %for.body11.preheader, label %vector.scevcheck65
+
+vector.scevcheck65:                               ; preds = %min.iters.checked53
+  %56 = add i32 %conv5, 1
+  %57 = zext i32 %56 to i64
+  %58 = icmp ugt i64 %4, %57
+  %umax58 = select i1 %58, i64 %4, i64 %57
+  %59 = sub i64 %umax58, %57
+  %60 = trunc i64 %59 to i32
+  %61 = add i32 %56, %60
+  %62 = icmp ult i32 %61, %56
+  %63 = icmp ugt i64 %59, 4294967295
+  %64 = or i1 %62, %63
+  %65 = trunc i64 %59 to i32
+  %66 = add i32 %conv5, %65
+  %67 = icmp ult i32 %66, %conv5
+  %68 = icmp ugt i64 %59, 4294967295
+  %69 = or i1 %67, %68
+  %70 = or i1 %64, %69
+  %ind.end70 = add i64 %conv731, %n.vec55
+  %cast.crd72 = trunc i64 %n.vec55 to i32
+  %ind.end73 = add i32 %conv5, %cast.crd72
+  br i1 %70, label %for.body11.preheader, label %vector.body49.preheader
+
+vector.body49.preheader:                          ; preds = %vector.scevcheck65
+  %71 = add i64 %n.vec55, -8
+  %72 = lshr exact i64 %71, 3
+  %73 = add nuw nsw i64 %72, 1
+  %xtraiter = and i64 %73, 3
+  %lcmp.mod = icmp eq i64 %xtraiter, 0
+  br i1 %lcmp.mod, label %vector.body49.prol.loopexit, label %vector.body49.prol.preheader
+
+vector.body49.prol.preheader:                     ; preds = %vector.body49.preheader
+  br label %vector.body49.prol
+
+vector.body49.prol:                               ; preds = %vector.body49.prol, %vector.body49.prol.preheader
+  %index67.prol = phi i64 [ %index.next68.prol, %vector.body49.prol ], [ 0, %vector.body49.prol.preheader ]
+  %prol.iter = phi i64 [ %prol.iter.sub, %vector.body49.prol ], [ %xtraiter, %vector.body49.prol.preheader ]
+  %74 = add i64 %conv731, %index67.prol
+  %75 = getelementptr inbounds float, float* %2, i64 %74
+  %76 = bitcast float* %75 to <4 x float>*
+  store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %76, align 4, !tbaa !68
+  %77 = getelementptr float, float* %75, i64 4
+  %78 = bitcast float* %77 to <4 x float>*
+  store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %78, align 4, !tbaa !68
+  %index.next68.prol = add i64 %index67.prol, 8
+  %prol.iter.sub = add i64 %prol.iter, -1
+  %prol.iter.cmp = icmp eq i64 %prol.iter.sub, 0
+  br i1 %prol.iter.cmp, label %vector.body49.prol.loopexit.unr-lcssa, label %vector.body49.prol, !llvm.loop !78
+
+vector.body49.prol.loopexit.unr-lcssa:            ; preds = %vector.body49.prol
+  br label %vector.body49.prol.loopexit
+
+vector.body49.prol.loopexit:                      ; preds = %vector.body49.prol.loopexit.unr-lcssa, %vector.body49.preheader
+  %index67.unr = phi i64 [ 0, %vector.body49.preheader ], [ %index.next68.prol, %vector.body49.prol.loopexit.unr-lcssa ]
+  %79 = icmp ult i64 %71, 24
+  br i1 %79, label %middle.block50, label %vector.body49.preheader.new
+
+vector.body49.preheader.new:                      ; preds = %vector.body49.prol.loopexit
+  br label %vector.body49
+
+vector.body49:                                    ; preds = %vector.body49, %vector.body49.preheader.new
+  %index67 = phi i64 [ %index67.unr, %vector.body49.preheader.new ], [ %index.next68.3, %vector.body49 ]
+  %80 = add i64 %conv731, %index67
+  %81 = getelementptr inbounds float, float* %2, i64 %80
+  %82 = bitcast float* %81 to <4 x float>*
+  store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %82, align 4, !tbaa !68
+  %83 = getelementptr float, float* %81, i64 4
+  %84 = bitcast float* %83 to <4 x float>*
+  store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %84, align 4, !tbaa !68
+  %index.next68 = add i64 %index67, 8
+  %85 = add i64 %conv731, %index.next68
+  %86 = getelementptr inbounds float, float* %2, i64 %85
+  %87 = bitcast float* %86 to <4 x float>*
+  store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %87, align 4, !tbaa !68
+  %88 = getelementptr float, float* %86, i64 4
+  %89 = bitcast float* %88 to <4 x float>*
+  store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %89, align 4, !tbaa !68
+  %index.next68.1 = add i64 %index67, 16
+  %90 = add i64 %conv731, %index.next68.1
+  %91 = getelementptr inbounds float, float* %2, i64 %90
+  %92 = bitcast float* %91 to <4 x float>*
+  store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %92, align 4, !tbaa !68
+  %93 = getelementptr float, float* %91, i64 4
+  %94 = bitcast float* %93 to <4 x float>*
+  store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %94, align 4, !tbaa !68
+  %index.next68.2 = add i64 %index67, 24
+  %95 = add i64 %conv731, %index.next68.2
+  %96 = getelementptr inbounds float, float* %2, i64 %95
+  %97 = bitcast float* %96 to <4 x float>*
+  store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %97, align 4, !tbaa !68
+  %98 = getelementptr float, float* %96, i64 4
+  %99 = bitcast float* %98 to <4 x float>*
+  store <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>, <4 x float>* %99, align 4, !tbaa !68
+  %index.next68.3 = add i64 %index67, 32
+  %100 = icmp eq i64 %index.next68.3, %n.vec55
+  br i1 %100, label %middle.block50.unr-lcssa, label %vector.body49, !llvm.loop !79
+
+middle.block50.unr-lcssa:                         ; preds = %vector.body49
+  br label %middle.block50
+
+middle.block50:                                   ; preds = %middle.block50.unr-lcssa, %vector.body49.prol.loopexit
+  %cmp.n74 = icmp eq i64 %55, %n.vec55
+  br i1 %cmp.n74, label %if.end, label %for.body11.preheader
+
+for.body:                                         ; preds = %for.body, %for.body.preheader85
+  %conv38 = phi i64 [ %conv, %for.body ], [ %conv38.ph, %for.body.preheader85 ]
+  %i.037 = phi i32 [ %inc, %for.body ], [ %i.037.ph, %for.body.preheader85 ]
+  %arrayidx = getelementptr inbounds float, float* %2, i64 %conv38
+  store float 1.000000e+00, float* %arrayidx, align 4, !tbaa !68
+  %inc = add i32 %i.037, 1
+  %conv = zext i32 %inc to i64
+  %cmp1 = icmp ult i64 %conv, %div35
+  br i1 %cmp1, label %for.body, label %for.cond.cleanup.loopexit, !llvm.loop !80
+
+for.body11:                                       ; preds = %for.body11, %for.body11.preheader
+  %conv734 = phi i64 [ %conv7, %for.body11 ], [ %conv734.ph, %for.body11.preheader ]
+  %i2.033 = phi i32 [ %inc15, %for.body11 ], [ %i2.033.ph, %for.body11.preheader ]
+  %arrayidx13 = getelementptr inbounds float, float* %2, i64 %conv734
+  store float 2.000000e+00, float* %arrayidx13, align 4, !tbaa !68
+  %inc15 = add i32 %i2.033, 1
+  %conv7 = zext i32 %inc15 to i64
+  %cmp9 = icmp ult i64 %conv7, %4
+  br i1 %cmp9, label %for.body11, label %if.end.loopexit, !llvm.loop !81
+
+if.end.loopexit:                                  ; preds = %for.body11
+  br label %if.end
+
+if.end:                                           ; preds = %if.end.loopexit, %middle.block50, %for.cond.cleanup, %entry
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z21fillTensorWithNegOnesPv(i8* %tensor_ptr) local_unnamed_addr #0 {
+entry:
+  tail call void @hpvm_request_tensor(i8* %tensor_ptr, i32 0) #7
+  %data_type = bitcast i8* %tensor_ptr to i32*
+  %0 = load i32, i32* %data_type, align 8, !tbaa !67
+  %cmp = icmp eq i32 %0, 0
+  br i1 %cmp, label %if.then, label %if.end
+
+if.then:                                          ; preds = %entry
+  %host_data = getelementptr inbounds i8, i8* %tensor_ptr, i64 32
+  %1 = bitcast i8* %host_data to float**
+  %2 = load float*, float** %1, align 8, !tbaa !66
+  %num_elems = getelementptr inbounds i8, i8* %tensor_ptr, i64 48
+  %3 = bitcast i8* %num_elems to i64*
+  %4 = load i64, i64* %3, align 8, !tbaa !64
+  %cmp110 = icmp eq i64 %4, 0
+  br i1 %cmp110, label %if.end, label %for.body.preheader
+
+for.body.preheader:                               ; preds = %if.then
+  %min.iters.check = icmp ult i64 %4, 8
+  br i1 %min.iters.check, label %for.body.preheader22, label %min.iters.checked
+
+min.iters.checked:                                ; preds = %for.body.preheader
+  %n.vec = and i64 %4, -8
+  %cmp.zero = icmp eq i64 %n.vec, 0
+  br i1 %cmp.zero, label %for.body.preheader22, label %vector.scevcheck
+
+vector.scevcheck:                                 ; preds = %min.iters.checked
+  %5 = add i64 %4, -1
+  %6 = trunc i64 %5 to i32
+  %7 = icmp eq i32 %6, -1
+  %8 = icmp ugt i64 %5, 4294967295
+  %9 = or i1 %7, %8
+  %cast.crd = trunc i64 %n.vec to i32
+  br i1 %9, label %for.body.preheader22, label %vector.body.preheader
+
+vector.body.preheader:                            ; preds = %vector.scevcheck
+  %10 = add i64 %n.vec, -8
+  %11 = lshr exact i64 %10, 3
+  %12 = add nuw nsw i64 %11, 1
+  %xtraiter = and i64 %12, 7
+  %lcmp.mod = icmp eq i64 %xtraiter, 0
+  br i1 %lcmp.mod, label %vector.body.prol.loopexit, label %vector.body.prol.preheader
+
+vector.body.prol.preheader:                       ; preds = %vector.body.preheader
+  br label %vector.body.prol
+
+vector.body.prol:                                 ; preds = %vector.body.prol, %vector.body.prol.preheader
+  %index.prol = phi i64 [ %index.next.prol, %vector.body.prol ], [ 0, %vector.body.prol.preheader ]
+  %prol.iter = phi i64 [ %prol.iter.sub, %vector.body.prol ], [ %xtraiter, %vector.body.prol.preheader ]
+  %13 = getelementptr inbounds float, float* %2, i64 %index.prol
+  %14 = bitcast float* %13 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %14, align 4, !tbaa !68
+  %15 = getelementptr float, float* %13, i64 4
+  %16 = bitcast float* %15 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %16, align 4, !tbaa !68
+  %index.next.prol = add i64 %index.prol, 8
+  %prol.iter.sub = add i64 %prol.iter, -1
+  %prol.iter.cmp = icmp eq i64 %prol.iter.sub, 0
+  br i1 %prol.iter.cmp, label %vector.body.prol.loopexit.unr-lcssa, label %vector.body.prol, !llvm.loop !82
+
+vector.body.prol.loopexit.unr-lcssa:              ; preds = %vector.body.prol
+  br label %vector.body.prol.loopexit
+
+vector.body.prol.loopexit:                        ; preds = %vector.body.prol.loopexit.unr-lcssa, %vector.body.preheader
+  %index.unr = phi i64 [ 0, %vector.body.preheader ], [ %index.next.prol, %vector.body.prol.loopexit.unr-lcssa ]
+  %17 = icmp ult i64 %10, 56
+  br i1 %17, label %middle.block, label %vector.body.preheader.new
+
+vector.body.preheader.new:                        ; preds = %vector.body.prol.loopexit
+  br label %vector.body
+
+vector.body:                                      ; preds = %vector.body, %vector.body.preheader.new
+  %index = phi i64 [ %index.unr, %vector.body.preheader.new ], [ %index.next.7, %vector.body ]
+  %18 = getelementptr inbounds float, float* %2, i64 %index
+  %19 = bitcast float* %18 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %19, align 4, !tbaa !68
+  %20 = getelementptr float, float* %18, i64 4
+  %21 = bitcast float* %20 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %21, align 4, !tbaa !68
+  %index.next = add i64 %index, 8
+  %22 = getelementptr inbounds float, float* %2, i64 %index.next
+  %23 = bitcast float* %22 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %23, align 4, !tbaa !68
+  %24 = getelementptr float, float* %22, i64 4
+  %25 = bitcast float* %24 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %25, align 4, !tbaa !68
+  %index.next.1 = add i64 %index, 16
+  %26 = getelementptr inbounds float, float* %2, i64 %index.next.1
+  %27 = bitcast float* %26 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %27, align 4, !tbaa !68
+  %28 = getelementptr float, float* %26, i64 4
+  %29 = bitcast float* %28 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %29, align 4, !tbaa !68
+  %index.next.2 = add i64 %index, 24
+  %30 = getelementptr inbounds float, float* %2, i64 %index.next.2
+  %31 = bitcast float* %30 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %31, align 4, !tbaa !68
+  %32 = getelementptr float, float* %30, i64 4
+  %33 = bitcast float* %32 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %33, align 4, !tbaa !68
+  %index.next.3 = add i64 %index, 32
+  %34 = getelementptr inbounds float, float* %2, i64 %index.next.3
+  %35 = bitcast float* %34 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %35, align 4, !tbaa !68
+  %36 = getelementptr float, float* %34, i64 4
+  %37 = bitcast float* %36 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %37, align 4, !tbaa !68
+  %index.next.4 = add i64 %index, 40
+  %38 = getelementptr inbounds float, float* %2, i64 %index.next.4
+  %39 = bitcast float* %38 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %39, align 4, !tbaa !68
+  %40 = getelementptr float, float* %38, i64 4
+  %41 = bitcast float* %40 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %41, align 4, !tbaa !68
+  %index.next.5 = add i64 %index, 48
+  %42 = getelementptr inbounds float, float* %2, i64 %index.next.5
+  %43 = bitcast float* %42 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %43, align 4, !tbaa !68
+  %44 = getelementptr float, float* %42, i64 4
+  %45 = bitcast float* %44 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %45, align 4, !tbaa !68
+  %index.next.6 = add i64 %index, 56
+  %46 = getelementptr inbounds float, float* %2, i64 %index.next.6
+  %47 = bitcast float* %46 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %47, align 4, !tbaa !68
+  %48 = getelementptr float, float* %46, i64 4
+  %49 = bitcast float* %48 to <4 x float>*
+  store <4 x float> <float -1.000000e+00, float -1.000000e+00, float -1.000000e+00, float -1.000000e+00>, <4 x float>* %49, align 4, !tbaa !68
+  %index.next.7 = add i64 %index, 64
+  %50 = icmp eq i64 %index.next.7, %n.vec
+  br i1 %50, label %middle.block.unr-lcssa, label %vector.body, !llvm.loop !83
+
+middle.block.unr-lcssa:                           ; preds = %vector.body
+  br label %middle.block
+
+middle.block:                                     ; preds = %middle.block.unr-lcssa, %vector.body.prol.loopexit
+  %cmp.n = icmp eq i64 %4, %n.vec
+  br i1 %cmp.n, label %if.end, label %for.body.preheader22
+
+for.body.preheader22:                             ; preds = %middle.block, %vector.scevcheck, %min.iters.checked, %for.body.preheader
+  %conv12.ph = phi i64 [ 0, %vector.scevcheck ], [ 0, %min.iters.checked ], [ 0, %for.body.preheader ], [ %n.vec, %middle.block ]
+  %i.011.ph = phi i32 [ 0, %vector.scevcheck ], [ 0, %min.iters.checked ], [ 0, %for.body.preheader ], [ %cast.crd, %middle.block ]
+  br label %for.body
+
+for.body:                                         ; preds = %for.body, %for.body.preheader22
+  %conv12 = phi i64 [ %conv, %for.body ], [ %conv12.ph, %for.body.preheader22 ]
+  %i.011 = phi i32 [ %inc, %for.body ], [ %i.011.ph, %for.body.preheader22 ]
+  %arrayidx = getelementptr inbounds float, float* %2, i64 %conv12
+  store float -1.000000e+00, float* %arrayidx, align 4, !tbaa !68
+  %inc = add i32 %i.011, 1
+  %conv = zext i32 %inc to i64
+  %cmp1 = icmp ult i64 %conv, %4
+  br i1 %cmp1, label %for.body, label %if.end.loopexit, !llvm.loop !84
+
+if.end.loopexit:                                  ; preds = %for.body
+  br label %if.end
+
+if.end:                                           ; preds = %if.end.loopexit, %middle.block, %if.then, %entry
+  ret void
+}
+
+; Function Attrs: norecurse nounwind uwtable
+define void @_Z14fillTensorValsPv(i8* nocapture readonly %tensor_ptr) local_unnamed_addr #5 {
+entry:
+  %data_type = bitcast i8* %tensor_ptr to i32*
+  %0 = load i32, i32* %data_type, align 8, !tbaa !67
+  %cmp = icmp eq i32 %0, 0
+  br i1 %cmp, label %if.then, label %if.end
+
+if.then:                                          ; preds = %entry
+  %host_data = getelementptr inbounds i8, i8* %tensor_ptr, i64 32
+  %1 = bitcast i8* %host_data to float**
+  %2 = load float*, float** %1, align 8, !tbaa !66
+  %num_elems = getelementptr inbounds i8, i8* %tensor_ptr, i64 48
+  %3 = bitcast i8* %num_elems to i64*
+  %4 = load i64, i64* %3, align 8, !tbaa !64
+  %cmp111 = icmp eq i64 %4, 0
+  br i1 %cmp111, label %if.end, label %for.body.preheader
+
+for.body.preheader:                               ; preds = %if.then
+  %min.iters.check = icmp ult i64 %4, 8
+  br i1 %min.iters.check, label %for.body.preheader23, label %min.iters.checked
+
+min.iters.checked:                                ; preds = %for.body.preheader
+  %n.vec = and i64 %4, -8
+  %cmp.zero = icmp eq i64 %n.vec, 0
+  br i1 %cmp.zero, label %for.body.preheader23, label %vector.scevcheck
+
+vector.scevcheck:                                 ; preds = %min.iters.checked
+  %5 = add i64 %4, -1
+  %6 = trunc i64 %5 to i32
+  %7 = icmp eq i32 %6, -1
+  %8 = icmp ugt i64 %5, 4294967295
+  %9 = or i1 %7, %8
+  %cast.crd = trunc i64 %n.vec to i32
+  br i1 %9, label %for.body.preheader23, label %vector.body.preheader
+
+vector.body.preheader:                            ; preds = %vector.scevcheck
+  %10 = add i64 %n.vec, -8
+  %11 = lshr exact i64 %10, 3
+  %12 = and i64 %11, 1
+  %lcmp.mod = icmp eq i64 %12, 0
+  br i1 %lcmp.mod, label %vector.body.prol.preheader, label %vector.body.prol.loopexit
+
+vector.body.prol.preheader:                       ; preds = %vector.body.preheader
+  br label %vector.body.prol
+
+vector.body.prol:                                 ; preds = %vector.body.prol.preheader
+  %13 = bitcast float* %2 to <4 x float>*
+  store <4 x float> <float 1.000000e+00, float 2.000000e+00, float 3.000000e+00, float 4.000000e+00>, <4 x float>* %13, align 4, !tbaa !68
+  %14 = getelementptr float, float* %2, i64 4
+  %15 = bitcast float* %14 to <4 x float>*
+  store <4 x float> <float 5.000000e+00, float 6.000000e+00, float 7.000000e+00, float 8.000000e+00>, <4 x float>* %15, align 4, !tbaa !68
+  br label %vector.body.prol.loopexit
+
+vector.body.prol.loopexit:                        ; preds = %vector.body.prol, %vector.body.preheader
+  %index.unr = phi i64 [ 0, %vector.body.preheader ], [ 8, %vector.body.prol ]
+  %16 = icmp eq i64 %11, 0
+  br i1 %16, label %middle.block, label %vector.body.preheader.new
+
+vector.body.preheader.new:                        ; preds = %vector.body.prol.loopexit
+  br label %vector.body
+
+vector.body:                                      ; preds = %vector.body, %vector.body.preheader.new
+  %index = phi i64 [ %index.unr, %vector.body.preheader.new ], [ %index.next.1, %vector.body ]
+  %17 = trunc i64 %index to i32
+  %broadcast.splatinsert19 = insertelement <4 x i32> undef, i32 %17, i32 0
+  %broadcast.splat20 = shufflevector <4 x i32> %broadcast.splatinsert19, <4 x i32> undef, <4 x i32> zeroinitializer
+  %18 = add <4 x i32> %broadcast.splat20, <i32 1, i32 2, i32 3, i32 4>
+  %19 = add <4 x i32> %broadcast.splat20, <i32 5, i32 6, i32 7, i32 8>
+  %20 = uitofp <4 x i32> %18 to <4 x float>
+  %21 = uitofp <4 x i32> %19 to <4 x float>
+  %22 = getelementptr inbounds float, float* %2, i64 %index
+  %23 = bitcast float* %22 to <4 x float>*
+  store <4 x float> %20, <4 x float>* %23, align 4, !tbaa !68
+  %24 = getelementptr float, float* %22, i64 4
+  %25 = bitcast float* %24 to <4 x float>*
+  store <4 x float> %21, <4 x float>* %25, align 4, !tbaa !68
+  %index.next = add i64 %index, 8
+  %26 = trunc i64 %index.next to i32
+  %broadcast.splatinsert19.1 = insertelement <4 x i32> undef, i32 %26, i32 0
+  %broadcast.splat20.1 = shufflevector <4 x i32> %broadcast.splatinsert19.1, <4 x i32> undef, <4 x i32> zeroinitializer
+  %27 = add <4 x i32> %broadcast.splat20.1, <i32 1, i32 2, i32 3, i32 4>
+  %28 = add <4 x i32> %broadcast.splat20.1, <i32 5, i32 6, i32 7, i32 8>
+  %29 = uitofp <4 x i32> %27 to <4 x float>
+  %30 = uitofp <4 x i32> %28 to <4 x float>
+  %31 = getelementptr inbounds float, float* %2, i64 %index.next
+  %32 = bitcast float* %31 to <4 x float>*
+  store <4 x float> %29, <4 x float>* %32, align 4, !tbaa !68
+  %33 = getelementptr float, float* %31, i64 4
+  %34 = bitcast float* %33 to <4 x float>*
+  store <4 x float> %30, <4 x float>* %34, align 4, !tbaa !68
+  %index.next.1 = add i64 %index, 16
+  %35 = icmp eq i64 %index.next.1, %n.vec
+  br i1 %35, label %middle.block.unr-lcssa, label %vector.body, !llvm.loop !85
+
+middle.block.unr-lcssa:                           ; preds = %vector.body
+  br label %middle.block
+
+middle.block:                                     ; preds = %middle.block.unr-lcssa, %vector.body.prol.loopexit
+  %cmp.n = icmp eq i64 %4, %n.vec
+  br i1 %cmp.n, label %if.end, label %for.body.preheader23
+
+for.body.preheader23:                             ; preds = %middle.block, %vector.scevcheck, %min.iters.checked, %for.body.preheader
+  %conv13.ph = phi i64 [ 0, %vector.scevcheck ], [ 0, %min.iters.checked ], [ 0, %for.body.preheader ], [ %n.vec, %middle.block ]
+  %i.012.ph = phi i32 [ 0, %vector.scevcheck ], [ 0, %min.iters.checked ], [ 0, %for.body.preheader ], [ %cast.crd, %middle.block ]
+  br label %for.body
+
+for.body:                                         ; preds = %for.body, %for.body.preheader23
+  %conv13 = phi i64 [ %conv, %for.body ], [ %conv13.ph, %for.body.preheader23 ]
+  %i.012 = phi i32 [ %add, %for.body ], [ %i.012.ph, %for.body.preheader23 ]
+  %add = add i32 %i.012, 1
+  %conv2 = uitofp i32 %add to float
+  %arrayidx = getelementptr inbounds float, float* %2, i64 %conv13
+  store float %conv2, float* %arrayidx, align 4, !tbaa !68
+  %conv = zext i32 %add to i64
+  %cmp1 = icmp ult i64 %conv, %4
+  br i1 %cmp1, label %for.body, label %if.end.loopexit, !llvm.loop !86
+
+if.end.loopexit:                                  ; preds = %for.body
+  br label %if.end
+
+if.end:                                           ; preds = %if.end.loopexit, %middle.block, %if.then, %entry
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z17printTensorValuesPv(i8* %tensor_ptr) local_unnamed_addr #0 {
+entry:
+  tail call void @hpvm_request_tensor(i8* %tensor_ptr, i32 0) #7
+  %data_type = bitcast i8* %tensor_ptr to i32*
+  %0 = load i32, i32* %data_type, align 8, !tbaa !67
+  %cmp = icmp eq i32 %0, 0
+  br i1 %cmp, label %if.then, label %if.end
+
+if.then:                                          ; preds = %entry
+  %host_data = getelementptr inbounds i8, i8* %tensor_ptr, i64 32
+  %1 = bitcast i8* %host_data to float**
+  %2 = load float*, float** %1, align 8, !tbaa !66
+  %num_elems = getelementptr inbounds i8, i8* %tensor_ptr, i64 48
+  %3 = bitcast i8* %num_elems to i64*
+  %4 = load i64, i64* %3, align 8, !tbaa !64
+  %cmp112 = icmp eq i64 %4, 0
+  br i1 %cmp112, label %if.end, label %for.body.preheader
+
+for.body.preheader:                               ; preds = %if.then
+  br label %for.body
+
+for.body:                                         ; preds = %for.body, %for.body.preheader
+  %conv14 = phi i64 [ %conv, %for.body ], [ 0, %for.body.preheader ]
+  %i.013 = phi i32 [ %inc, %for.body ], [ 0, %for.body.preheader ]
+  %arrayidx = getelementptr inbounds float, float* %2, i64 %conv14
+  %5 = load float, float* %arrayidx, align 4, !tbaa !68
+  %conv2 = fpext float %5 to double
+  %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.9, i64 0, i64 0), double %conv2)
+  %inc = add i32 %i.013, 1
+  %conv = zext i32 %inc to i64
+  %6 = load i64, i64* %3, align 8, !tbaa !64
+  %cmp1 = icmp ult i64 %conv, %6
+  br i1 %cmp1, label %for.body, label %if.end.loopexit
+
+if.end.loopexit:                                  ; preds = %for.body
+  br label %if.end
+
+if.end:                                           ; preds = %if.end.loopexit, %if.then, %entry
+  %putchar = tail call i32 @putchar(i32 10) #7
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z15printTensorDimsPv(i8* nocapture readonly %tensor_ptr) local_unnamed_addr #0 {
+entry:
+  %num_elems = getelementptr inbounds i8, i8* %tensor_ptr, i64 48
+  %0 = bitcast i8* %num_elems to i64*
+  %1 = load i64, i64* %0, align 8, !tbaa !64
+  %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.11, i64 0, i64 0), i64 %1)
+  %dims = getelementptr inbounds i8, i8* %tensor_ptr, i64 64
+  %num_dims = bitcast i8* %dims to i32*
+  %2 = load i32, i32* %num_dims, align 8, !tbaa !61
+  %cmp10 = icmp sgt i32 %2, 0
+  br i1 %cmp10, label %for.body.lr.ph, label %for.cond.cleanup
+
+for.body.lr.ph:                                   ; preds = %entry
+  %dim_sizes = getelementptr inbounds i8, i8* %tensor_ptr, i64 72
+  %3 = bitcast i8* %dim_sizes to i64**
+  br label %for.body
+
+for.cond.cleanup.loopexit:                        ; preds = %for.body
+  br label %for.cond.cleanup
+
+for.cond.cleanup:                                 ; preds = %for.cond.cleanup.loopexit, %entry
+  ret void
+
+for.body:                                         ; preds = %for.body, %for.body.lr.ph
+  %indvars.iv = phi i64 [ 0, %for.body.lr.ph ], [ %indvars.iv.next, %for.body ]
+  %4 = load i64*, i64** %3, align 8, !tbaa !62
+  %arrayidx = getelementptr inbounds i64, i64* %4, i64 %indvars.iv
+  %5 = load i64, i64* %arrayidx, align 8, !tbaa !63
+  %6 = trunc i64 %indvars.iv to i32
+  %call2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.12, i64 0, i64 0), i32 %6, i64 %5)
+  %indvars.iv.next = add nuw i64 %indvars.iv, 1
+  %7 = load i32, i32* %num_dims, align 8, !tbaa !61
+  %8 = sext i32 %7 to i64
+  %cmp = icmp slt i64 %indvars.iv.next, %8
+  br i1 %cmp, label %for.body, label %for.cond.cleanup.loopexit
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z14compareTensorsPvS_(i8* %tensor1_ptr, i8* %tensor2_ptr) local_unnamed_addr #0 {
+entry:
+  tail call void @hpvm_request_tensor(i8* %tensor1_ptr, i32 0) #7
+  tail call void @hpvm_request_tensor(i8* %tensor2_ptr, i32 0) #7
+  %host_data = getelementptr inbounds i8, i8* %tensor1_ptr, i64 32
+  %0 = bitcast i8* %host_data to float**
+  %1 = load float*, float** %0, align 8, !tbaa !66
+  %host_data1 = getelementptr inbounds i8, i8* %tensor2_ptr, i64 32
+  %2 = bitcast i8* %host_data1 to float**
+  %3 = load float*, float** %2, align 8, !tbaa !66
+  %num_elems = getelementptr inbounds i8, i8* %tensor1_ptr, i64 48
+  %4 = bitcast i8* %num_elems to i64*
+  %5 = load i64, i64* %4, align 8, !tbaa !64
+  %cmp17 = icmp eq i64 %5, 0
+  br i1 %cmp17, label %for.cond.cleanup, label %for.body.preheader
+
+for.body.preheader:                               ; preds = %entry
+  br label %for.body
+
+for.cond.cleanup.loopexit:                        ; preds = %for.inc
+  br label %for.cond.cleanup
+
+for.cond.cleanup:                                 ; preds = %for.cond.cleanup.loopexit, %entry
+  ret void
+
+for.body:                                         ; preds = %for.inc, %for.body.preheader
+  %conv19 = phi i64 [ %conv, %for.inc ], [ 0, %for.body.preheader ]
+  %i.018 = phi i32 [ %inc, %for.inc ], [ 0, %for.body.preheader ]
+  %arrayidx = getelementptr inbounds float, float* %1, i64 %conv19
+  %6 = load float, float* %arrayidx, align 4, !tbaa !68
+  %arrayidx3 = getelementptr inbounds float, float* %3, i64 %conv19
+  %7 = load float, float* %arrayidx3, align 4, !tbaa !68
+  %cmp4 = fcmp fast une float %6, %7
+  br i1 %cmp4, label %if.then, label %for.inc
+
+if.then:                                          ; preds = %for.body
+  %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.13, i64 0, i64 0), i32 %i.018)
+  tail call void @abort() #8
+  unreachable
+
+for.inc:                                          ; preds = %for.body
+  %inc = add i32 %i.018, 1
+  %conv = zext i32 %inc to i64
+  %cmp = icmp ult i64 %conv, %5
+  br i1 %cmp, label %for.body, label %for.cond.cleanup.loopexit
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z13compareValuesPvPfm(i8* %tensor_ptr, float* nocapture readonly %data, i64 %num_elems) local_unnamed_addr #0 {
+entry:
+  tail call void @hpvm_request_tensor(i8* %tensor_ptr, i32 0) #7
+  %host_data = getelementptr inbounds i8, i8* %tensor_ptr, i64 32
+  %0 = bitcast i8* %host_data to float**
+  %1 = load float*, float** %0, align 8, !tbaa !66
+  %cmp11 = icmp eq i64 %num_elems, 0
+  br i1 %cmp11, label %for.cond.cleanup, label %for.body.preheader
+
+for.body.preheader:                               ; preds = %entry
+  br label %for.body
+
+for.cond:                                         ; preds = %for.body
+  %conv = zext i32 %inc to i64
+  %cmp = icmp ult i64 %conv, %num_elems
+  br i1 %cmp, label %for.body, label %for.cond.cleanup.loopexit
+
+for.cond.cleanup.loopexit:                        ; preds = %for.cond
+  br label %for.cond.cleanup
+
+for.cond.cleanup:                                 ; preds = %for.cond.cleanup.loopexit, %entry
+  ret void
+
+for.body:                                         ; preds = %for.cond, %for.body.preheader
+  %conv13 = phi i64 [ %conv, %for.cond ], [ 0, %for.body.preheader ]
+  %i.012 = phi i32 [ %inc, %for.cond ], [ 0, %for.body.preheader ]
+  %arrayidx = getelementptr inbounds float, float* %1, i64 %conv13
+  %2 = load float, float* %arrayidx, align 4, !tbaa !68
+  %arrayidx2 = getelementptr inbounds float, float* %data, i64 %conv13
+  %3 = load float, float* %arrayidx2, align 4, !tbaa !68
+  %cmp3 = fcmp fast une float %2, %3
+  %inc = add i32 %i.012, 1
+  br i1 %cmp3, label %if.then, label %for.cond
+
+if.then:                                          ; preds = %for.body
+  %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.14, i64 0, i64 0))
+  tail call void @abort() #8
+  unreachable
+}
+
+; Function Attrs: nounwind uwtable
+define i8* @_Z15readInputTensorPKciiiii(i8* %file_name, i32 %data_type, i32 %dim1_size, i32 %dim2_size, i32 %dim3_size, i32 %dim4_size) local_unnamed_addr #0 {
+entry:
+  %mul = mul nsw i32 %dim2_size, %dim1_size
+  %mul1 = mul nsw i32 %mul, %dim3_size
+  %mul2 = mul nsw i32 %mul1, %dim4_size
+  %mul3 = shl i32 %dim1_size, 2
+  %mul4 = mul nsw i32 %mul3, %dim2_size
+  %mul5 = mul nsw i32 %mul4, %dim3_size
+  %mul6 = mul nsw i32 %mul5, %dim4_size
+  %conv = sext i32 %mul2 to i64
+  %call = tail call noalias i8* @malloc(i64 %conv) #7
+  %mul9 = shl nsw i64 %conv, 2
+  %call10 = tail call noalias i8* @malloc(i64 %mul9) #7
+  %0 = bitcast i8* %call10 to float*
+  %call11 = tail call %struct._IO_FILE* @fopen(i8* %file_name, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0))
+  %cmp = icmp eq %struct._IO_FILE* %call11, null
+  br i1 %cmp, label %if.then, label %if.end
+
+if.then:                                          ; preds = %entry
+  %call12 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.16, i64 0, i64 0), i8* %file_name)
+  tail call void @abort() #8
+  unreachable
+
+if.end:                                           ; preds = %entry
+  %call14 = tail call i32 @fseek(%struct._IO_FILE* nonnull %call11, i64 16, i32 1)
+  %call17 = tail call i64 @fread(i8* %call, i64 1, i64 %conv, %struct._IO_FILE* nonnull %call11)
+  %cmp1962 = icmp eq i32 %mul2, 0
+  br i1 %cmp1962, label %for.cond.cleanup, label %for.body.preheader
+
+for.body.preheader:                               ; preds = %if.end
+  %1 = icmp ugt i64 %conv, 1
+  %umax = select i1 %1, i64 %conv, i64 1
+  %min.iters.check = icmp ult i64 %umax, 8
+  br i1 %min.iters.check, label %for.body.preheader68, label %min.iters.checked
+
+for.body.preheader68:                             ; preds = %middle.block, %min.iters.checked, %for.body.preheader
+  %i.063.ph = phi i64 [ 0, %min.iters.checked ], [ 0, %for.body.preheader ], [ %n.vec, %middle.block ]
+  br label %for.body
+
+min.iters.checked:                                ; preds = %for.body.preheader
+  %n.vec = and i64 %umax, -8
+  %cmp.zero = icmp eq i64 %n.vec, 0
+  br i1 %cmp.zero, label %for.body.preheader68, label %vector.body.preheader
+
+vector.body.preheader:                            ; preds = %min.iters.checked
+  %2 = add nsw i64 %n.vec, -8
+  %3 = lshr exact i64 %2, 3
+  %4 = and i64 %3, 1
+  %lcmp.mod = icmp eq i64 %4, 0
+  br i1 %lcmp.mod, label %vector.body.prol.preheader, label %vector.body.prol.loopexit
+
+vector.body.prol.preheader:                       ; preds = %vector.body.preheader
+  br label %vector.body.prol
+
+vector.body.prol:                                 ; preds = %vector.body.prol.preheader
+  %5 = bitcast i8* %call to <4 x i8>*
+  %wide.load.prol = load <4 x i8>, <4 x i8>* %5, align 1, !tbaa !87
+  %6 = getelementptr i8, i8* %call, i64 4
+  %7 = bitcast i8* %6 to <4 x i8>*
+  %wide.load67.prol = load <4 x i8>, <4 x i8>* %7, align 1, !tbaa !87
+  %8 = uitofp <4 x i8> %wide.load.prol to <4 x float>
+  %9 = uitofp <4 x i8> %wide.load67.prol to <4 x float>
+  %10 = fmul fast <4 x float> %8, <float 0x3F70101020000000, float 0x3F70101020000000, float 0x3F70101020000000, float 0x3F70101020000000>
+  %11 = fmul fast <4 x float> %9, <float 0x3F70101020000000, float 0x3F70101020000000, float 0x3F70101020000000, float 0x3F70101020000000>
+  %12 = bitcast i8* %call10 to <4 x float>*
+  store <4 x float> %10, <4 x float>* %12, align 4, !tbaa !68
+  %13 = getelementptr i8, i8* %call10, i64 16
+  %14 = bitcast i8* %13 to <4 x float>*
+  store <4 x float> %11, <4 x float>* %14, align 4, !tbaa !68
+  br label %vector.body.prol.loopexit
+
+vector.body.prol.loopexit:                        ; preds = %vector.body.prol, %vector.body.preheader
+  %index.unr = phi i64 [ 0, %vector.body.preheader ], [ 8, %vector.body.prol ]
+  %15 = icmp eq i64 %3, 0
+  br i1 %15, label %middle.block, label %vector.body.preheader.new
+
+vector.body.preheader.new:                        ; preds = %vector.body.prol.loopexit
+  br label %vector.body
+
+vector.body:                                      ; preds = %vector.body, %vector.body.preheader.new
+  %index = phi i64 [ %index.unr, %vector.body.preheader.new ], [ %index.next.1, %vector.body ]
+  %16 = getelementptr inbounds i8, i8* %call, i64 %index
+  %17 = bitcast i8* %16 to <4 x i8>*
+  %wide.load = load <4 x i8>, <4 x i8>* %17, align 1, !tbaa !87
+  %18 = getelementptr i8, i8* %16, i64 4
+  %19 = bitcast i8* %18 to <4 x i8>*
+  %wide.load67 = load <4 x i8>, <4 x i8>* %19, align 1, !tbaa !87
+  %20 = uitofp <4 x i8> %wide.load to <4 x float>
+  %21 = uitofp <4 x i8> %wide.load67 to <4 x float>
+  %22 = fmul fast <4 x float> %20, <float 0x3F70101020000000, float 0x3F70101020000000, float 0x3F70101020000000, float 0x3F70101020000000>
+  %23 = fmul fast <4 x float> %21, <float 0x3F70101020000000, float 0x3F70101020000000, float 0x3F70101020000000, float 0x3F70101020000000>
+  %24 = getelementptr inbounds float, float* %0, i64 %index
+  %25 = bitcast float* %24 to <4 x float>*
+  store <4 x float> %22, <4 x float>* %25, align 4, !tbaa !68
+  %26 = getelementptr float, float* %24, i64 4
+  %27 = bitcast float* %26 to <4 x float>*
+  store <4 x float> %23, <4 x float>* %27, align 4, !tbaa !68
+  %index.next = add i64 %index, 8
+  %28 = getelementptr inbounds i8, i8* %call, i64 %index.next
+  %29 = bitcast i8* %28 to <4 x i8>*
+  %wide.load.1 = load <4 x i8>, <4 x i8>* %29, align 1, !tbaa !87
+  %30 = getelementptr i8, i8* %28, i64 4
+  %31 = bitcast i8* %30 to <4 x i8>*
+  %wide.load67.1 = load <4 x i8>, <4 x i8>* %31, align 1, !tbaa !87
+  %32 = uitofp <4 x i8> %wide.load.1 to <4 x float>
+  %33 = uitofp <4 x i8> %wide.load67.1 to <4 x float>
+  %34 = fmul fast <4 x float> %32, <float 0x3F70101020000000, float 0x3F70101020000000, float 0x3F70101020000000, float 0x3F70101020000000>
+  %35 = fmul fast <4 x float> %33, <float 0x3F70101020000000, float 0x3F70101020000000, float 0x3F70101020000000, float 0x3F70101020000000>
+  %36 = getelementptr inbounds float, float* %0, i64 %index.next
+  %37 = bitcast float* %36 to <4 x float>*
+  store <4 x float> %34, <4 x float>* %37, align 4, !tbaa !68
+  %38 = getelementptr float, float* %36, i64 4
+  %39 = bitcast float* %38 to <4 x float>*
+  store <4 x float> %35, <4 x float>* %39, align 4, !tbaa !68
+  %index.next.1 = add i64 %index, 16
+  %40 = icmp eq i64 %index.next.1, %n.vec
+  br i1 %40, label %middle.block.unr-lcssa, label %vector.body, !llvm.loop !88
+
+middle.block.unr-lcssa:                           ; preds = %vector.body
+  br label %middle.block
+
+middle.block:                                     ; preds = %middle.block.unr-lcssa, %vector.body.prol.loopexit
+  %cmp.n = icmp eq i64 %umax, %n.vec
+  br i1 %cmp.n, label %for.cond.cleanup.loopexit, label %for.body.preheader68
+
+for.cond.cleanup.loopexit.loopexit:               ; preds = %for.body
+  br label %for.cond.cleanup.loopexit
+
+for.cond.cleanup.loopexit:                        ; preds = %for.cond.cleanup.loopexit.loopexit, %middle.block
+  %arrayidx22.phi.trans.insert = getelementptr inbounds i8, i8* %call10, i64 40
+  %.phi.trans.insert = bitcast i8* %arrayidx22.phi.trans.insert to float*
+  %.pre = load float, float* %.phi.trans.insert, align 4, !tbaa !68
+  %phitmp = fpext float %.pre to double
+  br label %for.cond.cleanup
+
+for.cond.cleanup:                                 ; preds = %for.cond.cleanup.loopexit, %if.end
+  %41 = phi double [ %phitmp, %for.cond.cleanup.loopexit ], [ undef, %if.end ]
+  %call24 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.17, i64 0, i64 0), i32 10, double %41)
+  %conv25 = sext i32 %dim1_size to i64
+  %conv26 = sext i32 %dim2_size to i64
+  %conv27 = sext i32 %dim3_size to i64
+  %conv28 = sext i32 %dim4_size to i64
+  %call29 = tail call i8* @create4DTensor(i32 %data_type, i32 0, i64 %conv25, i64 %conv26, i64 %conv27, i64 %conv28) #7
+  %conv30 = sext i32 %mul6 to i64
+  tail call void @initTensorData(i8* %call29, i8* %call10, i64 %conv30) #7
+  ret i8* %call29
+
+for.body:                                         ; preds = %for.body, %for.body.preheader68
+  %i.063 = phi i64 [ %inc, %for.body ], [ %i.063.ph, %for.body.preheader68 ]
+  %arrayidx = getelementptr inbounds i8, i8* %call, i64 %i.063
+  %42 = load i8, i8* %arrayidx, align 1, !tbaa !87
+  %conv20 = uitofp i8 %42 to float
+  %div = fmul fast float %conv20, 0x3F70101020000000
+  %arrayidx21 = getelementptr inbounds float, float* %0, i64 %i.063
+  store float %div, float* %arrayidx21, align 4, !tbaa !68
+  %inc = add nuw i64 %i.063, 1
+  %cmp19 = icmp ult i64 %inc, %conv
+  br i1 %cmp19, label %for.body, label %for.cond.cleanup.loopexit.loopexit, !llvm.loop !89
+}
+
+; Function Attrs: nounwind
+declare noalias i8* @malloc(i64) local_unnamed_addr #2
+
+; Function Attrs: nounwind
+declare i32 @fseek(%struct._IO_FILE* nocapture, i64, i32) local_unnamed_addr #2
+
+; Function Attrs: nounwind
+declare i64 @fread(i8* nocapture, i64, i64, %struct._IO_FILE* nocapture) local_unnamed_addr #2
+
+declare i8* @create4DTensor(i32, i32, i64, i64, i64, i64) local_unnamed_addr #3
+
+declare void @initTensorData(i8*, i8*, i64) local_unnamed_addr #3
+
+; Function Attrs: nounwind uwtable
+define %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %file_name, i32 %data_type, i32 %dim1_size, i32 %dim2_size, i32 %dim3_size, i32 %dim4_size) local_unnamed_addr #0 {
+entry:
+  %mul = mul nsw i32 %dim2_size, %dim1_size
+  %mul1 = mul nsw i32 %mul, %dim3_size
+  %mul2 = mul nsw i32 %mul1, %dim4_size
+  %conv = sext i32 %mul2 to i64
+  %mul7 = shl nsw i64 %conv, 2
+  %call = tail call noalias i8* @malloc(i64 %mul7) #7
+  %call8 = tail call %struct._IO_FILE* @fopen(i8* %file_name, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0))
+  %cmp = icmp eq %struct._IO_FILE* %call8, null
+  br i1 %cmp, label %if.then, label %if.end
+
+if.then:                                          ; preds = %entry
+  %call9 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.16, i64 0, i64 0), i8* %file_name)
+  tail call void @abort() #8
+  unreachable
+
+if.end:                                           ; preds = %entry
+  %0 = bitcast i8* %call to float*
+  %mul3 = shl i32 %dim1_size, 2
+  %mul4 = mul nsw i32 %mul3, %dim2_size
+  %mul5 = mul nsw i32 %mul4, %dim3_size
+  %mul6 = mul nsw i32 %mul5, %dim4_size
+  %call11 = tail call i32 @fseek(%struct._IO_FILE* nonnull %call8, i64 0, i32 1)
+  %conv12 = sext i32 %mul6 to i64
+  %call13 = tail call i64 @fread(i8* %call, i64 1, i64 %conv12, %struct._IO_FILE* nonnull %call8)
+  %conv14 = sext i32 %dim1_size to i64
+  %conv15 = sext i32 %dim2_size to i64
+  %conv16 = sext i32 %dim3_size to i64
+  %conv17 = sext i32 %dim4_size to i64
+  %call18 = tail call i8* @create4DTensor(i32 %data_type, i32 0, i64 %conv14, i64 %conv15, i64 %conv16, i64 %conv17) #7
+  %1 = bitcast i8* %call18 to %struct.Tensor*
+  tail call void @initTensorData(i8* %call18, i8* %call, i64 %conv12) #7
+  tail call void @hpvm_request_tensor(i8* %call18, i32 0) #7
+  %host_data.i = getelementptr inbounds i8, i8* %call18, i64 32
+  %2 = bitcast i8* %host_data.i to float**
+  %3 = load float*, float** %2, align 8, !tbaa !66
+  %cmp11.i = icmp eq i32 %mul2, 0
+  br i1 %cmp11.i, label %_Z13compareValuesPvPfm.exit, label %for.body.i.preheader
+
+for.body.i.preheader:                             ; preds = %if.end
+  br label %for.body.i
+
+for.cond.i:                                       ; preds = %for.body.i
+  %conv.i = zext i32 %inc.i to i64
+  %cmp.i = icmp ult i64 %conv.i, %conv
+  br i1 %cmp.i, label %for.body.i, label %_Z13compareValuesPvPfm.exit.loopexit
+
+for.body.i:                                       ; preds = %for.cond.i, %for.body.i.preheader
+  %conv13.i = phi i64 [ %conv.i, %for.cond.i ], [ 0, %for.body.i.preheader ]
+  %i.012.i = phi i32 [ %inc.i, %for.cond.i ], [ 0, %for.body.i.preheader ]
+  %arrayidx.i = getelementptr inbounds float, float* %3, i64 %conv13.i
+  %4 = load float, float* %arrayidx.i, align 4, !tbaa !68
+  %arrayidx2.i = getelementptr inbounds float, float* %0, i64 %conv13.i
+  %5 = load float, float* %arrayidx2.i, align 4, !tbaa !68
+  %cmp3.i = fcmp fast une float %4, %5
+  %inc.i = add i32 %i.012.i, 1
+  br i1 %cmp3.i, label %if.then.i, label %for.cond.i
+
+if.then.i:                                        ; preds = %for.body.i
+  %call.i = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.14, i64 0, i64 0)) #7
+  tail call void @abort() #8
+  unreachable
+
+_Z13compareValuesPvPfm.exit.loopexit:             ; preds = %for.cond.i
+  br label %_Z13compareValuesPvPfm.exit
+
+_Z13compareValuesPvPfm.exit:                      ; preds = %_Z13compareValuesPvPfm.exit.loopexit, %if.end
+  ret %struct.Tensor* %1
+}
+
+; Function Attrs: nounwind uwtable
+define noalias i8* @_Z10readLabelsPKci(i8* %labels_file, i32 %num_labels) local_unnamed_addr #0 {
+entry:
+  %conv = sext i32 %num_labels to i64
+  %call = tail call noalias i8* @malloc(i64 %conv) #7
+  %call1 = tail call %struct._IO_FILE* @fopen(i8* %labels_file, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0))
+  %cmp = icmp eq %struct._IO_FILE* %call1, null
+  br i1 %cmp, label %if.then, label %if.end
+
+if.then:                                          ; preds = %entry
+  %call2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.18, i64 0, i64 0), i8* %labels_file)
+  tail call void @abort() #8
+  unreachable
+
+if.end:                                           ; preds = %entry
+  %call5 = tail call i64 @fread(i8* %call, i64 1, i64 %conv, %struct._IO_FILE* nonnull %call1)
+  %call6 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.19, i64 0, i64 0), i64 %call5)
+  ret i8* %call
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z15computeAccuracyPciPv(i8* %labels_file, i32 %num_labels, i8* nocapture readonly %result_ptr) local_unnamed_addr #0 {
+entry:
+  %ss = alloca %"class.std::__cxx11::basic_ostringstream", align 16
+  %print_str = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv.i = sext i32 %num_labels to i64
+  %call.i = tail call noalias i8* @malloc(i64 %conv.i) #7
+  %call1.i = tail call %struct._IO_FILE* @fopen(i8* %labels_file, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0)) #7
+  %cmp.i = icmp eq %struct._IO_FILE* %call1.i, null
+  br i1 %cmp.i, label %if.then.i, label %_Z10readLabelsPKci.exit
+
+if.then.i:                                        ; preds = %entry
+  %call2.i = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.18, i64 0, i64 0), i8* %labels_file) #7
+  tail call void @abort() #8
+  unreachable
+
+_Z10readLabelsPKci.exit:                          ; preds = %entry
+  %call5.i = tail call i64 @fread(i8* %call.i, i64 1, i64 %conv.i, %struct._IO_FILE* nonnull %call1.i) #7
+  %call6.i = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.19, i64 0, i64 0), i64 %call5.i) #7
+  %dim_sizes = getelementptr inbounds i8, i8* %result_ptr, i64 72
+  %0 = bitcast i8* %dim_sizes to i64**
+  %1 = load i64*, i64** %0, align 8, !tbaa !62
+  %2 = load i64, i64* %1, align 8, !tbaa !63
+  %arrayidx3 = getelementptr inbounds i64, i64* %1, i64 1
+  %3 = load i64, i64* %arrayidx3, align 8, !tbaa !63
+  %host_data = getelementptr inbounds i8, i8* %result_ptr, i64 32
+  %4 = bitcast i8* %host_data to float**
+  %5 = load float*, float** %4, align 8, !tbaa !66
+  %cmp92 = icmp eq i64 %2, 0
+  br i1 %cmp92, label %for.cond.cleanup, label %for.cond4.preheader.preheader
+
+for.cond4.preheader.preheader:                    ; preds = %_Z10readLabelsPKci.exit
+  br label %for.cond4.preheader
+
+for.cond4.preheader:                              ; preds = %for.cond4.preheader, %for.cond4.preheader.preheader
+  %indvars.iv = phi i64 [ %indvars.iv.next, %for.cond4.preheader ], [ 0, %for.cond4.preheader.preheader ]
+  %num_errors.094 = phi i32 [ %num_errors.0.inc21, %for.cond4.preheader ], [ 0, %for.cond4.preheader.preheader ]
+  %mul = mul i64 %indvars.iv, %3
+  %arrayidx10 = getelementptr inbounds float, float* %5, i64 %mul
+  %6 = load float, float* %arrayidx10, align 4, !tbaa !68
+  %add14 = add i64 %mul, 1
+  %arrayidx15 = getelementptr inbounds float, float* %5, i64 %add14
+  %7 = load float, float* %arrayidx15, align 4, !tbaa !68
+  %cmp16 = fcmp fast olt float %6, %7
+  %chosen.1 = zext i1 %cmp16 to i32
+  %conv9.1 = zext i1 %cmp16 to i64
+  %add.1 = add i64 %conv9.1, %mul
+  %arrayidx10.1 = getelementptr inbounds float, float* %5, i64 %add.1
+  %8 = load float, float* %arrayidx10.1, align 4, !tbaa !68
+  %add14.1 = add i64 %mul, 2
+  %arrayidx15.1 = getelementptr inbounds float, float* %5, i64 %add14.1
+  %9 = load float, float* %arrayidx15.1, align 4, !tbaa !68
+  %cmp16.1 = fcmp fast olt float %8, %9
+  %chosen.1.1 = select i1 %cmp16.1, i32 2, i32 %chosen.1
+  %conv9.296 = zext i32 %chosen.1.1 to i64
+  %add.2 = add i64 %conv9.296, %mul
+  %arrayidx10.2 = getelementptr inbounds float, float* %5, i64 %add.2
+  %10 = load float, float* %arrayidx10.2, align 4, !tbaa !68
+  %add14.2 = add i64 %mul, 3
+  %arrayidx15.2 = getelementptr inbounds float, float* %5, i64 %add14.2
+  %11 = load float, float* %arrayidx15.2, align 4, !tbaa !68
+  %cmp16.2 = fcmp fast olt float %10, %11
+  %chosen.1.2 = select i1 %cmp16.2, i32 3, i32 %chosen.1.1
+  %conv9.397 = zext i32 %chosen.1.2 to i64
+  %add.3 = add i64 %conv9.397, %mul
+  %arrayidx10.3 = getelementptr inbounds float, float* %5, i64 %add.3
+  %12 = load float, float* %arrayidx10.3, align 4, !tbaa !68
+  %add14.3 = add i64 %mul, 4
+  %arrayidx15.3 = getelementptr inbounds float, float* %5, i64 %add14.3
+  %13 = load float, float* %arrayidx15.3, align 4, !tbaa !68
+  %cmp16.3 = fcmp fast olt float %12, %13
+  %chosen.1.3 = select i1 %cmp16.3, i32 4, i32 %chosen.1.2
+  %conv9.498 = zext i32 %chosen.1.3 to i64
+  %add.4 = add i64 %conv9.498, %mul
+  %arrayidx10.4 = getelementptr inbounds float, float* %5, i64 %add.4
+  %14 = load float, float* %arrayidx10.4, align 4, !tbaa !68
+  %add14.4 = add i64 %mul, 5
+  %arrayidx15.4 = getelementptr inbounds float, float* %5, i64 %add14.4
+  %15 = load float, float* %arrayidx15.4, align 4, !tbaa !68
+  %cmp16.4 = fcmp fast olt float %14, %15
+  %chosen.1.4 = select i1 %cmp16.4, i32 5, i32 %chosen.1.3
+  %conv9.599 = zext i32 %chosen.1.4 to i64
+  %add.5 = add i64 %conv9.599, %mul
+  %arrayidx10.5 = getelementptr inbounds float, float* %5, i64 %add.5
+  %16 = load float, float* %arrayidx10.5, align 4, !tbaa !68
+  %add14.5 = add i64 %mul, 6
+  %arrayidx15.5 = getelementptr inbounds float, float* %5, i64 %add14.5
+  %17 = load float, float* %arrayidx15.5, align 4, !tbaa !68
+  %cmp16.5 = fcmp fast olt float %16, %17
+  %chosen.1.5 = select i1 %cmp16.5, i32 6, i32 %chosen.1.4
+  %18 = zext i32 %chosen.1.5 to i64
+  %add.6 = add i64 %18, %mul
+  %arrayidx10.6 = getelementptr inbounds float, float* %5, i64 %add.6
+  %19 = load float, float* %arrayidx10.6, align 4, !tbaa !68
+  %add14.6 = add i64 %mul, 7
+  %arrayidx15.6 = getelementptr inbounds float, float* %5, i64 %add14.6
+  %20 = load float, float* %arrayidx15.6, align 4, !tbaa !68
+  %cmp16.6 = fcmp fast olt float %19, %20
+  %chosen.1.6 = select i1 %cmp16.6, i32 7, i32 %chosen.1.5
+  %conv9.7 = sext i32 %chosen.1.6 to i64
+  %add.7 = add i64 %conv9.7, %mul
+  %arrayidx10.7 = getelementptr inbounds float, float* %5, i64 %add.7
+  %21 = load float, float* %arrayidx10.7, align 4, !tbaa !68
+  %add14.7 = add i64 %mul, 8
+  %arrayidx15.7 = getelementptr inbounds float, float* %5, i64 %add14.7
+  %22 = load float, float* %arrayidx15.7, align 4, !tbaa !68
+  %cmp16.7 = fcmp fast olt float %21, %22
+  %chosen.1.7 = select i1 %cmp16.7, i32 8, i32 %chosen.1.6
+  %conv9.8 = sext i32 %chosen.1.7 to i64
+  %add.8 = add i64 %conv9.8, %mul
+  %arrayidx10.8 = getelementptr inbounds float, float* %5, i64 %add.8
+  %23 = load float, float* %arrayidx10.8, align 4, !tbaa !68
+  %add14.8 = add i64 %mul, 9
+  %arrayidx15.8 = getelementptr inbounds float, float* %5, i64 %add14.8
+  %24 = load float, float* %arrayidx15.8, align 4, !tbaa !68
+  %cmp16.8 = fcmp fast olt float %23, %24
+  %chosen.1.8 = select i1 %cmp16.8, i32 9, i32 %chosen.1.7
+  %arrayidx17 = getelementptr inbounds i8, i8* %call.i, i64 %indvars.iv
+  %25 = load i8, i8* %arrayidx17, align 1, !tbaa !87
+  %conv18 = zext i8 %25 to i32
+  %not.cmp19 = icmp ne i32 %chosen.1.8, %conv18
+  %inc21 = zext i1 %not.cmp19 to i32
+  %num_errors.0.inc21 = add nsw i32 %inc21, %num_errors.094
+  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
+  %exitcond = icmp eq i64 %indvars.iv.next, %2
+  br i1 %exitcond, label %for.cond.cleanup.loopexit, label %for.cond4.preheader
+
+for.cond.cleanup.loopexit:                        ; preds = %for.cond4.preheader
+  %phitmp = sext i32 %num_errors.0.inc21 to i64
+  br label %for.cond.cleanup
+
+for.cond.cleanup:                                 ; preds = %for.cond.cleanup.loopexit, %_Z10readLabelsPKci.exit
+  %num_errors.0.lcssa = phi i64 [ 0, %_Z10readLabelsPKci.exit ], [ %phitmp, %for.cond.cleanup.loopexit ]
+  %sub = sub i64 %2, %num_errors.0.lcssa
+  %conv27 = uitofp i64 %sub to double
+  %conv29 = uitofp i64 %2 to double
+  %div = fdiv fast double %conv27, %conv29
+  %mul31 = fmul fast double %div, 1.000000e+02
+  %conv32 = fptrunc double %mul31 to float
+  %conv33 = fpext float %conv32 to double
+  %call34 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.20, i64 0, i64 0), double %conv33)
+  %call35 = tail call %struct._IO_FILE* @fopen(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.21, i64 0, i64 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.22, i64 0, i64 0))
+  %cmp36 = icmp eq %struct._IO_FILE* %call35, null
+  br i1 %cmp36, label %if.end44, label %if.then37
+
+if.then37:                                        ; preds = %for.cond.cleanup
+  %26 = bitcast %"class.std::__cxx11::basic_ostringstream"* %ss to i8*
+  call void @llvm.lifetime.start(i64 376, i8* nonnull %26) #7
+  %27 = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 2
+  %28 = getelementptr inbounds %"class.std::basic_ios", %"class.std::basic_ios"* %27, i64 0, i32 0
+  call void @_ZNSt8ios_baseC2Ev(%"class.std::ios_base"* %28) #7
+  %29 = getelementptr inbounds %"class.std::basic_ios", %"class.std::basic_ios"* %27, i64 0, i32 0, i32 0
+  store i32 (...)** bitcast (i8** getelementptr inbounds ({ [4 x i8*] }, { [4 x i8*] }* @_ZTVSt9basic_iosIcSt11char_traitsIcEE, i64 0, inrange i32 0, i64 2) to i32 (...)**), i32 (...)*** %29, align 16, !tbaa !91
+  %_M_tie.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 2, i32 1
+  store %"class.std::basic_ostream"* null, %"class.std::basic_ostream"** %_M_tie.i.i, align 8, !tbaa !93
+  %_M_fill.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 2, i32 2
+  store i8 0, i8* %_M_fill.i.i, align 16, !tbaa !96
+  %_M_fill_init.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 2, i32 3
+  store i8 0, i8* %_M_fill_init.i.i, align 1, !tbaa !97
+  %_M_streambuf.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 2, i32 4
+  %30 = bitcast %"class.std::basic_streambuf"** %_M_streambuf.i.i to i8*
+  call void @llvm.memset.p0i8.i64(i8* %30, i8 0, i64 32, i32 8, i1 false) #7
+  %31 = load i64, i64* bitcast (i8** getelementptr inbounds ([4 x i8*], [4 x i8*]* @_ZTTNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE, i64 0, i64 1) to i64*), align 8
+  %32 = bitcast %"class.std::__cxx11::basic_ostringstream"* %ss to i64*
+  store i64 %31, i64* %32, align 16, !tbaa !91
+  %33 = load i64, i64* bitcast (i8** getelementptr inbounds ([4 x i8*], [4 x i8*]* @_ZTTNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE, i64 0, i64 2) to i64*), align 8
+  %34 = bitcast %"class.std::__cxx11::basic_ostringstream"* %ss to i8**
+  %vtable.cast.i.i = inttoptr i64 %31 to i8*
+  %vbase.offset.ptr.i.i = getelementptr i8, i8* %vtable.cast.i.i, i64 -24
+  %35 = bitcast i8* %vbase.offset.ptr.i.i to i64*
+  %vbase.offset.i.i = load i64, i64* %35, align 8
+  %add.ptr.i.i = getelementptr inbounds i8, i8* %26, i64 %vbase.offset.i.i
+  %36 = bitcast i8* %add.ptr.i.i to i64*
+  store i64 %33, i64* %36, align 8, !tbaa !91
+  %vtable3.i.i = load i8*, i8** %34, align 16, !tbaa !91
+  %vbase.offset.ptr4.i.i = getelementptr i8, i8* %vtable3.i.i, i64 -24
+  %37 = bitcast i8* %vbase.offset.ptr4.i.i to i64*
+  %vbase.offset5.i.i = load i64, i64* %37, align 8
+  %add.ptr6.i.i = getelementptr inbounds i8, i8* %26, i64 %vbase.offset5.i.i
+  %38 = bitcast i8* %add.ptr6.i.i to %"class.std::basic_ios"*
+  call void @_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E(%"class.std::basic_ios"* %38, %"class.std::basic_streambuf"* null) #7
+  store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*], [5 x i8*] }, { [5 x i8*], [5 x i8*] }* @_ZTVNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE, i64 0, inrange i32 1, i64 3) to i32 (...)**), i32 (...)*** %29, align 16, !tbaa !91
+  %_M_stringbuf.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1
+  %39 = getelementptr inbounds %"class.std::__cxx11::basic_stringbuf", %"class.std::__cxx11::basic_stringbuf"* %_M_stringbuf.i, i64 0, i32 0, i32 0
+  %40 = bitcast %"class.std::__cxx11::basic_ostringstream"* %ss to <2 x i32 (...)**>*
+  store <2 x i32 (...)**> <i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*], [5 x i8*] }, { [5 x i8*], [5 x i8*] }* @_ZTVNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE, i64 0, inrange i32 0, i64 3) to i32 (...)**), i32 (...)** bitcast (i8** getelementptr inbounds ({ [16 x i8*] }, { [16 x i8*] }* @_ZTVSt15basic_streambufIcSt11char_traitsIcEE, i64 0, inrange i32 0, i64 2) to i32 (...)**)>, <2 x i32 (...)**>* %40, align 16, !tbaa !91
+  %_M_in_beg.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1, i32 0, i32 1
+  %_M_buf_locale.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1, i32 0, i32 7
+  %41 = bitcast i8** %_M_in_beg.i.i.i to i8*
+  call void @llvm.memset.p0i8.i64(i8* %41, i8 0, i64 48, i32 8, i1 false) #7
+  call void @_ZNSt6localeC1Ev(%"class.std::locale"* %_M_buf_locale.i.i.i) #7
+  store i32 (...)** bitcast (i8** getelementptr inbounds ({ [16 x i8*] }, { [16 x i8*] }* @_ZTVNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEE, i64 0, inrange i32 0, i64 2) to i32 (...)**), i32 (...)*** %39, align 8, !tbaa !91
+  %_M_mode.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1, i32 1
+  store i32 16, i32* %_M_mode.i.i, align 8, !tbaa !98
+  %_M_string.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1, i32 2
+  %42 = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1, i32 2, i32 2
+  %43 = bitcast %"class.std::__cxx11::basic_string"* %_M_string.i.i to %union.anon**
+  store %union.anon* %42, %union.anon** %43, align 8, !tbaa !103
+  %_M_string_length.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1, i32 2, i32 1
+  store i64 0, i64* %_M_string_length.i.i.i.i.i, align 8, !tbaa !104
+  %.cast.i.i.i = bitcast %union.anon* %42 to i8*
+  store i8 0, i8* %.cast.i.i.i, align 8, !tbaa !87
+  %vtable.i = load i8*, i8** %34, align 16, !tbaa !91
+  %vbase.offset.ptr.i = getelementptr i8, i8* %vtable.i, i64 -24
+  %44 = bitcast i8* %vbase.offset.ptr.i to i64*
+  %vbase.offset.i = load i64, i64* %44, align 8
+  %add.ptr2.i = getelementptr inbounds i8, i8* %26, i64 %vbase.offset.i
+  %45 = bitcast i8* %add.ptr2.i to %"class.std::basic_ios"*
+  %46 = getelementptr inbounds %"class.std::__cxx11::basic_stringbuf", %"class.std::__cxx11::basic_stringbuf"* %_M_stringbuf.i, i64 0, i32 0
+  call void @_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E(%"class.std::basic_ios"* %45, %"class.std::basic_streambuf"* %46) #7
+  %47 = bitcast %"class.std::__cxx11::basic_ostringstream"* %ss to %"class.std::basic_ostream"*
+  %vtable.i74 = load i8*, i8** %34, align 16, !tbaa !91
+  %vbase.offset.ptr.i75 = getelementptr i8, i8* %vtable.i74, i64 -24
+  %48 = bitcast i8* %vbase.offset.ptr.i75 to i64*
+  %vbase.offset.i76 = load i64, i64* %48, align 8
+  %add.ptr.i = getelementptr inbounds i8, i8* %26, i64 %vbase.offset.i76
+  %_M_flags.i = getelementptr inbounds i8, i8* %add.ptr.i, i64 24
+  %49 = bitcast i8* %_M_flags.i to i32*
+  %50 = load i32, i32* %49, align 4, !tbaa !105
+  %and.i = and i32 %50, -261
+  %or.i = or i32 %and.i, 4
+  store i32 %or.i, i32* %49, align 4, !tbaa !105
+  %call.i84 = call dereferenceable(272) %"class.std::basic_ostream"* @_ZNSo9_M_insertIdEERSoT_(%"class.std::basic_ostream"* nonnull %47, double %conv33) #7
+  %51 = bitcast %"class.std::__cxx11::basic_string"* %print_str to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %51) #7
+  call void @_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv(%"class.std::__cxx11::basic_string"* nonnull sret %print_str, %"class.std::__cxx11::basic_stringbuf"* %_M_stringbuf.i) #7
+  %_M_p.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %print_str, i64 0, i32 0, i32 0
+  %52 = load i8*, i8** %_M_p.i.i, align 8, !tbaa !107
+  %_M_string_length.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %print_str, i64 0, i32 1
+  %53 = load i64, i64* %_M_string_length.i, align 8, !tbaa !104
+  %call42 = call i64 @fwrite(i8* %52, i64 1, i64 %53, %struct._IO_FILE* nonnull %call35)
+  %call43 = call i32 @fclose(%struct._IO_FILE* nonnull %call35)
+  %54 = load i8*, i8** %_M_p.i.i, align 8, !tbaa !107
+  %55 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %print_str, i64 0, i32 2
+  %arraydecay.i.i.i.i = bitcast %union.anon* %55 to i8*
+  %cmp.i.i.i = icmp eq i8* %54, %arraydecay.i.i.i.i
+  br i1 %cmp.i.i.i, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit, label %if.then.i.i
+
+if.then.i.i:                                      ; preds = %if.then37
+  call void @_ZdlPv(i8* %54) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit: ; preds = %if.then.i.i, %if.then37
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %51) #7
+  %56 = load i64, i64* bitcast ([4 x i8*]* @_ZTTNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE to i64*), align 8
+  store i64 %56, i64* %32, align 16, !tbaa !91
+  %57 = load i64, i64* bitcast (i8** getelementptr inbounds ([4 x i8*], [4 x i8*]* @_ZTTNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE, i64 0, i64 3) to i64*), align 8
+  %vtable.cast.i.i86 = inttoptr i64 %56 to i8*
+  %vbase.offset.ptr.i.i87 = getelementptr i8, i8* %vtable.cast.i.i86, i64 -24
+  %58 = bitcast i8* %vbase.offset.ptr.i.i87 to i64*
+  %vbase.offset.i.i88 = load i64, i64* %58, align 8
+  %add.ptr.i.i89 = getelementptr inbounds i8, i8* %26, i64 %vbase.offset.i.i88
+  %59 = bitcast i8* %add.ptr.i.i89 to i64*
+  store i64 %57, i64* %59, align 8, !tbaa !91
+  %60 = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1, i32 0, i32 0
+  store i32 (...)** bitcast (i8** getelementptr inbounds ({ [16 x i8*] }, { [16 x i8*] }* @_ZTVNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEE, i64 0, inrange i32 0, i64 2) to i32 (...)**), i32 (...)*** %60, align 8, !tbaa !91
+  %_M_p.i.i.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1, i32 2, i32 0, i32 0
+  %61 = load i8*, i8** %_M_p.i.i.i.i.i.i.i, align 8, !tbaa !107
+  %cmp.i.i.i.i.i.i = icmp eq i8* %61, %.cast.i.i.i
+  br i1 %cmp.i.i.i.i.i.i, label %_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev.exit, label %if.then.i.i.i.i.i
+
+if.then.i.i.i.i.i:                                ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
+  call void @_ZdlPv(i8* %61) #7
+  br label %_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev.exit
+
+_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev.exit: ; preds = %if.then.i.i.i.i.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
+  store i32 (...)** bitcast (i8** getelementptr inbounds ({ [16 x i8*] }, { [16 x i8*] }* @_ZTVSt15basic_streambufIcSt11char_traitsIcEE, i64 0, inrange i32 0, i64 2) to i32 (...)**), i32 (...)*** %60, align 8, !tbaa !91
+  call void @_ZNSt6localeD1Ev(%"class.std::locale"* nonnull %_M_buf_locale.i.i.i) #7
+  %62 = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 2, i32 0
+  call void @_ZNSt8ios_baseD2Ev(%"class.std::ios_base"* %62) #7
+  call void @llvm.lifetime.end(i64 376, i8* nonnull %26) #7
+  br label %if.end44
+
+if.end44:                                         ; preds = %_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev.exit, %for.cond.cleanup
+  ret void
+}
+
+; Function Attrs: nounwind uwtable
+define void @_Z16computeAccuracy2PhiPv(i8* nocapture readonly %labels, i32 %num_labels, i8* nocapture readonly %result_ptr) local_unnamed_addr #0 {
+entry:
+  %ss = alloca %"class.std::__cxx11::basic_ostringstream", align 16
+  %print_str = alloca %"class.std::__cxx11::basic_string", align 8
+  %dim_sizes = getelementptr inbounds i8, i8* %result_ptr, i64 72
+  %0 = bitcast i8* %dim_sizes to i64**
+  %1 = load i64*, i64** %0, align 8, !tbaa !62
+  %2 = load i64, i64* %1, align 8, !tbaa !63
+  %arrayidx3 = getelementptr inbounds i64, i64* %1, i64 1
+  %3 = load i64, i64* %arrayidx3, align 8, !tbaa !63
+  %host_data = getelementptr inbounds i8, i8* %result_ptr, i64 32
+  %4 = bitcast i8* %host_data to float**
+  %5 = load float*, float** %4, align 8, !tbaa !66
+  %cmp82 = icmp eq i64 %2, 0
+  br i1 %cmp82, label %for.cond.cleanup, label %for.cond4.preheader.preheader
+
+for.cond4.preheader.preheader:                    ; preds = %entry
+  br label %for.cond4.preheader
+
+for.cond4.preheader:                              ; preds = %for.cond4.preheader, %for.cond4.preheader.preheader
+  %indvars.iv = phi i64 [ %indvars.iv.next, %for.cond4.preheader ], [ 0, %for.cond4.preheader.preheader ]
+  %num_errors.084 = phi i32 [ %num_errors.0.inc21, %for.cond4.preheader ], [ 0, %for.cond4.preheader.preheader ]
+  %mul = mul i64 %indvars.iv, %3
+  %arrayidx10 = getelementptr inbounds float, float* %5, i64 %mul
+  %6 = load float, float* %arrayidx10, align 4, !tbaa !68
+  %add14 = add i64 %mul, 1
+  %arrayidx15 = getelementptr inbounds float, float* %5, i64 %add14
+  %7 = load float, float* %arrayidx15, align 4, !tbaa !68
+  %cmp16 = fcmp fast olt float %6, %7
+  %chosen.1 = zext i1 %cmp16 to i32
+  %conv9.1 = zext i1 %cmp16 to i64
+  %add.1 = add i64 %conv9.1, %mul
+  %arrayidx10.1 = getelementptr inbounds float, float* %5, i64 %add.1
+  %8 = load float, float* %arrayidx10.1, align 4, !tbaa !68
+  %add14.1 = add i64 %mul, 2
+  %arrayidx15.1 = getelementptr inbounds float, float* %5, i64 %add14.1
+  %9 = load float, float* %arrayidx15.1, align 4, !tbaa !68
+  %cmp16.1 = fcmp fast olt float %8, %9
+  %chosen.1.1 = select i1 %cmp16.1, i32 2, i32 %chosen.1
+  %conv9.286 = zext i32 %chosen.1.1 to i64
+  %add.2 = add i64 %conv9.286, %mul
+  %arrayidx10.2 = getelementptr inbounds float, float* %5, i64 %add.2
+  %10 = load float, float* %arrayidx10.2, align 4, !tbaa !68
+  %add14.2 = add i64 %mul, 3
+  %arrayidx15.2 = getelementptr inbounds float, float* %5, i64 %add14.2
+  %11 = load float, float* %arrayidx15.2, align 4, !tbaa !68
+  %cmp16.2 = fcmp fast olt float %10, %11
+  %chosen.1.2 = select i1 %cmp16.2, i32 3, i32 %chosen.1.1
+  %conv9.387 = zext i32 %chosen.1.2 to i64
+  %add.3 = add i64 %conv9.387, %mul
+  %arrayidx10.3 = getelementptr inbounds float, float* %5, i64 %add.3
+  %12 = load float, float* %arrayidx10.3, align 4, !tbaa !68
+  %add14.3 = add i64 %mul, 4
+  %arrayidx15.3 = getelementptr inbounds float, float* %5, i64 %add14.3
+  %13 = load float, float* %arrayidx15.3, align 4, !tbaa !68
+  %cmp16.3 = fcmp fast olt float %12, %13
+  %chosen.1.3 = select i1 %cmp16.3, i32 4, i32 %chosen.1.2
+  %conv9.488 = zext i32 %chosen.1.3 to i64
+  %add.4 = add i64 %conv9.488, %mul
+  %arrayidx10.4 = getelementptr inbounds float, float* %5, i64 %add.4
+  %14 = load float, float* %arrayidx10.4, align 4, !tbaa !68
+  %add14.4 = add i64 %mul, 5
+  %arrayidx15.4 = getelementptr inbounds float, float* %5, i64 %add14.4
+  %15 = load float, float* %arrayidx15.4, align 4, !tbaa !68
+  %cmp16.4 = fcmp fast olt float %14, %15
+  %chosen.1.4 = select i1 %cmp16.4, i32 5, i32 %chosen.1.3
+  %conv9.589 = zext i32 %chosen.1.4 to i64
+  %add.5 = add i64 %conv9.589, %mul
+  %arrayidx10.5 = getelementptr inbounds float, float* %5, i64 %add.5
+  %16 = load float, float* %arrayidx10.5, align 4, !tbaa !68
+  %add14.5 = add i64 %mul, 6
+  %arrayidx15.5 = getelementptr inbounds float, float* %5, i64 %add14.5
+  %17 = load float, float* %arrayidx15.5, align 4, !tbaa !68
+  %cmp16.5 = fcmp fast olt float %16, %17
+  %chosen.1.5 = select i1 %cmp16.5, i32 6, i32 %chosen.1.4
+  %18 = zext i32 %chosen.1.5 to i64
+  %add.6 = add i64 %18, %mul
+  %arrayidx10.6 = getelementptr inbounds float, float* %5, i64 %add.6
+  %19 = load float, float* %arrayidx10.6, align 4, !tbaa !68
+  %add14.6 = add i64 %mul, 7
+  %arrayidx15.6 = getelementptr inbounds float, float* %5, i64 %add14.6
+  %20 = load float, float* %arrayidx15.6, align 4, !tbaa !68
+  %cmp16.6 = fcmp fast olt float %19, %20
+  %chosen.1.6 = select i1 %cmp16.6, i32 7, i32 %chosen.1.5
+  %conv9.7 = sext i32 %chosen.1.6 to i64
+  %add.7 = add i64 %conv9.7, %mul
+  %arrayidx10.7 = getelementptr inbounds float, float* %5, i64 %add.7
+  %21 = load float, float* %arrayidx10.7, align 4, !tbaa !68
+  %add14.7 = add i64 %mul, 8
+  %arrayidx15.7 = getelementptr inbounds float, float* %5, i64 %add14.7
+  %22 = load float, float* %arrayidx15.7, align 4, !tbaa !68
+  %cmp16.7 = fcmp fast olt float %21, %22
+  %chosen.1.7 = select i1 %cmp16.7, i32 8, i32 %chosen.1.6
+  %conv9.8 = sext i32 %chosen.1.7 to i64
+  %add.8 = add i64 %conv9.8, %mul
+  %arrayidx10.8 = getelementptr inbounds float, float* %5, i64 %add.8
+  %23 = load float, float* %arrayidx10.8, align 4, !tbaa !68
+  %add14.8 = add i64 %mul, 9
+  %arrayidx15.8 = getelementptr inbounds float, float* %5, i64 %add14.8
+  %24 = load float, float* %arrayidx15.8, align 4, !tbaa !68
+  %cmp16.8 = fcmp fast olt float %23, %24
+  %chosen.1.8 = select i1 %cmp16.8, i32 9, i32 %chosen.1.7
+  %arrayidx17 = getelementptr inbounds i8, i8* %labels, i64 %indvars.iv
+  %25 = load i8, i8* %arrayidx17, align 1, !tbaa !87
+  %conv18 = zext i8 %25 to i32
+  %not.cmp19 = icmp ne i32 %chosen.1.8, %conv18
+  %inc21 = zext i1 %not.cmp19 to i32
+  %num_errors.0.inc21 = add nsw i32 %inc21, %num_errors.084
+  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
+  %exitcond = icmp eq i64 %indvars.iv.next, %2
+  br i1 %exitcond, label %for.cond.cleanup.loopexit, label %for.cond4.preheader
+
+for.cond.cleanup.loopexit:                        ; preds = %for.cond4.preheader
+  %phitmp = sext i32 %num_errors.0.inc21 to i64
+  br label %for.cond.cleanup
+
+for.cond.cleanup:                                 ; preds = %for.cond.cleanup.loopexit, %entry
+  %num_errors.0.lcssa = phi i64 [ 0, %entry ], [ %phitmp, %for.cond.cleanup.loopexit ]
+  %sub = sub i64 %2, %num_errors.0.lcssa
+  %conv27 = uitofp i64 %sub to double
+  %conv29 = uitofp i64 %2 to double
+  %div = fdiv fast double %conv27, %conv29
+  %mul31 = fmul fast double %div, 1.000000e+02
+  %conv32 = fptrunc double %mul31 to float
+  %conv33 = fpext float %conv32 to double
+  %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.20, i64 0, i64 0), double %conv33)
+  %call34 = tail call %struct._IO_FILE* @fopen(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.21, i64 0, i64 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.22, i64 0, i64 0))
+  %cmp35 = icmp eq %struct._IO_FILE* %call34, null
+  br i1 %cmp35, label %if.end43, label %if.then36
+
+if.then36:                                        ; preds = %for.cond.cleanup
+  %26 = bitcast %"class.std::__cxx11::basic_ostringstream"* %ss to i8*
+  call void @llvm.lifetime.start(i64 376, i8* nonnull %26) #7
+  %27 = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 2
+  %28 = getelementptr inbounds %"class.std::basic_ios", %"class.std::basic_ios"* %27, i64 0, i32 0
+  call void @_ZNSt8ios_baseC2Ev(%"class.std::ios_base"* %28) #7
+  %29 = getelementptr inbounds %"class.std::basic_ios", %"class.std::basic_ios"* %27, i64 0, i32 0, i32 0
+  store i32 (...)** bitcast (i8** getelementptr inbounds ({ [4 x i8*] }, { [4 x i8*] }* @_ZTVSt9basic_iosIcSt11char_traitsIcEE, i64 0, inrange i32 0, i64 2) to i32 (...)**), i32 (...)*** %29, align 16, !tbaa !91
+  %_M_tie.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 2, i32 1
+  store %"class.std::basic_ostream"* null, %"class.std::basic_ostream"** %_M_tie.i.i, align 8, !tbaa !93
+  %_M_fill.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 2, i32 2
+  store i8 0, i8* %_M_fill.i.i, align 16, !tbaa !96
+  %_M_fill_init.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 2, i32 3
+  store i8 0, i8* %_M_fill_init.i.i, align 1, !tbaa !97
+  %_M_streambuf.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 2, i32 4
+  %30 = bitcast %"class.std::basic_streambuf"** %_M_streambuf.i.i to i8*
+  call void @llvm.memset.p0i8.i64(i8* %30, i8 0, i64 32, i32 8, i1 false) #7
+  %31 = load i64, i64* bitcast (i8** getelementptr inbounds ([4 x i8*], [4 x i8*]* @_ZTTNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE, i64 0, i64 1) to i64*), align 8
+  %32 = bitcast %"class.std::__cxx11::basic_ostringstream"* %ss to i64*
+  store i64 %31, i64* %32, align 16, !tbaa !91
+  %33 = load i64, i64* bitcast (i8** getelementptr inbounds ([4 x i8*], [4 x i8*]* @_ZTTNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE, i64 0, i64 2) to i64*), align 8
+  %34 = bitcast %"class.std::__cxx11::basic_ostringstream"* %ss to i8**
+  %vtable.cast.i.i = inttoptr i64 %31 to i8*
+  %vbase.offset.ptr.i.i = getelementptr i8, i8* %vtable.cast.i.i, i64 -24
+  %35 = bitcast i8* %vbase.offset.ptr.i.i to i64*
+  %vbase.offset.i.i = load i64, i64* %35, align 8
+  %add.ptr.i.i = getelementptr inbounds i8, i8* %26, i64 %vbase.offset.i.i
+  %36 = bitcast i8* %add.ptr.i.i to i64*
+  store i64 %33, i64* %36, align 8, !tbaa !91
+  %vtable3.i.i = load i8*, i8** %34, align 16, !tbaa !91
+  %vbase.offset.ptr4.i.i = getelementptr i8, i8* %vtable3.i.i, i64 -24
+  %37 = bitcast i8* %vbase.offset.ptr4.i.i to i64*
+  %vbase.offset5.i.i = load i64, i64* %37, align 8
+  %add.ptr6.i.i = getelementptr inbounds i8, i8* %26, i64 %vbase.offset5.i.i
+  %38 = bitcast i8* %add.ptr6.i.i to %"class.std::basic_ios"*
+  call void @_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E(%"class.std::basic_ios"* %38, %"class.std::basic_streambuf"* null) #7
+  store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*], [5 x i8*] }, { [5 x i8*], [5 x i8*] }* @_ZTVNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE, i64 0, inrange i32 1, i64 3) to i32 (...)**), i32 (...)*** %29, align 16, !tbaa !91
+  %_M_stringbuf.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1
+  %39 = getelementptr inbounds %"class.std::__cxx11::basic_stringbuf", %"class.std::__cxx11::basic_stringbuf"* %_M_stringbuf.i, i64 0, i32 0, i32 0
+  %40 = bitcast %"class.std::__cxx11::basic_ostringstream"* %ss to <2 x i32 (...)**>*
+  store <2 x i32 (...)**> <i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*], [5 x i8*] }, { [5 x i8*], [5 x i8*] }* @_ZTVNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE, i64 0, inrange i32 0, i64 3) to i32 (...)**), i32 (...)** bitcast (i8** getelementptr inbounds ({ [16 x i8*] }, { [16 x i8*] }* @_ZTVSt15basic_streambufIcSt11char_traitsIcEE, i64 0, inrange i32 0, i64 2) to i32 (...)**)>, <2 x i32 (...)**>* %40, align 16, !tbaa !91
+  %_M_in_beg.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1, i32 0, i32 1
+  %_M_buf_locale.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1, i32 0, i32 7
+  %41 = bitcast i8** %_M_in_beg.i.i.i to i8*
+  call void @llvm.memset.p0i8.i64(i8* %41, i8 0, i64 48, i32 8, i1 false) #7
+  call void @_ZNSt6localeC1Ev(%"class.std::locale"* %_M_buf_locale.i.i.i) #7
+  store i32 (...)** bitcast (i8** getelementptr inbounds ({ [16 x i8*] }, { [16 x i8*] }* @_ZTVNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEE, i64 0, inrange i32 0, i64 2) to i32 (...)**), i32 (...)*** %39, align 8, !tbaa !91
+  %_M_mode.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1, i32 1
+  store i32 16, i32* %_M_mode.i.i, align 8, !tbaa !98
+  %_M_string.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1, i32 2
+  %42 = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1, i32 2, i32 2
+  %43 = bitcast %"class.std::__cxx11::basic_string"* %_M_string.i.i to %union.anon**
+  store %union.anon* %42, %union.anon** %43, align 8, !tbaa !103
+  %_M_string_length.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1, i32 2, i32 1
+  store i64 0, i64* %_M_string_length.i.i.i.i.i, align 8, !tbaa !104
+  %.cast.i.i.i = bitcast %union.anon* %42 to i8*
+  store i8 0, i8* %.cast.i.i.i, align 8, !tbaa !87
+  %vtable.i = load i8*, i8** %34, align 16, !tbaa !91
+  %vbase.offset.ptr.i = getelementptr i8, i8* %vtable.i, i64 -24
+  %44 = bitcast i8* %vbase.offset.ptr.i to i64*
+  %vbase.offset.i = load i64, i64* %44, align 8
+  %add.ptr2.i = getelementptr inbounds i8, i8* %26, i64 %vbase.offset.i
+  %45 = bitcast i8* %add.ptr2.i to %"class.std::basic_ios"*
+  %46 = getelementptr inbounds %"class.std::__cxx11::basic_stringbuf", %"class.std::__cxx11::basic_stringbuf"* %_M_stringbuf.i, i64 0, i32 0
+  call void @_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E(%"class.std::basic_ios"* %45, %"class.std::basic_streambuf"* %46) #7
+  %47 = bitcast %"class.std::__cxx11::basic_ostringstream"* %ss to %"class.std::basic_ostream"*
+  %vtable.i72 = load i8*, i8** %34, align 16, !tbaa !91
+  %vbase.offset.ptr.i73 = getelementptr i8, i8* %vtable.i72, i64 -24
+  %48 = bitcast i8* %vbase.offset.ptr.i73 to i64*
+  %vbase.offset.i74 = load i64, i64* %48, align 8
+  %add.ptr.i = getelementptr inbounds i8, i8* %26, i64 %vbase.offset.i74
+  %_M_flags.i.i = getelementptr inbounds i8, i8* %add.ptr.i, i64 24
+  %49 = bitcast i8* %_M_flags.i.i to i32*
+  %50 = load i32, i32* %49, align 8, !tbaa !108
+  %and.i.i.i.i = and i32 %50, -261
+  %or.i.i.i.i = or i32 %and.i.i.i.i, 4
+  store i32 %or.i.i.i.i, i32* %49, align 4, !tbaa !105
+  %call.i = call dereferenceable(272) %"class.std::basic_ostream"* @_ZNSo9_M_insertIdEERSoT_(%"class.std::basic_ostream"* nonnull %47, double %conv33) #7
+  %51 = bitcast %"class.std::__cxx11::basic_string"* %print_str to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %51) #7
+  call void @_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv(%"class.std::__cxx11::basic_string"* nonnull sret %print_str, %"class.std::__cxx11::basic_stringbuf"* %_M_stringbuf.i) #7
+  %_M_p.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %print_str, i64 0, i32 0, i32 0
+  %52 = load i8*, i8** %_M_p.i.i, align 8, !tbaa !107
+  %_M_string_length.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %print_str, i64 0, i32 1
+  %53 = load i64, i64* %_M_string_length.i, align 8, !tbaa !104
+  %call41 = call i64 @fwrite(i8* %52, i64 1, i64 %53, %struct._IO_FILE* nonnull %call34)
+  %call42 = call i32 @fclose(%struct._IO_FILE* nonnull %call34)
+  %54 = load i8*, i8** %_M_p.i.i, align 8, !tbaa !107
+  %55 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %print_str, i64 0, i32 2
+  %arraydecay.i.i.i.i = bitcast %union.anon* %55 to i8*
+  %cmp.i.i.i = icmp eq i8* %54, %arraydecay.i.i.i.i
+  br i1 %cmp.i.i.i, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit, label %if.then.i.i
+
+if.then.i.i:                                      ; preds = %if.then36
+  call void @_ZdlPv(i8* %54) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit: ; preds = %if.then.i.i, %if.then36
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %51) #7
+  %56 = load i64, i64* bitcast ([4 x i8*]* @_ZTTNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE to i64*), align 8
+  store i64 %56, i64* %32, align 16, !tbaa !91
+  %57 = load i64, i64* bitcast (i8** getelementptr inbounds ([4 x i8*], [4 x i8*]* @_ZTTNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE, i64 0, i64 3) to i64*), align 8
+  %vtable.cast.i.i76 = inttoptr i64 %56 to i8*
+  %vbase.offset.ptr.i.i77 = getelementptr i8, i8* %vtable.cast.i.i76, i64 -24
+  %58 = bitcast i8* %vbase.offset.ptr.i.i77 to i64*
+  %vbase.offset.i.i78 = load i64, i64* %58, align 8
+  %add.ptr.i.i79 = getelementptr inbounds i8, i8* %26, i64 %vbase.offset.i.i78
+  %59 = bitcast i8* %add.ptr.i.i79 to i64*
+  store i64 %57, i64* %59, align 8, !tbaa !91
+  %60 = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1, i32 0, i32 0
+  store i32 (...)** bitcast (i8** getelementptr inbounds ({ [16 x i8*] }, { [16 x i8*] }* @_ZTVNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEE, i64 0, inrange i32 0, i64 2) to i32 (...)**), i32 (...)*** %60, align 8, !tbaa !91
+  %_M_p.i.i.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 1, i32 2, i32 0, i32 0
+  %61 = load i8*, i8** %_M_p.i.i.i.i.i.i.i, align 8, !tbaa !107
+  %cmp.i.i.i.i.i.i = icmp eq i8* %61, %.cast.i.i.i
+  br i1 %cmp.i.i.i.i.i.i, label %_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev.exit, label %if.then.i.i.i.i.i
+
+if.then.i.i.i.i.i:                                ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
+  call void @_ZdlPv(i8* %61) #7
+  br label %_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev.exit
+
+_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev.exit: ; preds = %if.then.i.i.i.i.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
+  store i32 (...)** bitcast (i8** getelementptr inbounds ({ [16 x i8*] }, { [16 x i8*] }* @_ZTVSt15basic_streambufIcSt11char_traitsIcEE, i64 0, inrange i32 0, i64 2) to i32 (...)**), i32 (...)*** %60, align 8, !tbaa !91
+  call void @_ZNSt6localeD1Ev(%"class.std::locale"* nonnull %_M_buf_locale.i.i.i) #7
+  %62 = getelementptr inbounds %"class.std::__cxx11::basic_ostringstream", %"class.std::__cxx11::basic_ostringstream"* %ss, i64 0, i32 2, i32 0
+  call void @_ZNSt8ios_baseD2Ev(%"class.std::ios_base"* %62) #7
+  call void @llvm.lifetime.end(i64 376, i8* nonnull %26) #7
+  br label %if.end43
+
+if.end43:                                         ; preds = %_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev.exit, %for.cond.cleanup
+  ret void
+}
+
+; Function Attrs: norecurse nounwind uwtable
+define i32 @main() local_unnamed_addr #5 {
+entry:
+  %__dnew.i.i.i.i = alloca i64, align 8
+  %dir_prefix = alloca %"class.std::__cxx11::basic_string", align 8
+  %input_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp1 = alloca %"class.std::__cxx11::basic_string", align 8
+  %labels_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp3 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_1_w_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp5 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_1_b_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp8 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_2_w_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp12 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_2_b_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp16 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_3_w_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp20 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_3_b_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp24 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_4_w_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp28 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_4_b_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp32 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_5_w_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp36 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_5_b_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp40 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_6_w_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp44 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_6_b_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp48 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_7_w_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp52 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_7_b_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp56 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_8_w_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp60 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_8_b_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp64 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_9_w_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp68 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_9_b_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp72 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_10_w_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp76 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_10_b_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp80 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_11_w_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp84 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_11_b_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp88 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_12_w_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp92 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_12_b_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp96 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_13_w_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp100 = alloca %"class.std::__cxx11::basic_string", align 8
+  %conv2d_13_b_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp104 = alloca %"class.std::__cxx11::basic_string", align 8
+  %dense_1_w_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp108 = alloca %"class.std::__cxx11::basic_string", align 8
+  %dense_1_b_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp112 = alloca %"class.std::__cxx11::basic_string", align 8
+  %dense_2_w_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp116 = alloca %"class.std::__cxx11::basic_string", align 8
+  %dense_2_b_path = alloca %"class.std::__cxx11::basic_string", align 8
+  %ref.tmp120 = alloca %"class.std::__cxx11::basic_string", align 8
+  %0 = bitcast %"class.std::__cxx11::basic_string"* %dir_prefix to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %0) #7
+  %1 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dir_prefix, i64 0, i32 2
+  %2 = bitcast %"class.std::__cxx11::basic_string"* %dir_prefix to %union.anon**
+  store %union.anon* %1, %union.anon** %2, align 8, !tbaa !103
+  %3 = bitcast %union.anon* %1 to i8*
+  %4 = bitcast i64* %__dnew.i.i.i.i to i8*
+  call void @llvm.lifetime.start(i64 8, i8* nonnull %4) #7
+  store i64 71, i64* %__dnew.i.i.i.i, align 8, !tbaa !63
+  %call5.i.i.i.i = call i8* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm(%"class.std::__cxx11::basic_string"* nonnull %dir_prefix, i64* nonnull dereferenceable(8) %__dnew.i.i.i.i, i64 0) #7
+  %_M_p.i13.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dir_prefix, i64 0, i32 0, i32 0
+  store i8* %call5.i.i.i.i, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !107
+  %5 = load i64, i64* %__dnew.i.i.i.i, align 8, !tbaa !63
+  %_M_allocated_capacity.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dir_prefix, i64 0, i32 2, i32 0
+  store i64 %5, i64* %_M_allocated_capacity.i.i.i.i.i, align 8, !tbaa !63
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %call5.i.i.i.i, i8* nonnull getelementptr inbounds ([72 x i8], [72 x i8]* @.str.23, i64 0, i64 0), i64 71, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dir_prefix, i64 0, i32 1
+  store i64 %5, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !104
+  %arrayidx.i.i.i.i.i = getelementptr inbounds i8, i8* %call5.i.i.i.i, i64 %5
+  store i8 0, i8* %arrayidx.i.i.i.i.i, align 1, !tbaa !87
+  call void @llvm.lifetime.end(i64 8, i8* nonnull %4) #7
+  %6 = bitcast %"class.std::__cxx11::basic_string"* %input_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %6) #7
+  %7 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp1 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %7) #7
+  %8 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp1, i64 0, i32 2
+  %9 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp1 to %union.anon**
+  store %union.anon* %8, %union.anon** %9, align 8, !tbaa !103
+  %10 = bitcast %union.anon* %8 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %10, i8* nonnull getelementptr inbounds ([10 x i8], [10 x i8]* @.str.24, i64 0, i64 0), i64 9, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i279 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp1, i64 0, i32 1
+  store i64 9, i64* %_M_string_length.i.i.i.i.i.i279, align 8, !tbaa !104
+  %11 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp1, i64 0, i32 2, i32 1, i64 1
+  store i8 0, i8* %11, align 1, !tbaa !87
+  %12 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !104, !noalias !113
+  %13 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !107, !noalias !113
+  %call3.i.i.i = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp1, i64 0, i64 0, i8* %13, i64 %12) #7, !noalias !113
+  %14 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %input_path, i64 0, i32 2
+  %15 = bitcast %"class.std::__cxx11::basic_string"* %input_path to %union.anon**
+  store %union.anon* %14, %union.anon** %15, align 8, !tbaa !103, !alias.scope !113
+  %_M_p.i.i23.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i, i64 0, i32 0, i32 0
+  %16 = load i8*, i8** %_M_p.i.i23.i.i, align 8, !tbaa !107
+  %17 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i, i64 0, i32 2
+  %arraydecay.i.i.i.i282 = bitcast %union.anon* %17 to i8*
+  %cmp.i.i.i283 = icmp eq i8* %16, %arraydecay.i.i.i.i282
+  br i1 %cmp.i.i.i283, label %if.then.i.i284, label %if.else.i.i
+
+if.then.i.i284:                                   ; preds = %entry
+  %arraydecay.i.i.i = bitcast %union.anon* %14 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i, i8* %16, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit
+
+if.else.i.i:                                      ; preds = %entry
+  %_M_p.i21.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %input_path, i64 0, i32 0, i32 0
+  store i8* %16, i8** %_M_p.i21.i.i, align 8, !tbaa !107, !alias.scope !113
+  %_M_allocated_capacity.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i, i64 0, i32 2, i32 0
+  %18 = load i64, i64* %_M_allocated_capacity.i.i, align 8, !tbaa !63
+  %_M_allocated_capacity.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %input_path, i64 0, i32 2, i32 0
+  store i64 %18, i64* %_M_allocated_capacity.i.i.i, align 8, !tbaa !63, !alias.scope !113
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit: ; preds = %if.else.i.i, %if.then.i.i284
+  %_M_string_length.i20.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i, i64 0, i32 1
+  %19 = load i64, i64* %_M_string_length.i20.i.i, align 8, !tbaa !104
+  %_M_string_length.i.i2.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %input_path, i64 0, i32 1
+  store i64 %19, i64* %_M_string_length.i.i2.i, align 8, !tbaa !104, !alias.scope !113
+  %20 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i to %union.anon**
+  store %union.anon* %17, %union.anon** %20, align 8, !tbaa !107
+  store i64 0, i64* %_M_string_length.i20.i.i, align 8, !tbaa !104
+  store i8 0, i8* %arraydecay.i.i.i.i282, align 1, !tbaa !87
+  %_M_p.i.i.i.i285 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp1, i64 0, i32 0, i32 0
+  %21 = load i8*, i8** %_M_p.i.i.i.i285, align 8, !tbaa !107
+  %cmp.i.i.i287 = icmp eq i8* %21, %10
+  br i1 %cmp.i.i.i287, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit289, label %if.then.i.i288
+
+if.then.i.i288:                                   ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit
+  call void @_ZdlPv(i8* %21) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit289
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit289: ; preds = %if.then.i.i288, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %7) #7
+  %22 = bitcast %"class.std::__cxx11::basic_string"* %labels_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %22) #7
+  %23 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp3 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %23) #7
+  %24 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp3, i64 0, i32 2
+  %25 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp3 to %union.anon**
+  store %union.anon* %24, %union.anon** %25, align 8, !tbaa !103
+  %26 = bitcast %union.anon* %24 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %26, i8* nonnull getelementptr inbounds ([11 x i8], [11 x i8]* @.str.25, i64 0, i64 0), i64 10, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i308 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp3, i64 0, i32 1
+  store i64 10, i64* %_M_string_length.i.i.i.i.i.i308, align 8, !tbaa !104
+  %27 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp3, i64 0, i32 2, i32 1, i64 2
+  store i8 0, i8* %27, align 2, !tbaa !87
+  %28 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !104, !noalias !116
+  %29 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !107, !noalias !116
+  %call3.i.i.i313 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp3, i64 0, i64 0, i8* %29, i64 %28) #7, !noalias !116
+  %30 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %labels_path, i64 0, i32 2
+  %31 = bitcast %"class.std::__cxx11::basic_string"* %labels_path to %union.anon**
+  store %union.anon* %30, %union.anon** %31, align 8, !tbaa !103, !alias.scope !116
+  %_M_p.i.i23.i.i314 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i313, i64 0, i32 0, i32 0
+  %32 = load i8*, i8** %_M_p.i.i23.i.i314, align 8, !tbaa !107
+  %33 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i313, i64 0, i32 2
+  %arraydecay.i.i.i.i315 = bitcast %union.anon* %33 to i8*
+  %cmp.i.i.i316 = icmp eq i8* %32, %arraydecay.i.i.i.i315
+  br i1 %cmp.i.i.i316, label %if.then.i.i318, label %if.else.i.i322
+
+if.then.i.i318:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit289
+  %arraydecay.i.i.i317 = bitcast %union.anon* %30 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i317, i8* %32, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit325
+
+if.else.i.i322:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit289
+  %_M_p.i21.i.i319 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %labels_path, i64 0, i32 0, i32 0
+  store i8* %32, i8** %_M_p.i21.i.i319, align 8, !tbaa !107, !alias.scope !116
+  %_M_allocated_capacity.i.i320 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i313, i64 0, i32 2, i32 0
+  %34 = load i64, i64* %_M_allocated_capacity.i.i320, align 8, !tbaa !63
+  %_M_allocated_capacity.i.i.i321 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %labels_path, i64 0, i32 2, i32 0
+  store i64 %34, i64* %_M_allocated_capacity.i.i.i321, align 8, !tbaa !63, !alias.scope !116
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit325
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit325: ; preds = %if.else.i.i322, %if.then.i.i318
+  %_M_string_length.i20.i.i323 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i313, i64 0, i32 1
+  %35 = load i64, i64* %_M_string_length.i20.i.i323, align 8, !tbaa !104
+  %_M_string_length.i.i2.i324 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %labels_path, i64 0, i32 1
+  store i64 %35, i64* %_M_string_length.i.i2.i324, align 8, !tbaa !104, !alias.scope !116
+  %36 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i313 to %union.anon**
+  store %union.anon* %33, %union.anon** %36, align 8, !tbaa !107
+  store i64 0, i64* %_M_string_length.i20.i.i323, align 8, !tbaa !104
+  store i8 0, i8* %arraydecay.i.i.i.i315, align 1, !tbaa !87
+  %_M_p.i.i.i.i326 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp3, i64 0, i32 0, i32 0
+  %37 = load i8*, i8** %_M_p.i.i.i.i326, align 8, !tbaa !107
+  %cmp.i.i.i328 = icmp eq i8* %37, %26
+  br i1 %cmp.i.i.i328, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit330, label %if.then.i.i329
+
+if.then.i.i329:                                   ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit325
+  call void @_ZdlPv(i8* %37) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit330
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit330: ; preds = %if.then.i.i329, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit325
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %23) #7
+  %38 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_1_w_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %38) #7
+  %39 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp5 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %39) #7
+  %40 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp5, i64 0, i32 2
+  %41 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp5 to %union.anon**
+  store %union.anon* %40, %union.anon** %41, align 8, !tbaa !103
+  %42 = bitcast %union.anon* %40 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %42, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.26, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i349 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp5, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i349, align 8, !tbaa !104
+  %43 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp5, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %43, align 2, !tbaa !87
+  %44 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !104, !noalias !119
+  %45 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !107, !noalias !119
+  %call3.i.i.i354 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp5, i64 0, i64 0, i8* %45, i64 %44) #7, !noalias !119
+  %46 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_1_w_path, i64 0, i32 2
+  %47 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_1_w_path to %union.anon**
+  store %union.anon* %46, %union.anon** %47, align 8, !tbaa !103, !alias.scope !119
+  %_M_p.i.i23.i.i355 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i354, i64 0, i32 0, i32 0
+  %48 = load i8*, i8** %_M_p.i.i23.i.i355, align 8, !tbaa !107
+  %49 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i354, i64 0, i32 2
+  %arraydecay.i.i.i.i356 = bitcast %union.anon* %49 to i8*
+  %cmp.i.i.i357 = icmp eq i8* %48, %arraydecay.i.i.i.i356
+  br i1 %cmp.i.i.i357, label %if.then.i.i359, label %if.else.i.i363
+
+if.then.i.i359:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit330
+  %arraydecay.i.i.i358 = bitcast %union.anon* %46 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i358, i8* %48, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit366
+
+if.else.i.i363:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit330
+  %_M_p.i21.i.i360 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_1_w_path, i64 0, i32 0, i32 0
+  store i8* %48, i8** %_M_p.i21.i.i360, align 8, !tbaa !107, !alias.scope !119
+  %_M_allocated_capacity.i.i361 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i354, i64 0, i32 2, i32 0
+  %50 = load i64, i64* %_M_allocated_capacity.i.i361, align 8, !tbaa !63
+  %_M_allocated_capacity.i.i.i362 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_1_w_path, i64 0, i32 2, i32 0
+  store i64 %50, i64* %_M_allocated_capacity.i.i.i362, align 8, !tbaa !63, !alias.scope !119
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit366
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit366: ; preds = %if.else.i.i363, %if.then.i.i359
+  %_M_string_length.i20.i.i364 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i354, i64 0, i32 1
+  %51 = load i64, i64* %_M_string_length.i20.i.i364, align 8, !tbaa !104
+  %_M_string_length.i.i2.i365 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_1_w_path, i64 0, i32 1
+  store i64 %51, i64* %_M_string_length.i.i2.i365, align 8, !tbaa !104, !alias.scope !119
+  %52 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i354 to %union.anon**
+  store %union.anon* %49, %union.anon** %52, align 8, !tbaa !107
+  store i64 0, i64* %_M_string_length.i20.i.i364, align 8, !tbaa !104
+  store i8 0, i8* %arraydecay.i.i.i.i356, align 1, !tbaa !87
+  %_M_p.i.i.i.i367 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp5, i64 0, i32 0, i32 0
+  %53 = load i8*, i8** %_M_p.i.i.i.i367, align 8, !tbaa !107
+  %cmp.i.i.i369 = icmp eq i8* %53, %42
+  br i1 %cmp.i.i.i369, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit371, label %if.then.i.i370
+
+if.then.i.i370:                                   ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit366
+  call void @_ZdlPv(i8* %53) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit371
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit371: ; preds = %if.then.i.i370, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit366
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %39) #7
+  %_M_p.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_1_w_path, i64 0, i32 0, i32 0
+  %54 = load i8*, i8** %_M_p.i.i, align 8, !tbaa !107
+  %call7 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %54, i32 0, i32 64, i32 3, i32 3, i32 3)
+  %55 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_1_b_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %55) #7
+  %56 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp8 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %56) #7
+  %57 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp8, i64 0, i32 2
+  %58 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp8 to %union.anon**
+  store %union.anon* %57, %union.anon** %58, align 8, !tbaa !103
+  %59 = bitcast %union.anon* %57 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %59, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.27, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i395 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp8, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i395, align 8, !tbaa !104
+  %60 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp8, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %60, align 2, !tbaa !87
+  %61 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !104, !noalias !122
+  %62 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !107, !noalias !122
+  %call3.i.i.i400 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp8, i64 0, i64 0, i8* %62, i64 %61) #7, !noalias !122
+  %63 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_1_b_path, i64 0, i32 2
+  %64 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_1_b_path to %union.anon**
+  store %union.anon* %63, %union.anon** %64, align 8, !tbaa !103, !alias.scope !122
+  %_M_p.i.i23.i.i401 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i400, i64 0, i32 0, i32 0
+  %65 = load i8*, i8** %_M_p.i.i23.i.i401, align 8, !tbaa !107
+  %66 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i400, i64 0, i32 2
+  %arraydecay.i.i.i.i402 = bitcast %union.anon* %66 to i8*
+  %cmp.i.i.i403 = icmp eq i8* %65, %arraydecay.i.i.i.i402
+  br i1 %cmp.i.i.i403, label %if.then.i.i405, label %if.else.i.i409
+
+if.then.i.i405:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit371
+  %arraydecay.i.i.i404 = bitcast %union.anon* %63 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i404, i8* %65, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit412
+
+if.else.i.i409:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit371
+  %_M_p.i21.i.i406 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_1_b_path, i64 0, i32 0, i32 0
+  store i8* %65, i8** %_M_p.i21.i.i406, align 8, !tbaa !107, !alias.scope !122
+  %_M_allocated_capacity.i.i407 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i400, i64 0, i32 2, i32 0
+  %67 = load i64, i64* %_M_allocated_capacity.i.i407, align 8, !tbaa !63
+  %_M_allocated_capacity.i.i.i408 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_1_b_path, i64 0, i32 2, i32 0
+  store i64 %67, i64* %_M_allocated_capacity.i.i.i408, align 8, !tbaa !63, !alias.scope !122
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit412
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit412: ; preds = %if.else.i.i409, %if.then.i.i405
+  %_M_string_length.i20.i.i410 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i400, i64 0, i32 1
+  %68 = load i64, i64* %_M_string_length.i20.i.i410, align 8, !tbaa !104
+  %_M_string_length.i.i2.i411 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_1_b_path, i64 0, i32 1
+  store i64 %68, i64* %_M_string_length.i.i2.i411, align 8, !tbaa !104, !alias.scope !122
+  %69 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i400 to %union.anon**
+  store %union.anon* %66, %union.anon** %69, align 8, !tbaa !107
+  store i64 0, i64* %_M_string_length.i20.i.i410, align 8, !tbaa !104
+  store i8 0, i8* %arraydecay.i.i.i.i402, align 1, !tbaa !87
+  %_M_p.i.i.i.i413 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp8, i64 0, i32 0, i32 0
+  %70 = load i8*, i8** %_M_p.i.i.i.i413, align 8, !tbaa !107
+  %cmp.i.i.i415 = icmp eq i8* %70, %59
+  br i1 %cmp.i.i.i415, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit417, label %if.then.i.i416
+
+if.then.i.i416:                                   ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit412
+  call void @_ZdlPv(i8* %70) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit417
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit417: ; preds = %if.then.i.i416, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit412
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %56) #7
+  %_M_p.i.i418 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_1_b_path, i64 0, i32 0, i32 0
+  %71 = load i8*, i8** %_M_p.i.i418, align 8, !tbaa !107
+  %call11 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %71, i32 0, i32 1, i32 64, i32 1, i32 1)
+  %72 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_2_w_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %72) #7
+  %73 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp12 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %73) #7
+  %74 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp12, i64 0, i32 2
+  %75 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp12 to %union.anon**
+  store %union.anon* %74, %union.anon** %75, align 8, !tbaa !103
+  %76 = bitcast %union.anon* %74 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %76, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.28, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i442 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp12, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i442, align 8, !tbaa !104
+  %77 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp12, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %77, align 2, !tbaa !87
+  %78 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !104, !noalias !125
+  %79 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !107, !noalias !125
+  %call3.i.i.i447 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp12, i64 0, i64 0, i8* %79, i64 %78) #7, !noalias !125
+  %80 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_2_w_path, i64 0, i32 2
+  %81 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_2_w_path to %union.anon**
+  store %union.anon* %80, %union.anon** %81, align 8, !tbaa !103, !alias.scope !125
+  %_M_p.i.i23.i.i448 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i447, i64 0, i32 0, i32 0
+  %82 = load i8*, i8** %_M_p.i.i23.i.i448, align 8, !tbaa !107
+  %83 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i447, i64 0, i32 2
+  %arraydecay.i.i.i.i449 = bitcast %union.anon* %83 to i8*
+  %cmp.i.i.i450 = icmp eq i8* %82, %arraydecay.i.i.i.i449
+  br i1 %cmp.i.i.i450, label %if.then.i.i452, label %if.else.i.i456
+
+if.then.i.i452:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit417
+  %arraydecay.i.i.i451 = bitcast %union.anon* %80 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i451, i8* %82, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit459
+
+if.else.i.i456:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit417
+  %_M_p.i21.i.i453 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_2_w_path, i64 0, i32 0, i32 0
+  store i8* %82, i8** %_M_p.i21.i.i453, align 8, !tbaa !107, !alias.scope !125
+  %_M_allocated_capacity.i.i454 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i447, i64 0, i32 2, i32 0
+  %84 = load i64, i64* %_M_allocated_capacity.i.i454, align 8, !tbaa !63
+  %_M_allocated_capacity.i.i.i455 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_2_w_path, i64 0, i32 2, i32 0
+  store i64 %84, i64* %_M_allocated_capacity.i.i.i455, align 8, !tbaa !63, !alias.scope !125
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit459
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit459: ; preds = %if.else.i.i456, %if.then.i.i452
+  %_M_string_length.i20.i.i457 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i447, i64 0, i32 1
+  %85 = load i64, i64* %_M_string_length.i20.i.i457, align 8, !tbaa !104
+  %_M_string_length.i.i2.i458 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_2_w_path, i64 0, i32 1
+  store i64 %85, i64* %_M_string_length.i.i2.i458, align 8, !tbaa !104, !alias.scope !125
+  %86 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i447 to %union.anon**
+  store %union.anon* %83, %union.anon** %86, align 8, !tbaa !107
+  store i64 0, i64* %_M_string_length.i20.i.i457, align 8, !tbaa !104
+  store i8 0, i8* %arraydecay.i.i.i.i449, align 1, !tbaa !87
+  %_M_p.i.i.i.i460 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp12, i64 0, i32 0, i32 0
+  %87 = load i8*, i8** %_M_p.i.i.i.i460, align 8, !tbaa !107
+  %cmp.i.i.i462 = icmp eq i8* %87, %76
+  br i1 %cmp.i.i.i462, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit464, label %if.then.i.i463
+
+if.then.i.i463:                                   ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit459
+  call void @_ZdlPv(i8* %87) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit464
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit464: ; preds = %if.then.i.i463, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit459
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %73) #7
+  %_M_p.i.i465 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_2_w_path, i64 0, i32 0, i32 0
+  %88 = load i8*, i8** %_M_p.i.i465, align 8, !tbaa !107
+  %call15 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %88, i32 0, i32 64, i32 64, i32 3, i32 3)
+  %89 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_2_b_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %89) #7
+  %90 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp16 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %90) #7
+  %91 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp16, i64 0, i32 2
+  %92 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp16 to %union.anon**
+  store %union.anon* %91, %union.anon** %92, align 8, !tbaa !103
+  %93 = bitcast %union.anon* %91 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %93, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.29, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i489 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp16, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i489, align 8, !tbaa !104
+  %94 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp16, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %94, align 2, !tbaa !87
+  %95 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !104, !noalias !128
+  %96 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !107, !noalias !128
+  %call3.i.i.i494 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp16, i64 0, i64 0, i8* %96, i64 %95) #7, !noalias !128
+  %97 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_2_b_path, i64 0, i32 2
+  %98 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_2_b_path to %union.anon**
+  store %union.anon* %97, %union.anon** %98, align 8, !tbaa !103, !alias.scope !128
+  %_M_p.i.i23.i.i495 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i494, i64 0, i32 0, i32 0
+  %99 = load i8*, i8** %_M_p.i.i23.i.i495, align 8, !tbaa !107
+  %100 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i494, i64 0, i32 2
+  %arraydecay.i.i.i.i496 = bitcast %union.anon* %100 to i8*
+  %cmp.i.i.i497 = icmp eq i8* %99, %arraydecay.i.i.i.i496
+  br i1 %cmp.i.i.i497, label %if.then.i.i499, label %if.else.i.i503
+
+if.then.i.i499:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit464
+  %arraydecay.i.i.i498 = bitcast %union.anon* %97 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i498, i8* %99, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit506
+
+if.else.i.i503:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit464
+  %_M_p.i21.i.i500 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_2_b_path, i64 0, i32 0, i32 0
+  store i8* %99, i8** %_M_p.i21.i.i500, align 8, !tbaa !107, !alias.scope !128
+  %_M_allocated_capacity.i.i501 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i494, i64 0, i32 2, i32 0
+  %101 = load i64, i64* %_M_allocated_capacity.i.i501, align 8, !tbaa !63
+  %_M_allocated_capacity.i.i.i502 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_2_b_path, i64 0, i32 2, i32 0
+  store i64 %101, i64* %_M_allocated_capacity.i.i.i502, align 8, !tbaa !63, !alias.scope !128
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit506
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit506: ; preds = %if.else.i.i503, %if.then.i.i499
+  %_M_string_length.i20.i.i504 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i494, i64 0, i32 1
+  %102 = load i64, i64* %_M_string_length.i20.i.i504, align 8, !tbaa !104
+  %_M_string_length.i.i2.i505 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_2_b_path, i64 0, i32 1
+  store i64 %102, i64* %_M_string_length.i.i2.i505, align 8, !tbaa !104, !alias.scope !128
+  %103 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i494 to %union.anon**
+  store %union.anon* %100, %union.anon** %103, align 8, !tbaa !107
+  store i64 0, i64* %_M_string_length.i20.i.i504, align 8, !tbaa !104
+  store i8 0, i8* %arraydecay.i.i.i.i496, align 1, !tbaa !87
+  %_M_p.i.i.i.i507 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp16, i64 0, i32 0, i32 0
+  %104 = load i8*, i8** %_M_p.i.i.i.i507, align 8, !tbaa !107
+  %cmp.i.i.i509 = icmp eq i8* %104, %93
+  br i1 %cmp.i.i.i509, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit511, label %if.then.i.i510
+
+if.then.i.i510:                                   ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit506
+  call void @_ZdlPv(i8* %104) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit511
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit511: ; preds = %if.then.i.i510, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit506
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %90) #7
+  %_M_p.i.i512 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_2_b_path, i64 0, i32 0, i32 0
+  %105 = load i8*, i8** %_M_p.i.i512, align 8, !tbaa !107
+  %call19 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %105, i32 0, i32 1, i32 64, i32 1, i32 1)
+  %106 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_3_w_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %106) #7
+  %107 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp20 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %107) #7
+  %108 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp20, i64 0, i32 2
+  %109 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp20 to %union.anon**
+  store %union.anon* %108, %union.anon** %109, align 8, !tbaa !103
+  %110 = bitcast %union.anon* %108 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %110, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.30, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i536 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp20, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i536, align 8, !tbaa !104
+  %111 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp20, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %111, align 2, !tbaa !87
+  %112 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !104, !noalias !131
+  %113 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !107, !noalias !131
+  %call3.i.i.i541 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp20, i64 0, i64 0, i8* %113, i64 %112) #7, !noalias !131
+  %114 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_3_w_path, i64 0, i32 2
+  %115 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_3_w_path to %union.anon**
+  store %union.anon* %114, %union.anon** %115, align 8, !tbaa !103, !alias.scope !131
+  %_M_p.i.i23.i.i542 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i541, i64 0, i32 0, i32 0
+  %116 = load i8*, i8** %_M_p.i.i23.i.i542, align 8, !tbaa !107
+  %117 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i541, i64 0, i32 2
+  %arraydecay.i.i.i.i543 = bitcast %union.anon* %117 to i8*
+  %cmp.i.i.i544 = icmp eq i8* %116, %arraydecay.i.i.i.i543
+  br i1 %cmp.i.i.i544, label %if.then.i.i546, label %if.else.i.i550
+
+if.then.i.i546:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit511
+  %arraydecay.i.i.i545 = bitcast %union.anon* %114 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i545, i8* %116, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit553
+
+if.else.i.i550:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit511
+  %_M_p.i21.i.i547 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_3_w_path, i64 0, i32 0, i32 0
+  store i8* %116, i8** %_M_p.i21.i.i547, align 8, !tbaa !107, !alias.scope !131
+  %_M_allocated_capacity.i.i548 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i541, i64 0, i32 2, i32 0
+  %118 = load i64, i64* %_M_allocated_capacity.i.i548, align 8, !tbaa !63
+  %_M_allocated_capacity.i.i.i549 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_3_w_path, i64 0, i32 2, i32 0
+  store i64 %118, i64* %_M_allocated_capacity.i.i.i549, align 8, !tbaa !63, !alias.scope !131
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit553
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit553: ; preds = %if.else.i.i550, %if.then.i.i546
+  %_M_string_length.i20.i.i551 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i541, i64 0, i32 1
+  %119 = load i64, i64* %_M_string_length.i20.i.i551, align 8, !tbaa !104
+  %_M_string_length.i.i2.i552 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_3_w_path, i64 0, i32 1
+  store i64 %119, i64* %_M_string_length.i.i2.i552, align 8, !tbaa !104, !alias.scope !131
+  %120 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i541 to %union.anon**
+  store %union.anon* %117, %union.anon** %120, align 8, !tbaa !107
+  store i64 0, i64* %_M_string_length.i20.i.i551, align 8, !tbaa !104
+  store i8 0, i8* %arraydecay.i.i.i.i543, align 1, !tbaa !87
+  %_M_p.i.i.i.i554 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp20, i64 0, i32 0, i32 0
+  %121 = load i8*, i8** %_M_p.i.i.i.i554, align 8, !tbaa !107
+  %cmp.i.i.i556 = icmp eq i8* %121, %110
+  br i1 %cmp.i.i.i556, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit558, label %if.then.i.i557
+
+if.then.i.i557:                                   ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit553
+  call void @_ZdlPv(i8* %121) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit558
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit558: ; preds = %if.then.i.i557, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit553
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %107) #7
+  %_M_p.i.i559 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_3_w_path, i64 0, i32 0, i32 0
+  %122 = load i8*, i8** %_M_p.i.i559, align 8, !tbaa !107
+  %call23 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %122, i32 0, i32 128, i32 64, i32 3, i32 3)
+  %123 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_3_b_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %123) #7
+  %124 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp24 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %124) #7
+  %125 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp24, i64 0, i32 2
+  %126 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp24 to %union.anon**
+  store %union.anon* %125, %union.anon** %126, align 8, !tbaa !103
+  %127 = bitcast %union.anon* %125 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %127, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.31, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i583 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp24, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i583, align 8, !tbaa !104
+  %128 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp24, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %128, align 2, !tbaa !87
+  %129 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !104, !noalias !134
+  %130 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !107, !noalias !134
+  %call3.i.i.i588 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp24, i64 0, i64 0, i8* %130, i64 %129) #7, !noalias !134
+  %131 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_3_b_path, i64 0, i32 2
+  %132 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_3_b_path to %union.anon**
+  store %union.anon* %131, %union.anon** %132, align 8, !tbaa !103, !alias.scope !134
+  %_M_p.i.i23.i.i589 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i588, i64 0, i32 0, i32 0
+  %133 = load i8*, i8** %_M_p.i.i23.i.i589, align 8, !tbaa !107
+  %134 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i588, i64 0, i32 2
+  %arraydecay.i.i.i.i590 = bitcast %union.anon* %134 to i8*
+  %cmp.i.i.i591 = icmp eq i8* %133, %arraydecay.i.i.i.i590
+  br i1 %cmp.i.i.i591, label %if.then.i.i593, label %if.else.i.i597
+
+if.then.i.i593:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit558
+  %arraydecay.i.i.i592 = bitcast %union.anon* %131 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i592, i8* %133, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit600
+
+if.else.i.i597:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit558
+  %_M_p.i21.i.i594 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_3_b_path, i64 0, i32 0, i32 0
+  store i8* %133, i8** %_M_p.i21.i.i594, align 8, !tbaa !107, !alias.scope !134
+  %_M_allocated_capacity.i.i595 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i588, i64 0, i32 2, i32 0
+  %135 = load i64, i64* %_M_allocated_capacity.i.i595, align 8, !tbaa !63
+  %_M_allocated_capacity.i.i.i596 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_3_b_path, i64 0, i32 2, i32 0
+  store i64 %135, i64* %_M_allocated_capacity.i.i.i596, align 8, !tbaa !63, !alias.scope !134
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit600
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit600: ; preds = %if.else.i.i597, %if.then.i.i593
+  %_M_string_length.i20.i.i598 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i588, i64 0, i32 1
+  %136 = load i64, i64* %_M_string_length.i20.i.i598, align 8, !tbaa !104
+  %_M_string_length.i.i2.i599 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_3_b_path, i64 0, i32 1
+  store i64 %136, i64* %_M_string_length.i.i2.i599, align 8, !tbaa !104, !alias.scope !134
+  %137 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i588 to %union.anon**
+  store %union.anon* %134, %union.anon** %137, align 8, !tbaa !107
+  store i64 0, i64* %_M_string_length.i20.i.i598, align 8, !tbaa !104
+  store i8 0, i8* %arraydecay.i.i.i.i590, align 1, !tbaa !87
+  %_M_p.i.i.i.i601 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp24, i64 0, i32 0, i32 0
+  %138 = load i8*, i8** %_M_p.i.i.i.i601, align 8, !tbaa !107
+  %cmp.i.i.i603 = icmp eq i8* %138, %127
+  br i1 %cmp.i.i.i603, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit605, label %if.then.i.i604
+
+if.then.i.i604:                                   ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit600
+  call void @_ZdlPv(i8* %138) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit605
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit605: ; preds = %if.then.i.i604, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit600
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %124) #7
+  %_M_p.i.i606 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_3_b_path, i64 0, i32 0, i32 0
+  %139 = load i8*, i8** %_M_p.i.i606, align 8, !tbaa !107
+  %call27 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %139, i32 0, i32 1, i32 128, i32 1, i32 1)
+  %140 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_4_w_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %140) #7
+  %141 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp28 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %141) #7
+  %142 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp28, i64 0, i32 2
+  %143 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp28 to %union.anon**
+  store %union.anon* %142, %union.anon** %143, align 8, !tbaa !103
+  %144 = bitcast %union.anon* %142 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %144, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.32, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i630 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp28, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i630, align 8, !tbaa !104
+  %145 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp28, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %145, align 2, !tbaa !87
+  %146 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !104, !noalias !137
+  %147 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !107, !noalias !137
+  %call3.i.i.i635 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp28, i64 0, i64 0, i8* %147, i64 %146) #7, !noalias !137
+  %148 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_4_w_path, i64 0, i32 2
+  %149 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_4_w_path to %union.anon**
+  store %union.anon* %148, %union.anon** %149, align 8, !tbaa !103, !alias.scope !137
+  %_M_p.i.i23.i.i636 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i635, i64 0, i32 0, i32 0
+  %150 = load i8*, i8** %_M_p.i.i23.i.i636, align 8, !tbaa !107
+  %151 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i635, i64 0, i32 2
+  %arraydecay.i.i.i.i637 = bitcast %union.anon* %151 to i8*
+  %cmp.i.i.i638 = icmp eq i8* %150, %arraydecay.i.i.i.i637
+  br i1 %cmp.i.i.i638, label %if.then.i.i640, label %if.else.i.i644
+
+if.then.i.i640:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit605
+  %arraydecay.i.i.i639 = bitcast %union.anon* %148 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i639, i8* %150, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit647
+
+if.else.i.i644:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit605
+  %_M_p.i21.i.i641 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_4_w_path, i64 0, i32 0, i32 0
+  store i8* %150, i8** %_M_p.i21.i.i641, align 8, !tbaa !107, !alias.scope !137
+  %_M_allocated_capacity.i.i642 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i635, i64 0, i32 2, i32 0
+  %152 = load i64, i64* %_M_allocated_capacity.i.i642, align 8, !tbaa !63
+  %_M_allocated_capacity.i.i.i643 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_4_w_path, i64 0, i32 2, i32 0
+  store i64 %152, i64* %_M_allocated_capacity.i.i.i643, align 8, !tbaa !63, !alias.scope !137
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit647
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit647: ; preds = %if.else.i.i644, %if.then.i.i640
+  %_M_string_length.i20.i.i645 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i635, i64 0, i32 1
+  %153 = load i64, i64* %_M_string_length.i20.i.i645, align 8, !tbaa !104
+  %_M_string_length.i.i2.i646 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_4_w_path, i64 0, i32 1
+  store i64 %153, i64* %_M_string_length.i.i2.i646, align 8, !tbaa !104, !alias.scope !137
+  %154 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i635 to %union.anon**
+  store %union.anon* %151, %union.anon** %154, align 8, !tbaa !107
+  store i64 0, i64* %_M_string_length.i20.i.i645, align 8, !tbaa !104
+  store i8 0, i8* %arraydecay.i.i.i.i637, align 1, !tbaa !87
+  %_M_p.i.i.i.i648 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp28, i64 0, i32 0, i32 0
+  %155 = load i8*, i8** %_M_p.i.i.i.i648, align 8, !tbaa !107
+  %cmp.i.i.i650 = icmp eq i8* %155, %144
+  br i1 %cmp.i.i.i650, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit652, label %if.then.i.i651
+
+if.then.i.i651:                                   ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit647
+  call void @_ZdlPv(i8* %155) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit652
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit652: ; preds = %if.then.i.i651, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit647
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %141) #7
+  %_M_p.i.i653 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_4_w_path, i64 0, i32 0, i32 0
+  %156 = load i8*, i8** %_M_p.i.i653, align 8, !tbaa !107
+  %call31 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %156, i32 0, i32 128, i32 128, i32 3, i32 3)
+  %157 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_4_b_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %157) #7
+  %158 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp32 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %158) #7
+  %159 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp32, i64 0, i32 2
+  %160 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp32 to %union.anon**
+  store %union.anon* %159, %union.anon** %160, align 8, !tbaa !103
+  %161 = bitcast %union.anon* %159 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %161, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.33, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i677 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp32, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i677, align 8, !tbaa !104
+  %162 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp32, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %162, align 2, !tbaa !87
+  %163 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !104, !noalias !140
+  %164 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !107, !noalias !140
+  %call3.i.i.i682 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp32, i64 0, i64 0, i8* %164, i64 %163) #7, !noalias !140
+  %165 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_4_b_path, i64 0, i32 2
+  %166 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_4_b_path to %union.anon**
+  store %union.anon* %165, %union.anon** %166, align 8, !tbaa !103, !alias.scope !140
+  %_M_p.i.i23.i.i683 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i682, i64 0, i32 0, i32 0
+  %167 = load i8*, i8** %_M_p.i.i23.i.i683, align 8, !tbaa !107
+  %168 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i682, i64 0, i32 2
+  %arraydecay.i.i.i.i684 = bitcast %union.anon* %168 to i8*
+  %cmp.i.i.i685 = icmp eq i8* %167, %arraydecay.i.i.i.i684
+  br i1 %cmp.i.i.i685, label %if.then.i.i687, label %if.else.i.i691
+
+if.then.i.i687:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit652
+  %arraydecay.i.i.i686 = bitcast %union.anon* %165 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i686, i8* %167, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit694
+
+if.else.i.i691:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit652
+  %_M_p.i21.i.i688 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_4_b_path, i64 0, i32 0, i32 0
+  store i8* %167, i8** %_M_p.i21.i.i688, align 8, !tbaa !107, !alias.scope !140
+  %_M_allocated_capacity.i.i689 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i682, i64 0, i32 2, i32 0
+  %169 = load i64, i64* %_M_allocated_capacity.i.i689, align 8, !tbaa !63
+  %_M_allocated_capacity.i.i.i690 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_4_b_path, i64 0, i32 2, i32 0
+  store i64 %169, i64* %_M_allocated_capacity.i.i.i690, align 8, !tbaa !63, !alias.scope !140
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit694
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit694: ; preds = %if.else.i.i691, %if.then.i.i687
+  %_M_string_length.i20.i.i692 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i682, i64 0, i32 1
+  %170 = load i64, i64* %_M_string_length.i20.i.i692, align 8, !tbaa !104
+  %_M_string_length.i.i2.i693 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_4_b_path, i64 0, i32 1
+  store i64 %170, i64* %_M_string_length.i.i2.i693, align 8, !tbaa !104, !alias.scope !140
+  %171 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i682 to %union.anon**
+  store %union.anon* %168, %union.anon** %171, align 8, !tbaa !107
+  store i64 0, i64* %_M_string_length.i20.i.i692, align 8, !tbaa !104
+  store i8 0, i8* %arraydecay.i.i.i.i684, align 1, !tbaa !87
+  %_M_p.i.i.i.i695 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp32, i64 0, i32 0, i32 0
+  %172 = load i8*, i8** %_M_p.i.i.i.i695, align 8, !tbaa !107
+  %cmp.i.i.i697 = icmp eq i8* %172, %161
+  br i1 %cmp.i.i.i697, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit699, label %if.then.i.i698
+
+if.then.i.i698:                                   ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit694
+  call void @_ZdlPv(i8* %172) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit699
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit699: ; preds = %if.then.i.i698, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit694
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %158) #7
+  %_M_p.i.i700 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_4_b_path, i64 0, i32 0, i32 0
+  %173 = load i8*, i8** %_M_p.i.i700, align 8, !tbaa !107
+  %call35 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %173, i32 0, i32 1, i32 128, i32 1, i32 1)
+  %174 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_5_w_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %174) #7
+  %175 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp36 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %175) #7
+  %176 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp36, i64 0, i32 2
+  %177 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp36 to %union.anon**
+  store %union.anon* %176, %union.anon** %177, align 8, !tbaa !103
+  %178 = bitcast %union.anon* %176 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %178, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.34, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i724 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp36, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i724, align 8, !tbaa !104
+  %179 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp36, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %179, align 2, !tbaa !87
+  %180 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !104, !noalias !143
+  %181 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !107, !noalias !143
+  %call3.i.i.i729 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp36, i64 0, i64 0, i8* %181, i64 %180) #7, !noalias !143
+  %182 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_5_w_path, i64 0, i32 2
+  %183 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_5_w_path to %union.anon**
+  store %union.anon* %182, %union.anon** %183, align 8, !tbaa !103, !alias.scope !143
+  %_M_p.i.i23.i.i730 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i729, i64 0, i32 0, i32 0
+  %184 = load i8*, i8** %_M_p.i.i23.i.i730, align 8, !tbaa !107
+  %185 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i729, i64 0, i32 2
+  %arraydecay.i.i.i.i731 = bitcast %union.anon* %185 to i8*
+  %cmp.i.i.i732 = icmp eq i8* %184, %arraydecay.i.i.i.i731
+  br i1 %cmp.i.i.i732, label %if.then.i.i734, label %if.else.i.i738
+
+if.then.i.i734:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit699
+  %arraydecay.i.i.i733 = bitcast %union.anon* %182 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i733, i8* %184, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit741
+
+if.else.i.i738:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit699
+  %_M_p.i21.i.i735 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_5_w_path, i64 0, i32 0, i32 0
+  store i8* %184, i8** %_M_p.i21.i.i735, align 8, !tbaa !107, !alias.scope !143
+  %_M_allocated_capacity.i.i736 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i729, i64 0, i32 2, i32 0
+  %186 = load i64, i64* %_M_allocated_capacity.i.i736, align 8, !tbaa !63
+  %_M_allocated_capacity.i.i.i737 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_5_w_path, i64 0, i32 2, i32 0
+  store i64 %186, i64* %_M_allocated_capacity.i.i.i737, align 8, !tbaa !63, !alias.scope !143
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit741
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit741: ; preds = %if.else.i.i738, %if.then.i.i734
+  %_M_string_length.i20.i.i739 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i729, i64 0, i32 1
+  %187 = load i64, i64* %_M_string_length.i20.i.i739, align 8, !tbaa !104
+  %_M_string_length.i.i2.i740 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_5_w_path, i64 0, i32 1
+  store i64 %187, i64* %_M_string_length.i.i2.i740, align 8, !tbaa !104, !alias.scope !143
+  %188 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i729 to %union.anon**
+  store %union.anon* %185, %union.anon** %188, align 8, !tbaa !107
+  store i64 0, i64* %_M_string_length.i20.i.i739, align 8, !tbaa !104
+  store i8 0, i8* %arraydecay.i.i.i.i731, align 1, !tbaa !87
+  %_M_p.i.i.i.i742 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp36, i64 0, i32 0, i32 0
+  %189 = load i8*, i8** %_M_p.i.i.i.i742, align 8, !tbaa !107
+  %cmp.i.i.i744 = icmp eq i8* %189, %178
+  br i1 %cmp.i.i.i744, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit746, label %if.then.i.i745
+
+if.then.i.i745:                                   ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit741
+  call void @_ZdlPv(i8* %189) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit746
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit746: ; preds = %if.then.i.i745, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit741
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %175) #7
+  %_M_p.i.i747 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_5_w_path, i64 0, i32 0, i32 0
+  %190 = load i8*, i8** %_M_p.i.i747, align 8, !tbaa !107
+  %call39 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %190, i32 0, i32 256, i32 128, i32 3, i32 3)
+  %191 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_5_b_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %191) #7
+  %192 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp40 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %192) #7
+  %193 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp40, i64 0, i32 2
+  %194 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp40 to %union.anon**
+  store %union.anon* %193, %union.anon** %194, align 8, !tbaa !103
+  %195 = bitcast %union.anon* %193 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %195, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.35, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i771 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp40, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i771, align 8, !tbaa !104
+  %196 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp40, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %196, align 2, !tbaa !87
+  %197 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !104, !noalias !146
+  %198 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !107, !noalias !146
+  %call3.i.i.i776 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp40, i64 0, i64 0, i8* %198, i64 %197) #7, !noalias !146
+  %199 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_5_b_path, i64 0, i32 2
+  %200 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_5_b_path to %union.anon**
+  store %union.anon* %199, %union.anon** %200, align 8, !tbaa !103, !alias.scope !146
+  %_M_p.i.i23.i.i777 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i776, i64 0, i32 0, i32 0
+  %201 = load i8*, i8** %_M_p.i.i23.i.i777, align 8, !tbaa !107
+  %202 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i776, i64 0, i32 2
+  %arraydecay.i.i.i.i778 = bitcast %union.anon* %202 to i8*
+  %cmp.i.i.i779 = icmp eq i8* %201, %arraydecay.i.i.i.i778
+  br i1 %cmp.i.i.i779, label %if.then.i.i781, label %if.else.i.i785
+
+if.then.i.i781:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit746
+  %arraydecay.i.i.i780 = bitcast %union.anon* %199 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i780, i8* %201, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit788
+
+if.else.i.i785:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit746
+  %_M_p.i21.i.i782 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_5_b_path, i64 0, i32 0, i32 0
+  store i8* %201, i8** %_M_p.i21.i.i782, align 8, !tbaa !107, !alias.scope !146
+  %_M_allocated_capacity.i.i783 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i776, i64 0, i32 2, i32 0
+  %203 = load i64, i64* %_M_allocated_capacity.i.i783, align 8, !tbaa !63
+  %_M_allocated_capacity.i.i.i784 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_5_b_path, i64 0, i32 2, i32 0
+  store i64 %203, i64* %_M_allocated_capacity.i.i.i784, align 8, !tbaa !63, !alias.scope !146
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit788
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit788: ; preds = %if.else.i.i785, %if.then.i.i781
+  %_M_string_length.i20.i.i786 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i776, i64 0, i32 1
+  %204 = load i64, i64* %_M_string_length.i20.i.i786, align 8, !tbaa !104
+  %_M_string_length.i.i2.i787 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_5_b_path, i64 0, i32 1
+  store i64 %204, i64* %_M_string_length.i.i2.i787, align 8, !tbaa !104, !alias.scope !146
+  %205 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i776 to %union.anon**
+  store %union.anon* %202, %union.anon** %205, align 8, !tbaa !107
+  store i64 0, i64* %_M_string_length.i20.i.i786, align 8, !tbaa !104
+  store i8 0, i8* %arraydecay.i.i.i.i778, align 1, !tbaa !87
+  %_M_p.i.i.i.i789 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp40, i64 0, i32 0, i32 0
+  %206 = load i8*, i8** %_M_p.i.i.i.i789, align 8, !tbaa !107
+  %cmp.i.i.i791 = icmp eq i8* %206, %195
+  br i1 %cmp.i.i.i791, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit793, label %if.then.i.i792
+
+if.then.i.i792:                                   ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit788
+  call void @_ZdlPv(i8* %206) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit793
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit793: ; preds = %if.then.i.i792, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit788
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %192) #7
+  %_M_p.i.i794 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_5_b_path, i64 0, i32 0, i32 0
+  %207 = load i8*, i8** %_M_p.i.i794, align 8, !tbaa !107
+  %call43 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %207, i32 0, i32 1, i32 256, i32 1, i32 1)
+  %208 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_6_w_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %208) #7
+  %209 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp44 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %209) #7
+  %210 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp44, i64 0, i32 2
+  %211 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp44 to %union.anon**
+  store %union.anon* %210, %union.anon** %211, align 8, !tbaa !103
+  %212 = bitcast %union.anon* %210 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %212, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.36, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i818 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp44, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i818, align 8, !tbaa !104
+  %213 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp44, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %213, align 2, !tbaa !87
+  %214 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !104, !noalias !149
+  %215 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !107, !noalias !149
+  %call3.i.i.i823 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp44, i64 0, i64 0, i8* %215, i64 %214) #7, !noalias !149
+  %216 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_6_w_path, i64 0, i32 2
+  %217 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_6_w_path to %union.anon**
+  store %union.anon* %216, %union.anon** %217, align 8, !tbaa !103, !alias.scope !149
+  %_M_p.i.i23.i.i824 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i823, i64 0, i32 0, i32 0
+  %218 = load i8*, i8** %_M_p.i.i23.i.i824, align 8, !tbaa !107
+  %219 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i823, i64 0, i32 2
+  %arraydecay.i.i.i.i825 = bitcast %union.anon* %219 to i8*
+  %cmp.i.i.i826 = icmp eq i8* %218, %arraydecay.i.i.i.i825
+  br i1 %cmp.i.i.i826, label %if.then.i.i828, label %if.else.i.i832
+
+if.then.i.i828:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit793
+  %arraydecay.i.i.i827 = bitcast %union.anon* %216 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i827, i8* %218, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit835
+
+if.else.i.i832:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit793
+  %_M_p.i21.i.i829 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_6_w_path, i64 0, i32 0, i32 0
+  store i8* %218, i8** %_M_p.i21.i.i829, align 8, !tbaa !107, !alias.scope !149
+  %_M_allocated_capacity.i.i830 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i823, i64 0, i32 2, i32 0
+  %220 = load i64, i64* %_M_allocated_capacity.i.i830, align 8, !tbaa !63
+  %_M_allocated_capacity.i.i.i831 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_6_w_path, i64 0, i32 2, i32 0
+  store i64 %220, i64* %_M_allocated_capacity.i.i.i831, align 8, !tbaa !63, !alias.scope !149
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit835
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit835: ; preds = %if.else.i.i832, %if.then.i.i828
+  %_M_string_length.i20.i.i833 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i823, i64 0, i32 1
+  %221 = load i64, i64* %_M_string_length.i20.i.i833, align 8, !tbaa !104
+  %_M_string_length.i.i2.i834 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_6_w_path, i64 0, i32 1
+  store i64 %221, i64* %_M_string_length.i.i2.i834, align 8, !tbaa !104, !alias.scope !149
+  %222 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i823 to %union.anon**
+  store %union.anon* %219, %union.anon** %222, align 8, !tbaa !107
+  store i64 0, i64* %_M_string_length.i20.i.i833, align 8, !tbaa !104
+  store i8 0, i8* %arraydecay.i.i.i.i825, align 1, !tbaa !87
+  %_M_p.i.i.i.i836 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp44, i64 0, i32 0, i32 0
+  %223 = load i8*, i8** %_M_p.i.i.i.i836, align 8, !tbaa !107
+  %cmp.i.i.i838 = icmp eq i8* %223, %212
+  br i1 %cmp.i.i.i838, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit840, label %if.then.i.i839
+
+if.then.i.i839:                                   ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit835
+  call void @_ZdlPv(i8* %223) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit840
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit840: ; preds = %if.then.i.i839, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit835
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %209) #7
+  %_M_p.i.i841 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_6_w_path, i64 0, i32 0, i32 0
+  %224 = load i8*, i8** %_M_p.i.i841, align 8, !tbaa !107
+  %call47 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %224, i32 0, i32 256, i32 256, i32 3, i32 3)
+  %225 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_6_b_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %225) #7
+  %226 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp48 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %226) #7
+  %227 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp48, i64 0, i32 2
+  %228 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp48 to %union.anon**
+  store %union.anon* %227, %union.anon** %228, align 8, !tbaa !103
+  %229 = bitcast %union.anon* %227 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %229, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.37, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i865 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp48, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i865, align 8, !tbaa !104
+  %230 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp48, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %230, align 2, !tbaa !87
+  %231 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !104, !noalias !152
+  %232 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !107, !noalias !152
+  %call3.i.i.i870 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp48, i64 0, i64 0, i8* %232, i64 %231) #7, !noalias !152
+  %233 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_6_b_path, i64 0, i32 2
+  %234 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_6_b_path to %union.anon**
+  store %union.anon* %233, %union.anon** %234, align 8, !tbaa !103, !alias.scope !152
+  %_M_p.i.i23.i.i871 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i870, i64 0, i32 0, i32 0
+  %235 = load i8*, i8** %_M_p.i.i23.i.i871, align 8, !tbaa !107
+  %236 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i870, i64 0, i32 2
+  %arraydecay.i.i.i.i872 = bitcast %union.anon* %236 to i8*
+  %cmp.i.i.i873 = icmp eq i8* %235, %arraydecay.i.i.i.i872
+  br i1 %cmp.i.i.i873, label %if.then.i.i875, label %if.else.i.i879
+
+if.then.i.i875:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit840
+  %arraydecay.i.i.i874 = bitcast %union.anon* %233 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i874, i8* %235, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit882
+
+if.else.i.i879:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit840
+  %_M_p.i21.i.i876 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_6_b_path, i64 0, i32 0, i32 0
+  store i8* %235, i8** %_M_p.i21.i.i876, align 8, !tbaa !107, !alias.scope !152
+  %_M_allocated_capacity.i.i877 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i870, i64 0, i32 2, i32 0
+  %237 = load i64, i64* %_M_allocated_capacity.i.i877, align 8, !tbaa !63
+  %_M_allocated_capacity.i.i.i878 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_6_b_path, i64 0, i32 2, i32 0
+  store i64 %237, i64* %_M_allocated_capacity.i.i.i878, align 8, !tbaa !63, !alias.scope !152
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit882
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit882: ; preds = %if.else.i.i879, %if.then.i.i875
+  %_M_string_length.i20.i.i880 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i870, i64 0, i32 1
+  %238 = load i64, i64* %_M_string_length.i20.i.i880, align 8, !tbaa !104
+  %_M_string_length.i.i2.i881 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_6_b_path, i64 0, i32 1
+  store i64 %238, i64* %_M_string_length.i.i2.i881, align 8, !tbaa !104, !alias.scope !152
+  %239 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i870 to %union.anon**
+  store %union.anon* %236, %union.anon** %239, align 8, !tbaa !107
+  store i64 0, i64* %_M_string_length.i20.i.i880, align 8, !tbaa !104
+  store i8 0, i8* %arraydecay.i.i.i.i872, align 1, !tbaa !87
+  %_M_p.i.i.i.i883 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp48, i64 0, i32 0, i32 0
+  %240 = load i8*, i8** %_M_p.i.i.i.i883, align 8, !tbaa !107
+  %cmp.i.i.i885 = icmp eq i8* %240, %229
+  br i1 %cmp.i.i.i885, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit887, label %if.then.i.i886
+
+if.then.i.i886:                                   ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit882
+  call void @_ZdlPv(i8* %240) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit887
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit887: ; preds = %if.then.i.i886, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit882
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %226) #7
+  %_M_p.i.i888 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_6_b_path, i64 0, i32 0, i32 0
+  %241 = load i8*, i8** %_M_p.i.i888, align 8, !tbaa !107
+  %call51 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %241, i32 0, i32 1, i32 256, i32 1, i32 1)
+  %242 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_7_w_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %242) #7
+  %243 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp52 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %243) #7
+  %244 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp52, i64 0, i32 2
+  %245 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp52 to %union.anon**
+  store %union.anon* %244, %union.anon** %245, align 8, !tbaa !103
+  %246 = bitcast %union.anon* %244 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %246, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.38, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i912 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp52, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i912, align 8, !tbaa !104
+  %247 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp52, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %247, align 2, !tbaa !87
+  %248 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !104, !noalias !155
+  %249 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !107, !noalias !155
+  %call3.i.i.i917 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp52, i64 0, i64 0, i8* %249, i64 %248) #7, !noalias !155
+  %250 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_7_w_path, i64 0, i32 2
+  %251 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_7_w_path to %union.anon**
+  store %union.anon* %250, %union.anon** %251, align 8, !tbaa !103, !alias.scope !155
+  %_M_p.i.i23.i.i918 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i917, i64 0, i32 0, i32 0
+  %252 = load i8*, i8** %_M_p.i.i23.i.i918, align 8, !tbaa !107
+  %253 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i917, i64 0, i32 2
+  %arraydecay.i.i.i.i919 = bitcast %union.anon* %253 to i8*
+  %cmp.i.i.i920 = icmp eq i8* %252, %arraydecay.i.i.i.i919
+  br i1 %cmp.i.i.i920, label %if.then.i.i922, label %if.else.i.i926
+
+if.then.i.i922:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit887
+  %arraydecay.i.i.i921 = bitcast %union.anon* %250 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i921, i8* %252, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit929
+
+if.else.i.i926:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit887
+  %_M_p.i21.i.i923 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_7_w_path, i64 0, i32 0, i32 0
+  store i8* %252, i8** %_M_p.i21.i.i923, align 8, !tbaa !107, !alias.scope !155
+  %_M_allocated_capacity.i.i924 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i917, i64 0, i32 2, i32 0
+  %254 = load i64, i64* %_M_allocated_capacity.i.i924, align 8, !tbaa !63
+  %_M_allocated_capacity.i.i.i925 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_7_w_path, i64 0, i32 2, i32 0
+  store i64 %254, i64* %_M_allocated_capacity.i.i.i925, align 8, !tbaa !63, !alias.scope !155
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit929
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit929: ; preds = %if.else.i.i926, %if.then.i.i922
+  %_M_string_length.i20.i.i927 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i917, i64 0, i32 1
+  %255 = load i64, i64* %_M_string_length.i20.i.i927, align 8, !tbaa !104
+  %_M_string_length.i.i2.i928 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_7_w_path, i64 0, i32 1
+  store i64 %255, i64* %_M_string_length.i.i2.i928, align 8, !tbaa !104, !alias.scope !155
+  %256 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i917 to %union.anon**
+  store %union.anon* %253, %union.anon** %256, align 8, !tbaa !107
+  store i64 0, i64* %_M_string_length.i20.i.i927, align 8, !tbaa !104
+  store i8 0, i8* %arraydecay.i.i.i.i919, align 1, !tbaa !87
+  %_M_p.i.i.i.i930 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp52, i64 0, i32 0, i32 0
+  %257 = load i8*, i8** %_M_p.i.i.i.i930, align 8, !tbaa !107
+  %cmp.i.i.i932 = icmp eq i8* %257, %246
+  br i1 %cmp.i.i.i932, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit934, label %if.then.i.i933
+
+if.then.i.i933:                                   ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit929
+  call void @_ZdlPv(i8* %257) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit934
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit934: ; preds = %if.then.i.i933, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit929
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %243) #7
+  %_M_p.i.i935 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_7_w_path, i64 0, i32 0, i32 0
+  %258 = load i8*, i8** %_M_p.i.i935, align 8, !tbaa !107
+  %call55 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %258, i32 0, i32 256, i32 256, i32 3, i32 3)
+  %259 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_7_b_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %259) #7
+  %260 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp56 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %260) #7
+  %261 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp56, i64 0, i32 2
+  %262 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp56 to %union.anon**
+  store %union.anon* %261, %union.anon** %262, align 8, !tbaa !103
+  %263 = bitcast %union.anon* %261 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %263, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.39, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i959 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp56, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i959, align 8, !tbaa !104
+  %264 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp56, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %264, align 2, !tbaa !87
+  %265 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !104, !noalias !158
+  %266 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !107, !noalias !158
+  %call3.i.i.i964 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp56, i64 0, i64 0, i8* %266, i64 %265) #7, !noalias !158
+  %267 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_7_b_path, i64 0, i32 2
+  %268 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_7_b_path to %union.anon**
+  store %union.anon* %267, %union.anon** %268, align 8, !tbaa !103, !alias.scope !158
+  %_M_p.i.i23.i.i965 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i964, i64 0, i32 0, i32 0
+  %269 = load i8*, i8** %_M_p.i.i23.i.i965, align 8, !tbaa !107
+  %270 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i964, i64 0, i32 2
+  %arraydecay.i.i.i.i966 = bitcast %union.anon* %270 to i8*
+  %cmp.i.i.i967 = icmp eq i8* %269, %arraydecay.i.i.i.i966
+  br i1 %cmp.i.i.i967, label %if.then.i.i969, label %if.else.i.i973
+
+if.then.i.i969:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit934
+  %arraydecay.i.i.i968 = bitcast %union.anon* %267 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i968, i8* %269, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit976
+
+if.else.i.i973:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit934
+  %_M_p.i21.i.i970 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_7_b_path, i64 0, i32 0, i32 0
+  store i8* %269, i8** %_M_p.i21.i.i970, align 8, !tbaa !107, !alias.scope !158
+  %_M_allocated_capacity.i.i971 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i964, i64 0, i32 2, i32 0
+  %271 = load i64, i64* %_M_allocated_capacity.i.i971, align 8, !tbaa !63
+  %_M_allocated_capacity.i.i.i972 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_7_b_path, i64 0, i32 2, i32 0
+  store i64 %271, i64* %_M_allocated_capacity.i.i.i972, align 8, !tbaa !63, !alias.scope !158
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit976
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit976: ; preds = %if.else.i.i973, %if.then.i.i969
+  %_M_string_length.i20.i.i974 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i964, i64 0, i32 1
+  %272 = load i64, i64* %_M_string_length.i20.i.i974, align 8, !tbaa !104
+  %_M_string_length.i.i2.i975 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_7_b_path, i64 0, i32 1
+  store i64 %272, i64* %_M_string_length.i.i2.i975, align 8, !tbaa !104, !alias.scope !158
+  %273 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i964 to %union.anon**
+  store %union.anon* %270, %union.anon** %273, align 8, !tbaa !107
+  store i64 0, i64* %_M_string_length.i20.i.i974, align 8, !tbaa !104
+  store i8 0, i8* %arraydecay.i.i.i.i966, align 1, !tbaa !87
+  %_M_p.i.i.i.i977 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp56, i64 0, i32 0, i32 0
+  %274 = load i8*, i8** %_M_p.i.i.i.i977, align 8, !tbaa !107
+  %cmp.i.i.i979 = icmp eq i8* %274, %263
+  br i1 %cmp.i.i.i979, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit981, label %if.then.i.i980
+
+if.then.i.i980:                                   ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit976
+  call void @_ZdlPv(i8* %274) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit981
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit981: ; preds = %if.then.i.i980, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit976
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %260) #7
+  %_M_p.i.i982 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_7_b_path, i64 0, i32 0, i32 0
+  %275 = load i8*, i8** %_M_p.i.i982, align 8, !tbaa !107
+  %call59 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %275, i32 0, i32 1, i32 256, i32 1, i32 1)
+  %276 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_8_w_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %276) #7
+  %277 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp60 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %277) #7
+  %278 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp60, i64 0, i32 2
+  %279 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp60 to %union.anon**
+  store %union.anon* %278, %union.anon** %279, align 8, !tbaa !103
+  %280 = bitcast %union.anon* %278 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %280, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.40, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i1006 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp60, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i1006, align 8, !tbaa !104
+  %281 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp60, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %281, align 2, !tbaa !87
+  %282 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !104, !noalias !161
+  %283 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !107, !noalias !161
+  %call3.i.i.i1011 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp60, i64 0, i64 0, i8* %283, i64 %282) #7, !noalias !161
+  %284 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_8_w_path, i64 0, i32 2
+  %285 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_8_w_path to %union.anon**
+  store %union.anon* %284, %union.anon** %285, align 8, !tbaa !103, !alias.scope !161
+  %_M_p.i.i23.i.i1012 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1011, i64 0, i32 0, i32 0
+  %286 = load i8*, i8** %_M_p.i.i23.i.i1012, align 8, !tbaa !107
+  %287 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1011, i64 0, i32 2
+  %arraydecay.i.i.i.i1013 = bitcast %union.anon* %287 to i8*
+  %cmp.i.i.i1014 = icmp eq i8* %286, %arraydecay.i.i.i.i1013
+  br i1 %cmp.i.i.i1014, label %if.then.i.i1016, label %if.else.i.i1020
+
+if.then.i.i1016:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit981
+  %arraydecay.i.i.i1015 = bitcast %union.anon* %284 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i1015, i8* %286, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1023
+
+if.else.i.i1020:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit981
+  %_M_p.i21.i.i1017 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_8_w_path, i64 0, i32 0, i32 0
+  store i8* %286, i8** %_M_p.i21.i.i1017, align 8, !tbaa !107, !alias.scope !161
+  %_M_allocated_capacity.i.i1018 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1011, i64 0, i32 2, i32 0
+  %288 = load i64, i64* %_M_allocated_capacity.i.i1018, align 8, !tbaa !63
+  %_M_allocated_capacity.i.i.i1019 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_8_w_path, i64 0, i32 2, i32 0
+  store i64 %288, i64* %_M_allocated_capacity.i.i.i1019, align 8, !tbaa !63, !alias.scope !161
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1023
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1023: ; preds = %if.else.i.i1020, %if.then.i.i1016
+  %_M_string_length.i20.i.i1021 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1011, i64 0, i32 1
+  %289 = load i64, i64* %_M_string_length.i20.i.i1021, align 8, !tbaa !104
+  %_M_string_length.i.i2.i1022 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_8_w_path, i64 0, i32 1
+  store i64 %289, i64* %_M_string_length.i.i2.i1022, align 8, !tbaa !104, !alias.scope !161
+  %290 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i1011 to %union.anon**
+  store %union.anon* %287, %union.anon** %290, align 8, !tbaa !107
+  store i64 0, i64* %_M_string_length.i20.i.i1021, align 8, !tbaa !104
+  store i8 0, i8* %arraydecay.i.i.i.i1013, align 1, !tbaa !87
+  %_M_p.i.i.i.i1024 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp60, i64 0, i32 0, i32 0
+  %291 = load i8*, i8** %_M_p.i.i.i.i1024, align 8, !tbaa !107
+  %cmp.i.i.i1026 = icmp eq i8* %291, %280
+  br i1 %cmp.i.i.i1026, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1028, label %if.then.i.i1027
+
+if.then.i.i1027:                                  ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1023
+  call void @_ZdlPv(i8* %291) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1028
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1028: ; preds = %if.then.i.i1027, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1023
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %277) #7
+  %_M_p.i.i1029 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_8_w_path, i64 0, i32 0, i32 0
+  %292 = load i8*, i8** %_M_p.i.i1029, align 8, !tbaa !107
+  %call63 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %292, i32 0, i32 512, i32 256, i32 3, i32 3)
+  %293 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_8_b_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %293) #7
+  %294 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp64 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %294) #7
+  %295 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp64, i64 0, i32 2
+  %296 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp64 to %union.anon**
+  store %union.anon* %295, %union.anon** %296, align 8, !tbaa !103
+  %297 = bitcast %union.anon* %295 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %297, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.41, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i1048 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp64, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i1048, align 8, !tbaa !104
+  %298 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp64, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %298, align 2, !tbaa !87
+  %299 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !104, !noalias !164
+  %300 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !107, !noalias !164
+  %call3.i.i.i1053 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp64, i64 0, i64 0, i8* %300, i64 %299) #7, !noalias !164
+  %301 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_8_b_path, i64 0, i32 2
+  %302 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_8_b_path to %union.anon**
+  store %union.anon* %301, %union.anon** %302, align 8, !tbaa !103, !alias.scope !164
+  %_M_p.i.i23.i.i1054 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1053, i64 0, i32 0, i32 0
+  %303 = load i8*, i8** %_M_p.i.i23.i.i1054, align 8, !tbaa !107
+  %304 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1053, i64 0, i32 2
+  %arraydecay.i.i.i.i1055 = bitcast %union.anon* %304 to i8*
+  %cmp.i.i.i1056 = icmp eq i8* %303, %arraydecay.i.i.i.i1055
+  br i1 %cmp.i.i.i1056, label %if.then.i.i1058, label %if.else.i.i1062
+
+if.then.i.i1058:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1028
+  %arraydecay.i.i.i1057 = bitcast %union.anon* %301 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i1057, i8* %303, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1065
+
+if.else.i.i1062:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1028
+  %_M_p.i21.i.i1059 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_8_b_path, i64 0, i32 0, i32 0
+  store i8* %303, i8** %_M_p.i21.i.i1059, align 8, !tbaa !107, !alias.scope !164
+  %_M_allocated_capacity.i.i1060 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1053, i64 0, i32 2, i32 0
+  %305 = load i64, i64* %_M_allocated_capacity.i.i1060, align 8, !tbaa !63
+  %_M_allocated_capacity.i.i.i1061 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_8_b_path, i64 0, i32 2, i32 0
+  store i64 %305, i64* %_M_allocated_capacity.i.i.i1061, align 8, !tbaa !63, !alias.scope !164
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1065
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1065: ; preds = %if.else.i.i1062, %if.then.i.i1058
+  %_M_string_length.i20.i.i1063 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1053, i64 0, i32 1
+  %306 = load i64, i64* %_M_string_length.i20.i.i1063, align 8, !tbaa !104
+  %_M_string_length.i.i2.i1064 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_8_b_path, i64 0, i32 1
+  store i64 %306, i64* %_M_string_length.i.i2.i1064, align 8, !tbaa !104, !alias.scope !164
+  %307 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i1053 to %union.anon**
+  store %union.anon* %304, %union.anon** %307, align 8, !tbaa !107
+  store i64 0, i64* %_M_string_length.i20.i.i1063, align 8, !tbaa !104
+  store i8 0, i8* %arraydecay.i.i.i.i1055, align 1, !tbaa !87
+  %_M_p.i.i.i.i1066 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp64, i64 0, i32 0, i32 0
+  %308 = load i8*, i8** %_M_p.i.i.i.i1066, align 8, !tbaa !107
+  %cmp.i.i.i1068 = icmp eq i8* %308, %297
+  br i1 %cmp.i.i.i1068, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1070, label %if.then.i.i1069
+
+if.then.i.i1069:                                  ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1065
+  call void @_ZdlPv(i8* %308) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1070
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1070: ; preds = %if.then.i.i1069, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1065
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %294) #7
+  %_M_p.i.i1071 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_8_b_path, i64 0, i32 0, i32 0
+  %309 = load i8*, i8** %_M_p.i.i1071, align 8, !tbaa !107
+  %call67 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %309, i32 0, i32 1, i32 512, i32 1, i32 1)
+  %310 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_9_w_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %310) #7
+  %311 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp68 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %311) #7
+  %312 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp68, i64 0, i32 2
+  %313 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp68 to %union.anon**
+  store %union.anon* %312, %union.anon** %313, align 8, !tbaa !103
+  %314 = bitcast %union.anon* %312 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %314, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.42, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i1085 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp68, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i1085, align 8, !tbaa !104
+  %315 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp68, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %315, align 2, !tbaa !87
+  %316 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !104, !noalias !167
+  %317 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !107, !noalias !167
+  %call3.i.i.i1090 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp68, i64 0, i64 0, i8* %317, i64 %316) #7, !noalias !167
+  %318 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_9_w_path, i64 0, i32 2
+  %319 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_9_w_path to %union.anon**
+  store %union.anon* %318, %union.anon** %319, align 8, !tbaa !103, !alias.scope !167
+  %_M_p.i.i23.i.i1091 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1090, i64 0, i32 0, i32 0
+  %320 = load i8*, i8** %_M_p.i.i23.i.i1091, align 8, !tbaa !107
+  %321 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1090, i64 0, i32 2
+  %arraydecay.i.i.i.i1092 = bitcast %union.anon* %321 to i8*
+  %cmp.i.i.i1093 = icmp eq i8* %320, %arraydecay.i.i.i.i1092
+  br i1 %cmp.i.i.i1093, label %if.then.i.i1095, label %if.else.i.i1099
+
+if.then.i.i1095:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1070
+  %arraydecay.i.i.i1094 = bitcast %union.anon* %318 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i1094, i8* %320, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1102
+
+if.else.i.i1099:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1070
+  %_M_p.i21.i.i1096 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_9_w_path, i64 0, i32 0, i32 0
+  store i8* %320, i8** %_M_p.i21.i.i1096, align 8, !tbaa !107, !alias.scope !167
+  %_M_allocated_capacity.i.i1097 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1090, i64 0, i32 2, i32 0
+  %322 = load i64, i64* %_M_allocated_capacity.i.i1097, align 8, !tbaa !63
+  %_M_allocated_capacity.i.i.i1098 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_9_w_path, i64 0, i32 2, i32 0
+  store i64 %322, i64* %_M_allocated_capacity.i.i.i1098, align 8, !tbaa !63, !alias.scope !167
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1102
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1102: ; preds = %if.else.i.i1099, %if.then.i.i1095
+  %_M_string_length.i20.i.i1100 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1090, i64 0, i32 1
+  %323 = load i64, i64* %_M_string_length.i20.i.i1100, align 8, !tbaa !104
+  %_M_string_length.i.i2.i1101 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_9_w_path, i64 0, i32 1
+  store i64 %323, i64* %_M_string_length.i.i2.i1101, align 8, !tbaa !104, !alias.scope !167
+  %324 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i1090 to %union.anon**
+  store %union.anon* %321, %union.anon** %324, align 8, !tbaa !107
+  store i64 0, i64* %_M_string_length.i20.i.i1100, align 8, !tbaa !104
+  store i8 0, i8* %arraydecay.i.i.i.i1092, align 1, !tbaa !87
+  %_M_p.i.i.i.i1103 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp68, i64 0, i32 0, i32 0
+  %325 = load i8*, i8** %_M_p.i.i.i.i1103, align 8, !tbaa !107
+  %cmp.i.i.i1105 = icmp eq i8* %325, %314
+  br i1 %cmp.i.i.i1105, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1107, label %if.then.i.i1106
+
+if.then.i.i1106:                                  ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1102
+  call void @_ZdlPv(i8* %325) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1107
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1107: ; preds = %if.then.i.i1106, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1102
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %311) #7
+  %_M_p.i.i1108 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_9_w_path, i64 0, i32 0, i32 0
+  %326 = load i8*, i8** %_M_p.i.i1108, align 8, !tbaa !107
+  %call71 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %326, i32 0, i32 512, i32 512, i32 3, i32 3)
+  %327 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_9_b_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %327) #7
+  %328 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp72 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %328) #7
+  %329 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp72, i64 0, i32 2
+  %330 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp72 to %union.anon**
+  store %union.anon* %329, %union.anon** %330, align 8, !tbaa !103
+  %331 = bitcast %union.anon* %329 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %331, i8* nonnull getelementptr inbounds ([15 x i8], [15 x i8]* @.str.43, i64 0, i64 0), i64 14, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i1122 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp72, i64 0, i32 1
+  store i64 14, i64* %_M_string_length.i.i.i.i.i.i1122, align 8, !tbaa !104
+  %332 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp72, i64 0, i32 2, i32 1, i64 6
+  store i8 0, i8* %332, align 2, !tbaa !87
+  %333 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !104, !noalias !170
+  %334 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !107, !noalias !170
+  %call3.i.i.i1127 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp72, i64 0, i64 0, i8* %334, i64 %333) #7, !noalias !170
+  %335 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_9_b_path, i64 0, i32 2
+  %336 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_9_b_path to %union.anon**
+  store %union.anon* %335, %union.anon** %336, align 8, !tbaa !103, !alias.scope !170
+  %_M_p.i.i23.i.i1128 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1127, i64 0, i32 0, i32 0
+  %337 = load i8*, i8** %_M_p.i.i23.i.i1128, align 8, !tbaa !107
+  %338 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1127, i64 0, i32 2
+  %arraydecay.i.i.i.i1129 = bitcast %union.anon* %338 to i8*
+  %cmp.i.i.i1130 = icmp eq i8* %337, %arraydecay.i.i.i.i1129
+  br i1 %cmp.i.i.i1130, label %if.then.i.i1132, label %if.else.i.i1136
+
+if.then.i.i1132:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1107
+  %arraydecay.i.i.i1131 = bitcast %union.anon* %335 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i1131, i8* %337, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1139
+
+if.else.i.i1136:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1107
+  %_M_p.i21.i.i1133 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_9_b_path, i64 0, i32 0, i32 0
+  store i8* %337, i8** %_M_p.i21.i.i1133, align 8, !tbaa !107, !alias.scope !170
+  %_M_allocated_capacity.i.i1134 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1127, i64 0, i32 2, i32 0
+  %339 = load i64, i64* %_M_allocated_capacity.i.i1134, align 8, !tbaa !63
+  %_M_allocated_capacity.i.i.i1135 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_9_b_path, i64 0, i32 2, i32 0
+  store i64 %339, i64* %_M_allocated_capacity.i.i.i1135, align 8, !tbaa !63, !alias.scope !170
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1139
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1139: ; preds = %if.else.i.i1136, %if.then.i.i1132
+  %_M_string_length.i20.i.i1137 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1127, i64 0, i32 1
+  %340 = load i64, i64* %_M_string_length.i20.i.i1137, align 8, !tbaa !104
+  %_M_string_length.i.i2.i1138 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_9_b_path, i64 0, i32 1
+  store i64 %340, i64* %_M_string_length.i.i2.i1138, align 8, !tbaa !104, !alias.scope !170
+  %341 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i1127 to %union.anon**
+  store %union.anon* %338, %union.anon** %341, align 8, !tbaa !107
+  store i64 0, i64* %_M_string_length.i20.i.i1137, align 8, !tbaa !104
+  store i8 0, i8* %arraydecay.i.i.i.i1129, align 1, !tbaa !87
+  %_M_p.i.i.i.i1140 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp72, i64 0, i32 0, i32 0
+  %342 = load i8*, i8** %_M_p.i.i.i.i1140, align 8, !tbaa !107
+  %cmp.i.i.i1142 = icmp eq i8* %342, %331
+  br i1 %cmp.i.i.i1142, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1144, label %if.then.i.i1143
+
+if.then.i.i1143:                                  ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1139
+  call void @_ZdlPv(i8* %342) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1144
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1144: ; preds = %if.then.i.i1143, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1139
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %328) #7
+  %_M_p.i.i1145 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_9_b_path, i64 0, i32 0, i32 0
+  %343 = load i8*, i8** %_M_p.i.i1145, align 8, !tbaa !107
+  %call75 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %343, i32 0, i32 1, i32 512, i32 1, i32 1)
+  %344 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_10_w_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %344) #7
+  %345 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp76 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %345) #7
+  %346 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp76, i64 0, i32 2
+  %347 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp76 to %union.anon**
+  store %union.anon* %346, %union.anon** %347, align 8, !tbaa !103
+  %348 = bitcast %union.anon* %346 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %348, i8* nonnull getelementptr inbounds ([16 x i8], [16 x i8]* @.str.44, i64 0, i64 0), i64 15, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i1159 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp76, i64 0, i32 1
+  store i64 15, i64* %_M_string_length.i.i.i.i.i.i1159, align 8, !tbaa !104
+  %349 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp76, i64 0, i32 2, i32 1, i64 7
+  store i8 0, i8* %349, align 1, !tbaa !87
+  %350 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !104, !noalias !173
+  %351 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !107, !noalias !173
+  %call3.i.i.i1164 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp76, i64 0, i64 0, i8* %351, i64 %350) #7, !noalias !173
+  %352 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_10_w_path, i64 0, i32 2
+  %353 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_10_w_path to %union.anon**
+  store %union.anon* %352, %union.anon** %353, align 8, !tbaa !103, !alias.scope !173
+  %_M_p.i.i23.i.i1165 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1164, i64 0, i32 0, i32 0
+  %354 = load i8*, i8** %_M_p.i.i23.i.i1165, align 8, !tbaa !107
+  %355 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1164, i64 0, i32 2
+  %arraydecay.i.i.i.i1166 = bitcast %union.anon* %355 to i8*
+  %cmp.i.i.i1167 = icmp eq i8* %354, %arraydecay.i.i.i.i1166
+  br i1 %cmp.i.i.i1167, label %if.then.i.i1169, label %if.else.i.i1173
+
+if.then.i.i1169:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1144
+  %arraydecay.i.i.i1168 = bitcast %union.anon* %352 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i1168, i8* %354, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1176
+
+if.else.i.i1173:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1144
+  %_M_p.i21.i.i1170 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_10_w_path, i64 0, i32 0, i32 0
+  store i8* %354, i8** %_M_p.i21.i.i1170, align 8, !tbaa !107, !alias.scope !173
+  %_M_allocated_capacity.i.i1171 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1164, i64 0, i32 2, i32 0
+  %356 = load i64, i64* %_M_allocated_capacity.i.i1171, align 8, !tbaa !63
+  %_M_allocated_capacity.i.i.i1172 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_10_w_path, i64 0, i32 2, i32 0
+  store i64 %356, i64* %_M_allocated_capacity.i.i.i1172, align 8, !tbaa !63, !alias.scope !173
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1176
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1176: ; preds = %if.else.i.i1173, %if.then.i.i1169
+  %_M_string_length.i20.i.i1174 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1164, i64 0, i32 1
+  %357 = load i64, i64* %_M_string_length.i20.i.i1174, align 8, !tbaa !104
+  %_M_string_length.i.i2.i1175 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_10_w_path, i64 0, i32 1
+  store i64 %357, i64* %_M_string_length.i.i2.i1175, align 8, !tbaa !104, !alias.scope !173
+  %358 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i1164 to %union.anon**
+  store %union.anon* %355, %union.anon** %358, align 8, !tbaa !107
+  store i64 0, i64* %_M_string_length.i20.i.i1174, align 8, !tbaa !104
+  store i8 0, i8* %arraydecay.i.i.i.i1166, align 1, !tbaa !87
+  %_M_p.i.i.i.i1177 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp76, i64 0, i32 0, i32 0
+  %359 = load i8*, i8** %_M_p.i.i.i.i1177, align 8, !tbaa !107
+  %cmp.i.i.i1179 = icmp eq i8* %359, %348
+  br i1 %cmp.i.i.i1179, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1181, label %if.then.i.i1180
+
+if.then.i.i1180:                                  ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1176
+  call void @_ZdlPv(i8* %359) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1181
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1181: ; preds = %if.then.i.i1180, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1176
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %345) #7
+  %_M_p.i.i1182 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_10_w_path, i64 0, i32 0, i32 0
+  %360 = load i8*, i8** %_M_p.i.i1182, align 8, !tbaa !107
+  %call79 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %360, i32 0, i32 512, i32 512, i32 3, i32 3)
+  %361 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_10_b_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %361) #7
+  %362 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp80 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %362) #7
+  %363 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp80, i64 0, i32 2
+  %364 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp80 to %union.anon**
+  store %union.anon* %363, %union.anon** %364, align 8, !tbaa !103
+  %365 = bitcast %union.anon* %363 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %365, i8* nonnull getelementptr inbounds ([16 x i8], [16 x i8]* @.str.45, i64 0, i64 0), i64 15, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i1198 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp80, i64 0, i32 1
+  store i64 15, i64* %_M_string_length.i.i.i.i.i.i1198, align 8, !tbaa !104
+  %366 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp80, i64 0, i32 2, i32 1, i64 7
+  store i8 0, i8* %366, align 1, !tbaa !87
+  %367 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !104, !noalias !176
+  %368 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !107, !noalias !176
+  %call3.i.i.i1203 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp80, i64 0, i64 0, i8* %368, i64 %367) #7, !noalias !176
+  %369 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_10_b_path, i64 0, i32 2
+  %370 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_10_b_path to %union.anon**
+  store %union.anon* %369, %union.anon** %370, align 8, !tbaa !103, !alias.scope !176
+  %_M_p.i.i23.i.i1204 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1203, i64 0, i32 0, i32 0
+  %371 = load i8*, i8** %_M_p.i.i23.i.i1204, align 8, !tbaa !107
+  %372 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1203, i64 0, i32 2
+  %arraydecay.i.i.i.i1205 = bitcast %union.anon* %372 to i8*
+  %cmp.i.i.i1206 = icmp eq i8* %371, %arraydecay.i.i.i.i1205
+  br i1 %cmp.i.i.i1206, label %if.then.i.i1208, label %if.else.i.i1212
+
+if.then.i.i1208:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1181
+  %arraydecay.i.i.i1207 = bitcast %union.anon* %369 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i1207, i8* %371, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1215
+
+if.else.i.i1212:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1181
+  %_M_p.i21.i.i1209 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_10_b_path, i64 0, i32 0, i32 0
+  store i8* %371, i8** %_M_p.i21.i.i1209, align 8, !tbaa !107, !alias.scope !176
+  %_M_allocated_capacity.i.i1210 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1203, i64 0, i32 2, i32 0
+  %373 = load i64, i64* %_M_allocated_capacity.i.i1210, align 8, !tbaa !63
+  %_M_allocated_capacity.i.i.i1211 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_10_b_path, i64 0, i32 2, i32 0
+  store i64 %373, i64* %_M_allocated_capacity.i.i.i1211, align 8, !tbaa !63, !alias.scope !176
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1215
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1215: ; preds = %if.else.i.i1212, %if.then.i.i1208
+  %_M_string_length.i20.i.i1213 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1203, i64 0, i32 1
+  %374 = load i64, i64* %_M_string_length.i20.i.i1213, align 8, !tbaa !104
+  %_M_string_length.i.i2.i1214 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_10_b_path, i64 0, i32 1
+  store i64 %374, i64* %_M_string_length.i.i2.i1214, align 8, !tbaa !104, !alias.scope !176
+  %375 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i1203 to %union.anon**
+  store %union.anon* %372, %union.anon** %375, align 8, !tbaa !107
+  store i64 0, i64* %_M_string_length.i20.i.i1213, align 8, !tbaa !104
+  store i8 0, i8* %arraydecay.i.i.i.i1205, align 1, !tbaa !87
+  %_M_p.i.i.i.i1216 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp80, i64 0, i32 0, i32 0
+  %376 = load i8*, i8** %_M_p.i.i.i.i1216, align 8, !tbaa !107
+  %cmp.i.i.i1218 = icmp eq i8* %376, %365
+  br i1 %cmp.i.i.i1218, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1220, label %if.then.i.i1219
+
+if.then.i.i1219:                                  ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1215
+  call void @_ZdlPv(i8* %376) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1220
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1220: ; preds = %if.then.i.i1219, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1215
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %362) #7
+  %_M_p.i.i1221 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_10_b_path, i64 0, i32 0, i32 0
+  %377 = load i8*, i8** %_M_p.i.i1221, align 8, !tbaa !107
+  %call83 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %377, i32 0, i32 1, i32 512, i32 1, i32 1)
+  %378 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_11_w_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %378) #7
+  %379 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp84 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %379) #7
+  %380 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp84, i64 0, i32 2
+  %381 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp84 to %union.anon**
+  store %union.anon* %380, %union.anon** %381, align 8, !tbaa !103
+  %382 = bitcast %union.anon* %380 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %382, i8* nonnull getelementptr inbounds ([16 x i8], [16 x i8]* @.str.46, i64 0, i64 0), i64 15, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i1256 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp84, i64 0, i32 1
+  store i64 15, i64* %_M_string_length.i.i.i.i.i.i1256, align 8, !tbaa !104
+  %383 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp84, i64 0, i32 2, i32 1, i64 7
+  store i8 0, i8* %383, align 1, !tbaa !87
+  %384 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !104, !noalias !179
+  %385 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !107, !noalias !179
+  %call3.i.i.i1261 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp84, i64 0, i64 0, i8* %385, i64 %384) #7, !noalias !179
+  %386 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_11_w_path, i64 0, i32 2
+  %387 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_11_w_path to %union.anon**
+  store %union.anon* %386, %union.anon** %387, align 8, !tbaa !103, !alias.scope !179
+  %_M_p.i.i23.i.i1262 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1261, i64 0, i32 0, i32 0
+  %388 = load i8*, i8** %_M_p.i.i23.i.i1262, align 8, !tbaa !107
+  %389 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1261, i64 0, i32 2
+  %arraydecay.i.i.i.i1263 = bitcast %union.anon* %389 to i8*
+  %cmp.i.i.i1264 = icmp eq i8* %388, %arraydecay.i.i.i.i1263
+  br i1 %cmp.i.i.i1264, label %if.then.i.i1266, label %if.else.i.i1270
+
+if.then.i.i1266:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1220
+  %arraydecay.i.i.i1265 = bitcast %union.anon* %386 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i1265, i8* %388, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1273
+
+if.else.i.i1270:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1220
+  %_M_p.i21.i.i1267 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_11_w_path, i64 0, i32 0, i32 0
+  store i8* %388, i8** %_M_p.i21.i.i1267, align 8, !tbaa !107, !alias.scope !179
+  %_M_allocated_capacity.i.i1268 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1261, i64 0, i32 2, i32 0
+  %390 = load i64, i64* %_M_allocated_capacity.i.i1268, align 8, !tbaa !63
+  %_M_allocated_capacity.i.i.i1269 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_11_w_path, i64 0, i32 2, i32 0
+  store i64 %390, i64* %_M_allocated_capacity.i.i.i1269, align 8, !tbaa !63, !alias.scope !179
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1273
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1273: ; preds = %if.else.i.i1270, %if.then.i.i1266
+  %_M_string_length.i20.i.i1271 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1261, i64 0, i32 1
+  %391 = load i64, i64* %_M_string_length.i20.i.i1271, align 8, !tbaa !104
+  %_M_string_length.i.i2.i1272 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_11_w_path, i64 0, i32 1
+  store i64 %391, i64* %_M_string_length.i.i2.i1272, align 8, !tbaa !104, !alias.scope !179
+  %392 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i1261 to %union.anon**
+  store %union.anon* %389, %union.anon** %392, align 8, !tbaa !107
+  store i64 0, i64* %_M_string_length.i20.i.i1271, align 8, !tbaa !104
+  store i8 0, i8* %arraydecay.i.i.i.i1263, align 1, !tbaa !87
+  %_M_p.i.i.i.i1274 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp84, i64 0, i32 0, i32 0
+  %393 = load i8*, i8** %_M_p.i.i.i.i1274, align 8, !tbaa !107
+  %cmp.i.i.i1276 = icmp eq i8* %393, %382
+  br i1 %cmp.i.i.i1276, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1278, label %if.then.i.i1277
+
+if.then.i.i1277:                                  ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1273
+  call void @_ZdlPv(i8* %393) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1278
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1278: ; preds = %if.then.i.i1277, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1273
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %379) #7
+  %_M_p.i.i1279 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_11_w_path, i64 0, i32 0, i32 0
+  %394 = load i8*, i8** %_M_p.i.i1279, align 8, !tbaa !107
+  %call87 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %394, i32 0, i32 512, i32 512, i32 3, i32 3)
+  %395 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_11_b_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %395) #7
+  %396 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp88 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %396) #7
+  %397 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp88, i64 0, i32 2
+  %398 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp88 to %union.anon**
+  store %union.anon* %397, %union.anon** %398, align 8, !tbaa !103
+  %399 = bitcast %union.anon* %397 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %399, i8* nonnull getelementptr inbounds ([16 x i8], [16 x i8]* @.str.47, i64 0, i64 0), i64 15, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i1309 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp88, i64 0, i32 1
+  store i64 15, i64* %_M_string_length.i.i.i.i.i.i1309, align 8, !tbaa !104
+  %400 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp88, i64 0, i32 2, i32 1, i64 7
+  store i8 0, i8* %400, align 1, !tbaa !87
+  %401 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !104, !noalias !182
+  %402 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !107, !noalias !182
+  %call3.i.i.i1314 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp88, i64 0, i64 0, i8* %402, i64 %401) #7, !noalias !182
+  %403 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_11_b_path, i64 0, i32 2
+  %404 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_11_b_path to %union.anon**
+  store %union.anon* %403, %union.anon** %404, align 8, !tbaa !103, !alias.scope !182
+  %_M_p.i.i23.i.i1315 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1314, i64 0, i32 0, i32 0
+  %405 = load i8*, i8** %_M_p.i.i23.i.i1315, align 8, !tbaa !107
+  %406 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1314, i64 0, i32 2
+  %arraydecay.i.i.i.i1316 = bitcast %union.anon* %406 to i8*
+  %cmp.i.i.i1317 = icmp eq i8* %405, %arraydecay.i.i.i.i1316
+  br i1 %cmp.i.i.i1317, label %if.then.i.i1319, label %if.else.i.i1323
+
+if.then.i.i1319:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1278
+  %arraydecay.i.i.i1318 = bitcast %union.anon* %403 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i1318, i8* %405, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1326
+
+if.else.i.i1323:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1278
+  %_M_p.i21.i.i1320 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_11_b_path, i64 0, i32 0, i32 0
+  store i8* %405, i8** %_M_p.i21.i.i1320, align 8, !tbaa !107, !alias.scope !182
+  %_M_allocated_capacity.i.i1321 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1314, i64 0, i32 2, i32 0
+  %407 = load i64, i64* %_M_allocated_capacity.i.i1321, align 8, !tbaa !63
+  %_M_allocated_capacity.i.i.i1322 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_11_b_path, i64 0, i32 2, i32 0
+  store i64 %407, i64* %_M_allocated_capacity.i.i.i1322, align 8, !tbaa !63, !alias.scope !182
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1326
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1326: ; preds = %if.else.i.i1323, %if.then.i.i1319
+  %_M_string_length.i20.i.i1324 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1314, i64 0, i32 1
+  %408 = load i64, i64* %_M_string_length.i20.i.i1324, align 8, !tbaa !104
+  %_M_string_length.i.i2.i1325 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_11_b_path, i64 0, i32 1
+  store i64 %408, i64* %_M_string_length.i.i2.i1325, align 8, !tbaa !104, !alias.scope !182
+  %409 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i1314 to %union.anon**
+  store %union.anon* %406, %union.anon** %409, align 8, !tbaa !107
+  store i64 0, i64* %_M_string_length.i20.i.i1324, align 8, !tbaa !104
+  store i8 0, i8* %arraydecay.i.i.i.i1316, align 1, !tbaa !87
+  %_M_p.i.i.i.i1327 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp88, i64 0, i32 0, i32 0
+  %410 = load i8*, i8** %_M_p.i.i.i.i1327, align 8, !tbaa !107
+  %cmp.i.i.i1329 = icmp eq i8* %410, %399
+  br i1 %cmp.i.i.i1329, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1331, label %if.then.i.i1330
+
+if.then.i.i1330:                                  ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1326
+  call void @_ZdlPv(i8* %410) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1331
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1331: ; preds = %if.then.i.i1330, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1326
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %396) #7
+  %_M_p.i.i1332 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_11_b_path, i64 0, i32 0, i32 0
+  %411 = load i8*, i8** %_M_p.i.i1332, align 8, !tbaa !107
+  %call91 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %411, i32 0, i32 1, i32 512, i32 1, i32 1)
+  %412 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_12_w_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %412) #7
+  %413 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp92 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %413) #7
+  %414 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp92, i64 0, i32 2
+  %415 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp92 to %union.anon**
+  store %union.anon* %414, %union.anon** %415, align 8, !tbaa !103
+  %416 = bitcast %union.anon* %414 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %416, i8* nonnull getelementptr inbounds ([16 x i8], [16 x i8]* @.str.48, i64 0, i64 0), i64 15, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i1352 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp92, i64 0, i32 1
+  store i64 15, i64* %_M_string_length.i.i.i.i.i.i1352, align 8, !tbaa !104
+  %417 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp92, i64 0, i32 2, i32 1, i64 7
+  store i8 0, i8* %417, align 1, !tbaa !87
+  %418 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !104, !noalias !185
+  %419 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !107, !noalias !185
+  %call3.i.i.i1357 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp92, i64 0, i64 0, i8* %419, i64 %418) #7, !noalias !185
+  %420 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_12_w_path, i64 0, i32 2
+  %421 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_12_w_path to %union.anon**
+  store %union.anon* %420, %union.anon** %421, align 8, !tbaa !103, !alias.scope !185
+  %_M_p.i.i23.i.i1358 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1357, i64 0, i32 0, i32 0
+  %422 = load i8*, i8** %_M_p.i.i23.i.i1358, align 8, !tbaa !107
+  %423 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1357, i64 0, i32 2
+  %arraydecay.i.i.i.i1359 = bitcast %union.anon* %423 to i8*
+  %cmp.i.i.i1360 = icmp eq i8* %422, %arraydecay.i.i.i.i1359
+  br i1 %cmp.i.i.i1360, label %if.then.i.i1362, label %if.else.i.i1366
+
+if.then.i.i1362:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1331
+  %arraydecay.i.i.i1361 = bitcast %union.anon* %420 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i1361, i8* %422, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1369
+
+if.else.i.i1366:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1331
+  %_M_p.i21.i.i1363 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_12_w_path, i64 0, i32 0, i32 0
+  store i8* %422, i8** %_M_p.i21.i.i1363, align 8, !tbaa !107, !alias.scope !185
+  %_M_allocated_capacity.i.i1364 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1357, i64 0, i32 2, i32 0
+  %424 = load i64, i64* %_M_allocated_capacity.i.i1364, align 8, !tbaa !63
+  %_M_allocated_capacity.i.i.i1365 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_12_w_path, i64 0, i32 2, i32 0
+  store i64 %424, i64* %_M_allocated_capacity.i.i.i1365, align 8, !tbaa !63, !alias.scope !185
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1369
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1369: ; preds = %if.else.i.i1366, %if.then.i.i1362
+  %_M_string_length.i20.i.i1367 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1357, i64 0, i32 1
+  %425 = load i64, i64* %_M_string_length.i20.i.i1367, align 8, !tbaa !104
+  %_M_string_length.i.i2.i1368 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_12_w_path, i64 0, i32 1
+  store i64 %425, i64* %_M_string_length.i.i2.i1368, align 8, !tbaa !104, !alias.scope !185
+  %426 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i1357 to %union.anon**
+  store %union.anon* %423, %union.anon** %426, align 8, !tbaa !107
+  store i64 0, i64* %_M_string_length.i20.i.i1367, align 8, !tbaa !104
+  store i8 0, i8* %arraydecay.i.i.i.i1359, align 1, !tbaa !87
+  %_M_p.i.i.i.i1370 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp92, i64 0, i32 0, i32 0
+  %427 = load i8*, i8** %_M_p.i.i.i.i1370, align 8, !tbaa !107
+  %cmp.i.i.i1372 = icmp eq i8* %427, %416
+  br i1 %cmp.i.i.i1372, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1374, label %if.then.i.i1373
+
+if.then.i.i1373:                                  ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1369
+  call void @_ZdlPv(i8* %427) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1374
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1374: ; preds = %if.then.i.i1373, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1369
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %413) #7
+  %_M_p.i.i1375 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_12_w_path, i64 0, i32 0, i32 0
+  %428 = load i8*, i8** %_M_p.i.i1375, align 8, !tbaa !107
+  %call95 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %428, i32 0, i32 512, i32 512, i32 3, i32 3)
+  %429 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_12_b_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %429) #7
+  %430 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp96 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %430) #7
+  %431 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp96, i64 0, i32 2
+  %432 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp96 to %union.anon**
+  store %union.anon* %431, %union.anon** %432, align 8, !tbaa !103
+  %433 = bitcast %union.anon* %431 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %433, i8* nonnull getelementptr inbounds ([16 x i8], [16 x i8]* @.str.49, i64 0, i64 0), i64 15, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i1420 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp96, i64 0, i32 1
+  store i64 15, i64* %_M_string_length.i.i.i.i.i.i1420, align 8, !tbaa !104
+  %434 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp96, i64 0, i32 2, i32 1, i64 7
+  store i8 0, i8* %434, align 1, !tbaa !87
+  %435 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !104, !noalias !188
+  %436 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !107, !noalias !188
+  %call3.i.i.i1425 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp96, i64 0, i64 0, i8* %436, i64 %435) #7, !noalias !188
+  %437 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_12_b_path, i64 0, i32 2
+  %438 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_12_b_path to %union.anon**
+  store %union.anon* %437, %union.anon** %438, align 8, !tbaa !103, !alias.scope !188
+  %_M_p.i.i23.i.i1426 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1425, i64 0, i32 0, i32 0
+  %439 = load i8*, i8** %_M_p.i.i23.i.i1426, align 8, !tbaa !107
+  %440 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1425, i64 0, i32 2
+  %arraydecay.i.i.i.i1427 = bitcast %union.anon* %440 to i8*
+  %cmp.i.i.i1428 = icmp eq i8* %439, %arraydecay.i.i.i.i1427
+  br i1 %cmp.i.i.i1428, label %if.then.i.i1430, label %if.else.i.i1434
+
+if.then.i.i1430:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1374
+  %arraydecay.i.i.i1429 = bitcast %union.anon* %437 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i1429, i8* %439, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1437
+
+if.else.i.i1434:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1374
+  %_M_p.i21.i.i1431 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_12_b_path, i64 0, i32 0, i32 0
+  store i8* %439, i8** %_M_p.i21.i.i1431, align 8, !tbaa !107, !alias.scope !188
+  %_M_allocated_capacity.i.i1432 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1425, i64 0, i32 2, i32 0
+  %441 = load i64, i64* %_M_allocated_capacity.i.i1432, align 8, !tbaa !63
+  %_M_allocated_capacity.i.i.i1433 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_12_b_path, i64 0, i32 2, i32 0
+  store i64 %441, i64* %_M_allocated_capacity.i.i.i1433, align 8, !tbaa !63, !alias.scope !188
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1437
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1437: ; preds = %if.else.i.i1434, %if.then.i.i1430
+  %_M_string_length.i20.i.i1435 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1425, i64 0, i32 1
+  %442 = load i64, i64* %_M_string_length.i20.i.i1435, align 8, !tbaa !104
+  %_M_string_length.i.i2.i1436 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_12_b_path, i64 0, i32 1
+  store i64 %442, i64* %_M_string_length.i.i2.i1436, align 8, !tbaa !104, !alias.scope !188
+  %443 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i1425 to %union.anon**
+  store %union.anon* %440, %union.anon** %443, align 8, !tbaa !107
+  store i64 0, i64* %_M_string_length.i20.i.i1435, align 8, !tbaa !104
+  store i8 0, i8* %arraydecay.i.i.i.i1427, align 1, !tbaa !87
+  %_M_p.i.i.i.i1438 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp96, i64 0, i32 0, i32 0
+  %444 = load i8*, i8** %_M_p.i.i.i.i1438, align 8, !tbaa !107
+  %cmp.i.i.i1440 = icmp eq i8* %444, %433
+  br i1 %cmp.i.i.i1440, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1442, label %if.then.i.i1441
+
+if.then.i.i1441:                                  ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1437
+  call void @_ZdlPv(i8* %444) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1442
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1442: ; preds = %if.then.i.i1441, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1437
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %430) #7
+  %_M_p.i.i1443 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_12_b_path, i64 0, i32 0, i32 0
+  %445 = load i8*, i8** %_M_p.i.i1443, align 8, !tbaa !107
+  %call99 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %445, i32 0, i32 1, i32 512, i32 1, i32 1)
+  %446 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_13_w_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %446) #7
+  %447 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp100 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %447) #7
+  %448 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp100, i64 0, i32 2
+  %449 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp100 to %union.anon**
+  store %union.anon* %448, %union.anon** %449, align 8, !tbaa !103
+  %450 = bitcast %union.anon* %448 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %450, i8* nonnull getelementptr inbounds ([16 x i8], [16 x i8]* @.str.50, i64 0, i64 0), i64 15, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i1457 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp100, i64 0, i32 1
+  store i64 15, i64* %_M_string_length.i.i.i.i.i.i1457, align 8, !tbaa !104
+  %451 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp100, i64 0, i32 2, i32 1, i64 7
+  store i8 0, i8* %451, align 1, !tbaa !87
+  %452 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !104, !noalias !191
+  %453 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !107, !noalias !191
+  %call3.i.i.i1462 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp100, i64 0, i64 0, i8* %453, i64 %452) #7, !noalias !191
+  %454 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_13_w_path, i64 0, i32 2
+  %455 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_13_w_path to %union.anon**
+  store %union.anon* %454, %union.anon** %455, align 8, !tbaa !103, !alias.scope !191
+  %_M_p.i.i23.i.i1463 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1462, i64 0, i32 0, i32 0
+  %456 = load i8*, i8** %_M_p.i.i23.i.i1463, align 8, !tbaa !107
+  %457 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1462, i64 0, i32 2
+  %arraydecay.i.i.i.i1464 = bitcast %union.anon* %457 to i8*
+  %cmp.i.i.i1465 = icmp eq i8* %456, %arraydecay.i.i.i.i1464
+  br i1 %cmp.i.i.i1465, label %if.then.i.i1467, label %if.else.i.i1471
+
+if.then.i.i1467:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1442
+  %arraydecay.i.i.i1466 = bitcast %union.anon* %454 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i1466, i8* %456, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1474
+
+if.else.i.i1471:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1442
+  %_M_p.i21.i.i1468 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_13_w_path, i64 0, i32 0, i32 0
+  store i8* %456, i8** %_M_p.i21.i.i1468, align 8, !tbaa !107, !alias.scope !191
+  %_M_allocated_capacity.i.i1469 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1462, i64 0, i32 2, i32 0
+  %458 = load i64, i64* %_M_allocated_capacity.i.i1469, align 8, !tbaa !63
+  %_M_allocated_capacity.i.i.i1470 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_13_w_path, i64 0, i32 2, i32 0
+  store i64 %458, i64* %_M_allocated_capacity.i.i.i1470, align 8, !tbaa !63, !alias.scope !191
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1474
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1474: ; preds = %if.else.i.i1471, %if.then.i.i1467
+  %_M_string_length.i20.i.i1472 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1462, i64 0, i32 1
+  %459 = load i64, i64* %_M_string_length.i20.i.i1472, align 8, !tbaa !104
+  %_M_string_length.i.i2.i1473 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_13_w_path, i64 0, i32 1
+  store i64 %459, i64* %_M_string_length.i.i2.i1473, align 8, !tbaa !104, !alias.scope !191
+  %460 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i1462 to %union.anon**
+  store %union.anon* %457, %union.anon** %460, align 8, !tbaa !107
+  store i64 0, i64* %_M_string_length.i20.i.i1472, align 8, !tbaa !104
+  store i8 0, i8* %arraydecay.i.i.i.i1464, align 1, !tbaa !87
+  %_M_p.i.i.i.i1475 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp100, i64 0, i32 0, i32 0
+  %461 = load i8*, i8** %_M_p.i.i.i.i1475, align 8, !tbaa !107
+  %cmp.i.i.i1477 = icmp eq i8* %461, %450
+  br i1 %cmp.i.i.i1477, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1479, label %if.then.i.i1478
+
+if.then.i.i1478:                                  ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1474
+  call void @_ZdlPv(i8* %461) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1479
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1479: ; preds = %if.then.i.i1478, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1474
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %447) #7
+  %_M_p.i.i1480 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_13_w_path, i64 0, i32 0, i32 0
+  %462 = load i8*, i8** %_M_p.i.i1480, align 8, !tbaa !107
+  %call103 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %462, i32 0, i32 512, i32 512, i32 3, i32 3)
+  %463 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_13_b_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %463) #7
+  %464 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp104 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %464) #7
+  %465 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp104, i64 0, i32 2
+  %466 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp104 to %union.anon**
+  store %union.anon* %465, %union.anon** %466, align 8, !tbaa !103
+  %467 = bitcast %union.anon* %465 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %467, i8* nonnull getelementptr inbounds ([16 x i8], [16 x i8]* @.str.51, i64 0, i64 0), i64 15, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i1515 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp104, i64 0, i32 1
+  store i64 15, i64* %_M_string_length.i.i.i.i.i.i1515, align 8, !tbaa !104
+  %468 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp104, i64 0, i32 2, i32 1, i64 7
+  store i8 0, i8* %468, align 1, !tbaa !87
+  %469 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !104, !noalias !194
+  %470 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !107, !noalias !194
+  %call3.i.i.i1520 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp104, i64 0, i64 0, i8* %470, i64 %469) #7, !noalias !194
+  %471 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_13_b_path, i64 0, i32 2
+  %472 = bitcast %"class.std::__cxx11::basic_string"* %conv2d_13_b_path to %union.anon**
+  store %union.anon* %471, %union.anon** %472, align 8, !tbaa !103, !alias.scope !194
+  %_M_p.i.i23.i.i1521 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1520, i64 0, i32 0, i32 0
+  %473 = load i8*, i8** %_M_p.i.i23.i.i1521, align 8, !tbaa !107
+  %474 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1520, i64 0, i32 2
+  %arraydecay.i.i.i.i1522 = bitcast %union.anon* %474 to i8*
+  %cmp.i.i.i1523 = icmp eq i8* %473, %arraydecay.i.i.i.i1522
+  br i1 %cmp.i.i.i1523, label %if.then.i.i1525, label %if.else.i.i1529
+
+if.then.i.i1525:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1479
+  %arraydecay.i.i.i1524 = bitcast %union.anon* %471 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i1524, i8* %473, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1532
+
+if.else.i.i1529:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1479
+  %_M_p.i21.i.i1526 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_13_b_path, i64 0, i32 0, i32 0
+  store i8* %473, i8** %_M_p.i21.i.i1526, align 8, !tbaa !107, !alias.scope !194
+  %_M_allocated_capacity.i.i1527 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1520, i64 0, i32 2, i32 0
+  %475 = load i64, i64* %_M_allocated_capacity.i.i1527, align 8, !tbaa !63
+  %_M_allocated_capacity.i.i.i1528 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_13_b_path, i64 0, i32 2, i32 0
+  store i64 %475, i64* %_M_allocated_capacity.i.i.i1528, align 8, !tbaa !63, !alias.scope !194
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1532
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1532: ; preds = %if.else.i.i1529, %if.then.i.i1525
+  %_M_string_length.i20.i.i1530 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1520, i64 0, i32 1
+  %476 = load i64, i64* %_M_string_length.i20.i.i1530, align 8, !tbaa !104
+  %_M_string_length.i.i2.i1531 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_13_b_path, i64 0, i32 1
+  store i64 %476, i64* %_M_string_length.i.i2.i1531, align 8, !tbaa !104, !alias.scope !194
+  %477 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i1520 to %union.anon**
+  store %union.anon* %474, %union.anon** %477, align 8, !tbaa !107
+  store i64 0, i64* %_M_string_length.i20.i.i1530, align 8, !tbaa !104
+  store i8 0, i8* %arraydecay.i.i.i.i1522, align 1, !tbaa !87
+  %_M_p.i.i.i.i1533 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp104, i64 0, i32 0, i32 0
+  %478 = load i8*, i8** %_M_p.i.i.i.i1533, align 8, !tbaa !107
+  %cmp.i.i.i1535 = icmp eq i8* %478, %467
+  br i1 %cmp.i.i.i1535, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1537, label %if.then.i.i1536
+
+if.then.i.i1536:                                  ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1532
+  call void @_ZdlPv(i8* %478) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1537
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1537: ; preds = %if.then.i.i1536, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1532
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %464) #7
+  %_M_p.i.i1538 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %conv2d_13_b_path, i64 0, i32 0, i32 0
+  %479 = load i8*, i8** %_M_p.i.i1538, align 8, !tbaa !107
+  %call107 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %479, i32 0, i32 1, i32 512, i32 1, i32 1)
+  %480 = bitcast %"class.std::__cxx11::basic_string"* %dense_1_w_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %480) #7
+  %481 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp108 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %481) #7
+  %482 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp108, i64 0, i32 2
+  %483 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp108 to %union.anon**
+  store %union.anon* %482, %union.anon** %483, align 8, !tbaa !103
+  %484 = bitcast %union.anon* %482 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %484, i8* nonnull getelementptr inbounds ([14 x i8], [14 x i8]* @.str.52, i64 0, i64 0), i64 13, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i1568 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp108, i64 0, i32 1
+  store i64 13, i64* %_M_string_length.i.i.i.i.i.i1568, align 8, !tbaa !104
+  %485 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp108, i64 0, i32 2, i32 1, i64 5
+  store i8 0, i8* %485, align 1, !tbaa !87
+  %486 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !104, !noalias !197
+  %487 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !107, !noalias !197
+  %call3.i.i.i1573 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp108, i64 0, i64 0, i8* %487, i64 %486) #7, !noalias !197
+  %488 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_1_w_path, i64 0, i32 2
+  %489 = bitcast %"class.std::__cxx11::basic_string"* %dense_1_w_path to %union.anon**
+  store %union.anon* %488, %union.anon** %489, align 8, !tbaa !103, !alias.scope !197
+  %_M_p.i.i23.i.i1574 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1573, i64 0, i32 0, i32 0
+  %490 = load i8*, i8** %_M_p.i.i23.i.i1574, align 8, !tbaa !107
+  %491 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1573, i64 0, i32 2
+  %arraydecay.i.i.i.i1575 = bitcast %union.anon* %491 to i8*
+  %cmp.i.i.i1576 = icmp eq i8* %490, %arraydecay.i.i.i.i1575
+  br i1 %cmp.i.i.i1576, label %if.then.i.i1578, label %if.else.i.i1582
+
+if.then.i.i1578:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1537
+  %arraydecay.i.i.i1577 = bitcast %union.anon* %488 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i1577, i8* %490, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1585
+
+if.else.i.i1582:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1537
+  %_M_p.i21.i.i1579 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_1_w_path, i64 0, i32 0, i32 0
+  store i8* %490, i8** %_M_p.i21.i.i1579, align 8, !tbaa !107, !alias.scope !197
+  %_M_allocated_capacity.i.i1580 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1573, i64 0, i32 2, i32 0
+  %492 = load i64, i64* %_M_allocated_capacity.i.i1580, align 8, !tbaa !63
+  %_M_allocated_capacity.i.i.i1581 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_1_w_path, i64 0, i32 2, i32 0
+  store i64 %492, i64* %_M_allocated_capacity.i.i.i1581, align 8, !tbaa !63, !alias.scope !197
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1585
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1585: ; preds = %if.else.i.i1582, %if.then.i.i1578
+  %_M_string_length.i20.i.i1583 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1573, i64 0, i32 1
+  %493 = load i64, i64* %_M_string_length.i20.i.i1583, align 8, !tbaa !104
+  %_M_string_length.i.i2.i1584 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_1_w_path, i64 0, i32 1
+  store i64 %493, i64* %_M_string_length.i.i2.i1584, align 8, !tbaa !104, !alias.scope !197
+  %494 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i1573 to %union.anon**
+  store %union.anon* %491, %union.anon** %494, align 8, !tbaa !107
+  store i64 0, i64* %_M_string_length.i20.i.i1583, align 8, !tbaa !104
+  store i8 0, i8* %arraydecay.i.i.i.i1575, align 1, !tbaa !87
+  %_M_p.i.i.i.i1586 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp108, i64 0, i32 0, i32 0
+  %495 = load i8*, i8** %_M_p.i.i.i.i1586, align 8, !tbaa !107
+  %cmp.i.i.i1588 = icmp eq i8* %495, %484
+  br i1 %cmp.i.i.i1588, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1590, label %if.then.i.i1589
+
+if.then.i.i1589:                                  ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1585
+  call void @_ZdlPv(i8* %495) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1590
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1590: ; preds = %if.then.i.i1589, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1585
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %481) #7
+  %_M_p.i.i1591 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_1_w_path, i64 0, i32 0, i32 0
+  %496 = load i8*, i8** %_M_p.i.i1591, align 8, !tbaa !107
+  %call111 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %496, i32 0, i32 1, i32 1, i32 512, i32 512)
+  %497 = bitcast %"class.std::__cxx11::basic_string"* %dense_1_b_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %497) #7
+  %498 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp112 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %498) #7
+  %499 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp112, i64 0, i32 2
+  %500 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp112 to %union.anon**
+  store %union.anon* %499, %union.anon** %500, align 8, !tbaa !103
+  %501 = bitcast %union.anon* %499 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %501, i8* nonnull getelementptr inbounds ([14 x i8], [14 x i8]* @.str.53, i64 0, i64 0), i64 13, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i1552 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp112, i64 0, i32 1
+  store i64 13, i64* %_M_string_length.i.i.i.i.i.i1552, align 8, !tbaa !104
+  %502 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp112, i64 0, i32 2, i32 1, i64 5
+  store i8 0, i8* %502, align 1, !tbaa !87
+  %503 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !104, !noalias !200
+  %504 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !107, !noalias !200
+  %call3.i.i.i1489 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp112, i64 0, i64 0, i8* %504, i64 %503) #7, !noalias !200
+  %505 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_1_b_path, i64 0, i32 2
+  %506 = bitcast %"class.std::__cxx11::basic_string"* %dense_1_b_path to %union.anon**
+  store %union.anon* %505, %union.anon** %506, align 8, !tbaa !103, !alias.scope !200
+  %_M_p.i.i23.i.i1490 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1489, i64 0, i32 0, i32 0
+  %507 = load i8*, i8** %_M_p.i.i23.i.i1490, align 8, !tbaa !107
+  %508 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1489, i64 0, i32 2
+  %arraydecay.i.i.i.i1491 = bitcast %union.anon* %508 to i8*
+  %cmp.i.i.i1492 = icmp eq i8* %507, %arraydecay.i.i.i.i1491
+  br i1 %cmp.i.i.i1492, label %if.then.i.i1494, label %if.else.i.i1498
+
+if.then.i.i1494:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1590
+  %arraydecay.i.i.i1493 = bitcast %union.anon* %505 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i1493, i8* %507, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1501
+
+if.else.i.i1498:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1590
+  %_M_p.i21.i.i1495 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_1_b_path, i64 0, i32 0, i32 0
+  store i8* %507, i8** %_M_p.i21.i.i1495, align 8, !tbaa !107, !alias.scope !200
+  %_M_allocated_capacity.i.i1496 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1489, i64 0, i32 2, i32 0
+  %509 = load i64, i64* %_M_allocated_capacity.i.i1496, align 8, !tbaa !63
+  %_M_allocated_capacity.i.i.i1497 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_1_b_path, i64 0, i32 2, i32 0
+  store i64 %509, i64* %_M_allocated_capacity.i.i.i1497, align 8, !tbaa !63, !alias.scope !200
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1501
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1501: ; preds = %if.else.i.i1498, %if.then.i.i1494
+  %_M_string_length.i20.i.i1499 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1489, i64 0, i32 1
+  %510 = load i64, i64* %_M_string_length.i20.i.i1499, align 8, !tbaa !104
+  %_M_string_length.i.i2.i1500 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_1_b_path, i64 0, i32 1
+  store i64 %510, i64* %_M_string_length.i.i2.i1500, align 8, !tbaa !104, !alias.scope !200
+  %511 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i1489 to %union.anon**
+  store %union.anon* %508, %union.anon** %511, align 8, !tbaa !107
+  store i64 0, i64* %_M_string_length.i20.i.i1499, align 8, !tbaa !104
+  store i8 0, i8* %arraydecay.i.i.i.i1491, align 1, !tbaa !87
+  %_M_p.i.i.i.i1482 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp112, i64 0, i32 0, i32 0
+  %512 = load i8*, i8** %_M_p.i.i.i.i1482, align 8, !tbaa !107
+  %cmp.i.i.i1484 = icmp eq i8* %512, %501
+  br i1 %cmp.i.i.i1484, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1486, label %if.then.i.i1485
+
+if.then.i.i1485:                                  ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1501
+  call void @_ZdlPv(i8* %512) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1486
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1486: ; preds = %if.then.i.i1485, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1501
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %498) #7
+  %_M_p.i.i1481 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_1_b_path, i64 0, i32 0, i32 0
+  %513 = load i8*, i8** %_M_p.i.i1481, align 8, !tbaa !107
+  %call115 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %513, i32 0, i32 1, i32 512, i32 1, i32 1)
+  %514 = bitcast %"class.std::__cxx11::basic_string"* %dense_2_w_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %514) #7
+  %515 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp116 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %515) #7
+  %516 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp116, i64 0, i32 2
+  %517 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp116 to %union.anon**
+  store %union.anon* %516, %union.anon** %517, align 8, !tbaa !103
+  %518 = bitcast %union.anon* %516 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %518, i8* nonnull getelementptr inbounds ([14 x i8], [14 x i8]* @.str.54, i64 0, i64 0), i64 13, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i1404 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp116, i64 0, i32 1
+  store i64 13, i64* %_M_string_length.i.i.i.i.i.i1404, align 8, !tbaa !104
+  %519 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp116, i64 0, i32 2, i32 1, i64 5
+  store i8 0, i8* %519, align 1, !tbaa !87
+  %520 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !104, !noalias !203
+  %521 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !107, !noalias !203
+  %call3.i.i.i1378 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp116, i64 0, i64 0, i8* %521, i64 %520) #7, !noalias !203
+  %522 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_2_w_path, i64 0, i32 2
+  %523 = bitcast %"class.std::__cxx11::basic_string"* %dense_2_w_path to %union.anon**
+  store %union.anon* %522, %union.anon** %523, align 8, !tbaa !103, !alias.scope !203
+  %_M_p.i.i23.i.i1379 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1378, i64 0, i32 0, i32 0
+  %524 = load i8*, i8** %_M_p.i.i23.i.i1379, align 8, !tbaa !107
+  %525 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1378, i64 0, i32 2
+  %arraydecay.i.i.i.i1380 = bitcast %union.anon* %525 to i8*
+  %cmp.i.i.i1381 = icmp eq i8* %524, %arraydecay.i.i.i.i1380
+  br i1 %cmp.i.i.i1381, label %if.then.i.i1383, label %if.else.i.i1387
+
+if.then.i.i1383:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1486
+  %arraydecay.i.i.i1382 = bitcast %union.anon* %522 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i1382, i8* %524, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1390
+
+if.else.i.i1387:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1486
+  %_M_p.i21.i.i1384 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_2_w_path, i64 0, i32 0, i32 0
+  store i8* %524, i8** %_M_p.i21.i.i1384, align 8, !tbaa !107, !alias.scope !203
+  %_M_allocated_capacity.i.i1385 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1378, i64 0, i32 2, i32 0
+  %526 = load i64, i64* %_M_allocated_capacity.i.i1385, align 8, !tbaa !63
+  %_M_allocated_capacity.i.i.i1386 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_2_w_path, i64 0, i32 2, i32 0
+  store i64 %526, i64* %_M_allocated_capacity.i.i.i1386, align 8, !tbaa !63, !alias.scope !203
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1390
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1390: ; preds = %if.else.i.i1387, %if.then.i.i1383
+  %_M_string_length.i20.i.i1388 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1378, i64 0, i32 1
+  %527 = load i64, i64* %_M_string_length.i20.i.i1388, align 8, !tbaa !104
+  %_M_string_length.i.i2.i1389 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_2_w_path, i64 0, i32 1
+  store i64 %527, i64* %_M_string_length.i.i2.i1389, align 8, !tbaa !104, !alias.scope !203
+  %528 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i1378 to %union.anon**
+  store %union.anon* %525, %union.anon** %528, align 8, !tbaa !107
+  store i64 0, i64* %_M_string_length.i20.i.i1388, align 8, !tbaa !104
+  store i8 0, i8* %arraydecay.i.i.i.i1380, align 1, !tbaa !87
+  %_M_p.i.i.i.i1334 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp116, i64 0, i32 0, i32 0
+  %529 = load i8*, i8** %_M_p.i.i.i.i1334, align 8, !tbaa !107
+  %cmp.i.i.i1336 = icmp eq i8* %529, %518
+  br i1 %cmp.i.i.i1336, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1338, label %if.then.i.i1337
+
+if.then.i.i1337:                                  ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1390
+  call void @_ZdlPv(i8* %529) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1338
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1338: ; preds = %if.then.i.i1337, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1390
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %515) #7
+  %_M_p.i.i1333 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_2_w_path, i64 0, i32 0, i32 0
+  %530 = load i8*, i8** %_M_p.i.i1333, align 8, !tbaa !107
+  %call119 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %530, i32 0, i32 1, i32 1, i32 512, i32 10)
+  %531 = bitcast %"class.std::__cxx11::basic_string"* %dense_2_b_path to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %531) #7
+  %532 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp120 to i8*
+  call void @llvm.lifetime.start(i64 32, i8* nonnull %532) #7
+  %533 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp120, i64 0, i32 2
+  %534 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp120 to %union.anon**
+  store %union.anon* %533, %union.anon** %534, align 8, !tbaa !103
+  %535 = bitcast %union.anon* %533 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %535, i8* nonnull getelementptr inbounds ([14 x i8], [14 x i8]* @.str.55, i64 0, i64 0), i64 13, i32 1, i1 false) #7
+  %_M_string_length.i.i.i.i.i.i1293 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp120, i64 0, i32 1
+  store i64 13, i64* %_M_string_length.i.i.i.i.i.i1293, align 8, !tbaa !104
+  %536 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp120, i64 0, i32 2, i32 1, i64 5
+  store i8 0, i8* %536, align 1, !tbaa !87
+  %537 = load i64, i64* %_M_string_length.i.i.i.i.i.i, align 8, !tbaa !104, !noalias !206
+  %538 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !107, !noalias !206
+  %call3.i.i.i1230 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp120, i64 0, i64 0, i8* %538, i64 %537) #7, !noalias !206
+  %539 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_2_b_path, i64 0, i32 2
+  %540 = bitcast %"class.std::__cxx11::basic_string"* %dense_2_b_path to %union.anon**
+  store %union.anon* %539, %union.anon** %540, align 8, !tbaa !103, !alias.scope !206
+  %_M_p.i.i23.i.i1231 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1230, i64 0, i32 0, i32 0
+  %541 = load i8*, i8** %_M_p.i.i23.i.i1231, align 8, !tbaa !107
+  %542 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1230, i64 0, i32 2
+  %arraydecay.i.i.i.i1232 = bitcast %union.anon* %542 to i8*
+  %cmp.i.i.i1233 = icmp eq i8* %541, %arraydecay.i.i.i.i1232
+  br i1 %cmp.i.i.i1233, label %if.then.i.i1235, label %if.else.i.i1239
+
+if.then.i.i1235:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1338
+  %arraydecay.i.i.i1234 = bitcast %union.anon* %539 to i8*
+  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %arraydecay.i.i.i1234, i8* %541, i64 16, i32 1, i1 false) #7
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1242
+
+if.else.i.i1239:                                  ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1338
+  %_M_p.i21.i.i1236 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_2_b_path, i64 0, i32 0, i32 0
+  store i8* %541, i8** %_M_p.i21.i.i1236, align 8, !tbaa !107, !alias.scope !206
+  %_M_allocated_capacity.i.i1237 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1230, i64 0, i32 2, i32 0
+  %543 = load i64, i64* %_M_allocated_capacity.i.i1237, align 8, !tbaa !63
+  %_M_allocated_capacity.i.i.i1238 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_2_b_path, i64 0, i32 2, i32 0
+  store i64 %543, i64* %_M_allocated_capacity.i.i.i1238, align 8, !tbaa !63, !alias.scope !206
+  br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1242
+
+_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1242: ; preds = %if.else.i.i1239, %if.then.i.i1235
+  %_M_string_length.i20.i.i1240 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i.i1230, i64 0, i32 1
+  %544 = load i64, i64* %_M_string_length.i20.i.i1240, align 8, !tbaa !104
+  %_M_string_length.i.i2.i1241 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_2_b_path, i64 0, i32 1
+  store i64 %544, i64* %_M_string_length.i.i2.i1241, align 8, !tbaa !104, !alias.scope !206
+  %545 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i.i1230 to %union.anon**
+  store %union.anon* %542, %union.anon** %545, align 8, !tbaa !107
+  store i64 0, i64* %_M_string_length.i20.i.i1240, align 8, !tbaa !104
+  store i8 0, i8* %arraydecay.i.i.i.i1232, align 1, !tbaa !87
+  %_M_p.i.i.i.i1223 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp120, i64 0, i32 0, i32 0
+  %546 = load i8*, i8** %_M_p.i.i.i.i1223, align 8, !tbaa !107
+  %cmp.i.i.i1225 = icmp eq i8* %546, %535
+  br i1 %cmp.i.i.i1225, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1227, label %if.then.i.i1226
+
+if.then.i.i1226:                                  ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1242
+  call void @_ZdlPv(i8* %546) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1227
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1227: ; preds = %if.then.i.i1226, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_.exit1242
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %532) #7
+  %_M_p.i.i1222 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %dense_2_b_path, i64 0, i32 0, i32 0
+  %547 = load i8*, i8** %_M_p.i.i1222, align 8, !tbaa !107
+  %call123 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %547, i32 0, i32 1, i32 10, i32 1, i32 1)
+  %_M_p.i.i1184 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %input_path, i64 0, i32 0, i32 0
+  %548 = load i8*, i8** %_M_p.i.i1184, align 8, !tbaa !107
+  %call125 = call %struct.Tensor* @_Z18readTrainedWeightsPKciiiii(i8* %548, i32 0, i32 2000, i32 3, i32 32, i32 32)
+  %_M_p.i.i1183 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %labels_path, i64 0, i32 0, i32 0
+  %549 = load i8*, i8** %_M_p.i.i1183, align 8, !tbaa !107
+  %call.i = call noalias i8* @malloc(i64 2000) #7
+  %call1.i = call %struct._IO_FILE* @fopen(i8* %549, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0)) #7
+  %cmp.i = icmp eq %struct._IO_FILE* %call1.i, null
+  br i1 %cmp.i, label %if.then.i, label %_Z10readLabelsPKci.exit
+
+if.then.i:                                        ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1227
+  %call2.i = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.18, i64 0, i64 0), i8* %549) #7
+  call void @abort() #8
+  unreachable
+
+_Z10readLabelsPKci.exit:                          ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1227
+  %call5.i = call i64 @fread(i8* %call.i, i64 1, i64 2000, %struct._IO_FILE* nonnull %call1.i) #7
+  %call6.i = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.19, i64 0, i64 0), i64 %call5.i) #7
+  call void @llvm.visc.init()
+  %call128 = call noalias i8* @malloc(i64 512) #7
+  %input129 = bitcast i8* %call128 to i8**
+  %550 = bitcast i8* %call128 to %struct.Tensor**
+  store %struct.Tensor* %call125, %struct.Tensor** %550, align 1, !tbaa !209
+  %input_bytes = getelementptr inbounds i8, i8* %call128, i64 8
+  %551 = bitcast i8* %input_bytes to i64*
+  store i64 0, i64* %551, align 1, !tbaa !212
+  %conv2d_1_w130 = getelementptr inbounds i8, i8* %call128, i64 16
+  %552 = bitcast i8* %conv2d_1_w130 to %struct.Tensor**
+  store %struct.Tensor* %call7, %struct.Tensor** %552, align 1, !tbaa !213
+  %conv2d_1_w_bytes = getelementptr inbounds i8, i8* %call128, i64 24
+  %553 = bitcast i8* %conv2d_1_w_bytes to i64*
+  store i64 0, i64* %553, align 1, !tbaa !214
+  %conv2d_1_b131 = getelementptr inbounds i8, i8* %call128, i64 32
+  %554 = bitcast i8* %conv2d_1_b131 to %struct.Tensor**
+  store %struct.Tensor* %call11, %struct.Tensor** %554, align 1, !tbaa !215
+  %conv2d_1_b_bytes = getelementptr inbounds i8, i8* %call128, i64 40
+  %555 = bitcast i8* %conv2d_1_b_bytes to i64*
+  store i64 0, i64* %555, align 1, !tbaa !216
+  %conv2d_2_w132 = getelementptr inbounds i8, i8* %call128, i64 48
+  %556 = bitcast i8* %conv2d_2_w132 to %struct.Tensor**
+  store %struct.Tensor* %call15, %struct.Tensor** %556, align 1, !tbaa !217
+  %conv2d_2_w_bytes = getelementptr inbounds i8, i8* %call128, i64 56
+  %557 = bitcast i8* %conv2d_2_w_bytes to i64*
+  store i64 0, i64* %557, align 1, !tbaa !218
+  %conv2d_2_b133 = getelementptr inbounds i8, i8* %call128, i64 64
+  %558 = bitcast i8* %conv2d_2_b133 to %struct.Tensor**
+  store %struct.Tensor* %call19, %struct.Tensor** %558, align 1, !tbaa !219
+  %conv2d_2_b_bytes = getelementptr inbounds i8, i8* %call128, i64 72
+  %559 = bitcast i8* %conv2d_2_b_bytes to i64*
+  store i64 0, i64* %559, align 1, !tbaa !220
+  %conv2d_3_w134 = getelementptr inbounds i8, i8* %call128, i64 80
+  %560 = bitcast i8* %conv2d_3_w134 to %struct.Tensor**
+  store %struct.Tensor* %call23, %struct.Tensor** %560, align 1, !tbaa !221
+  %conv2d_3_w_bytes = getelementptr inbounds i8, i8* %call128, i64 88
+  %561 = bitcast i8* %conv2d_3_w_bytes to i64*
+  store i64 0, i64* %561, align 1, !tbaa !222
+  %conv2d_3_b135 = getelementptr inbounds i8, i8* %call128, i64 96
+  %562 = bitcast i8* %conv2d_3_b135 to %struct.Tensor**
+  store %struct.Tensor* %call27, %struct.Tensor** %562, align 1, !tbaa !223
+  %conv2d_3_b_bytes = getelementptr inbounds i8, i8* %call128, i64 104
+  %563 = bitcast i8* %conv2d_3_b_bytes to i64*
+  store i64 0, i64* %563, align 1, !tbaa !224
+  %conv2d_4_w136 = getelementptr inbounds i8, i8* %call128, i64 112
+  %564 = bitcast i8* %conv2d_4_w136 to %struct.Tensor**
+  store %struct.Tensor* %call31, %struct.Tensor** %564, align 1, !tbaa !225
+  %conv2d_4_w_bytes = getelementptr inbounds i8, i8* %call128, i64 120
+  %565 = bitcast i8* %conv2d_4_w_bytes to i64*
+  store i64 0, i64* %565, align 1, !tbaa !226
+  %conv2d_4_b137 = getelementptr inbounds i8, i8* %call128, i64 128
+  %566 = bitcast i8* %conv2d_4_b137 to %struct.Tensor**
+  store %struct.Tensor* %call35, %struct.Tensor** %566, align 1, !tbaa !227
+  %conv2d_4_b_bytes = getelementptr inbounds i8, i8* %call128, i64 136
+  %567 = bitcast i8* %conv2d_4_b_bytes to i64*
+  store i64 0, i64* %567, align 1, !tbaa !228
+  %conv2d_5_w138 = getelementptr inbounds i8, i8* %call128, i64 144
+  %568 = bitcast i8* %conv2d_5_w138 to %struct.Tensor**
+  store %struct.Tensor* %call39, %struct.Tensor** %568, align 1, !tbaa !229
+  %conv2d_5_w_bytes = getelementptr inbounds i8, i8* %call128, i64 152
+  %569 = bitcast i8* %conv2d_5_w_bytes to i64*
+  store i64 0, i64* %569, align 1, !tbaa !230
+  %conv2d_5_b139 = getelementptr inbounds i8, i8* %call128, i64 160
+  %570 = bitcast i8* %conv2d_5_b139 to %struct.Tensor**
+  store %struct.Tensor* %call43, %struct.Tensor** %570, align 1, !tbaa !231
+  %conv2d_5_b_bytes = getelementptr inbounds i8, i8* %call128, i64 168
+  %571 = bitcast i8* %conv2d_5_b_bytes to i64*
+  store i64 0, i64* %571, align 1, !tbaa !232
+  %conv2d_6_w140 = getelementptr inbounds i8, i8* %call128, i64 176
+  %572 = bitcast i8* %conv2d_6_w140 to %struct.Tensor**
+  store %struct.Tensor* %call47, %struct.Tensor** %572, align 1, !tbaa !233
+  %conv2d_6_w_bytes = getelementptr inbounds i8, i8* %call128, i64 184
+  %573 = bitcast i8* %conv2d_6_w_bytes to i64*
+  store i64 0, i64* %573, align 1, !tbaa !234
+  %conv2d_6_b141 = getelementptr inbounds i8, i8* %call128, i64 192
+  %574 = bitcast i8* %conv2d_6_b141 to %struct.Tensor**
+  store %struct.Tensor* %call51, %struct.Tensor** %574, align 1, !tbaa !235
+  %conv2d_6_b_bytes = getelementptr inbounds i8, i8* %call128, i64 200
+  %575 = bitcast i8* %conv2d_6_b_bytes to i64*
+  store i64 0, i64* %575, align 1, !tbaa !236
+  %conv2d_7_w142 = getelementptr inbounds i8, i8* %call128, i64 208
+  %576 = bitcast i8* %conv2d_7_w142 to %struct.Tensor**
+  store %struct.Tensor* %call55, %struct.Tensor** %576, align 1, !tbaa !237
+  %conv2d_7_w_bytes = getelementptr inbounds i8, i8* %call128, i64 216
+  %577 = bitcast i8* %conv2d_7_w_bytes to i64*
+  store i64 0, i64* %577, align 1, !tbaa !238
+  %conv2d_7_b143 = getelementptr inbounds i8, i8* %call128, i64 224
+  %578 = bitcast i8* %conv2d_7_b143 to %struct.Tensor**
+  store %struct.Tensor* %call59, %struct.Tensor** %578, align 1, !tbaa !239
+  %conv2d_7_b_bytes = getelementptr inbounds i8, i8* %call128, i64 232
+  %579 = bitcast i8* %conv2d_7_b_bytes to i64*
+  store i64 0, i64* %579, align 1, !tbaa !240
+  %conv2d_8_w144 = getelementptr inbounds i8, i8* %call128, i64 240
+  %580 = bitcast i8* %conv2d_8_w144 to %struct.Tensor**
+  store %struct.Tensor* %call63, %struct.Tensor** %580, align 1, !tbaa !241
+  %conv2d_8_w_bytes = getelementptr inbounds i8, i8* %call128, i64 248
+  %581 = bitcast i8* %conv2d_8_w_bytes to i64*
+  store i64 0, i64* %581, align 1, !tbaa !242
+  %conv2d_8_b145 = getelementptr inbounds i8, i8* %call128, i64 256
+  %582 = bitcast i8* %conv2d_8_b145 to %struct.Tensor**
+  store %struct.Tensor* %call67, %struct.Tensor** %582, align 1, !tbaa !243
+  %conv2d_8_b_bytes = getelementptr inbounds i8, i8* %call128, i64 264
+  %583 = bitcast i8* %conv2d_8_b_bytes to i64*
+  store i64 0, i64* %583, align 1, !tbaa !244
+  %conv2d_9_w146 = getelementptr inbounds i8, i8* %call128, i64 272
+  %584 = bitcast i8* %conv2d_9_w146 to %struct.Tensor**
+  store %struct.Tensor* %call71, %struct.Tensor** %584, align 1, !tbaa !245
+  %conv2d_9_w_bytes = getelementptr inbounds i8, i8* %call128, i64 280
+  %585 = bitcast i8* %conv2d_9_w_bytes to i64*
+  store i64 0, i64* %585, align 1, !tbaa !246
+  %conv2d_9_b147 = getelementptr inbounds i8, i8* %call128, i64 288
+  %586 = bitcast i8* %conv2d_9_b147 to %struct.Tensor**
+  store %struct.Tensor* %call75, %struct.Tensor** %586, align 1, !tbaa !247
+  %conv2d_9_b_bytes = getelementptr inbounds i8, i8* %call128, i64 296
+  %587 = bitcast i8* %conv2d_9_b_bytes to i64*
+  store i64 0, i64* %587, align 1, !tbaa !248
+  %conv2d_10_w148 = getelementptr inbounds i8, i8* %call128, i64 304
+  %588 = bitcast i8* %conv2d_10_w148 to %struct.Tensor**
+  store %struct.Tensor* %call79, %struct.Tensor** %588, align 1, !tbaa !249
+  %conv2d_10_w_bytes = getelementptr inbounds i8, i8* %call128, i64 312
+  %589 = bitcast i8* %conv2d_10_w_bytes to i64*
+  store i64 0, i64* %589, align 1, !tbaa !250
+  %conv2d_10_b149 = getelementptr inbounds i8, i8* %call128, i64 320
+  %590 = bitcast i8* %conv2d_10_b149 to %struct.Tensor**
+  store %struct.Tensor* %call83, %struct.Tensor** %590, align 1, !tbaa !251
+  %conv2d_10_b_bytes = getelementptr inbounds i8, i8* %call128, i64 328
+  %591 = bitcast i8* %conv2d_10_b_bytes to i64*
+  store i64 0, i64* %591, align 1, !tbaa !252
+  %conv2d_11_w150 = getelementptr inbounds i8, i8* %call128, i64 336
+  %592 = bitcast i8* %conv2d_11_w150 to %struct.Tensor**
+  store %struct.Tensor* %call87, %struct.Tensor** %592, align 1, !tbaa !253
+  %conv2d_11_w_bytes = getelementptr inbounds i8, i8* %call128, i64 344
+  %593 = bitcast i8* %conv2d_11_w_bytes to i64*
+  store i64 0, i64* %593, align 1, !tbaa !254
+  %conv2d_11_b151 = getelementptr inbounds i8, i8* %call128, i64 352
+  %594 = bitcast i8* %conv2d_11_b151 to %struct.Tensor**
+  store %struct.Tensor* %call91, %struct.Tensor** %594, align 1, !tbaa !255
+  %conv2d_11_b_bytes = getelementptr inbounds i8, i8* %call128, i64 360
+  %595 = bitcast i8* %conv2d_11_b_bytes to i64*
+  store i64 0, i64* %595, align 1, !tbaa !256
+  %conv2d_12_w152 = getelementptr inbounds i8, i8* %call128, i64 368
+  %596 = bitcast i8* %conv2d_12_w152 to %struct.Tensor**
+  store %struct.Tensor* %call95, %struct.Tensor** %596, align 1, !tbaa !257
+  %conv2d_12_w_bytes = getelementptr inbounds i8, i8* %call128, i64 376
+  %597 = bitcast i8* %conv2d_12_w_bytes to i64*
+  store i64 0, i64* %597, align 1, !tbaa !258
+  %conv2d_12_b153 = getelementptr inbounds i8, i8* %call128, i64 384
+  %598 = bitcast i8* %conv2d_12_b153 to %struct.Tensor**
+  store %struct.Tensor* %call99, %struct.Tensor** %598, align 1, !tbaa !259
+  %conv2d_12_b_bytes = getelementptr inbounds i8, i8* %call128, i64 392
+  %599 = bitcast i8* %conv2d_12_b_bytes to i64*
+  store i64 0, i64* %599, align 1, !tbaa !260
+  %conv2d_13_w154 = getelementptr inbounds i8, i8* %call128, i64 400
+  %600 = bitcast i8* %conv2d_13_w154 to %struct.Tensor**
+  store %struct.Tensor* %call103, %struct.Tensor** %600, align 1, !tbaa !261
+  %conv2d_13_w_bytes = getelementptr inbounds i8, i8* %call128, i64 408
+  %601 = bitcast i8* %conv2d_13_w_bytes to i64*
+  store i64 0, i64* %601, align 1, !tbaa !262
+  %conv2d_13_b155 = getelementptr inbounds i8, i8* %call128, i64 416
+  %602 = bitcast i8* %conv2d_13_b155 to %struct.Tensor**
+  store %struct.Tensor* %call107, %struct.Tensor** %602, align 1, !tbaa !263
+  %conv2d_13_b_bytes = getelementptr inbounds i8, i8* %call128, i64 424
+  %603 = bitcast i8* %conv2d_13_b_bytes to i64*
+  store i64 0, i64* %603, align 1, !tbaa !264
+  %dense_1_w156 = getelementptr inbounds i8, i8* %call128, i64 432
+  %604 = bitcast i8* %dense_1_w156 to %struct.Tensor**
+  store %struct.Tensor* %call111, %struct.Tensor** %604, align 1, !tbaa !265
+  %dense_1_w_bytes = getelementptr inbounds i8, i8* %call128, i64 440
+  %605 = bitcast i8* %dense_1_w_bytes to i64*
+  store i64 0, i64* %605, align 1, !tbaa !266
+  %dense_1_b157 = getelementptr inbounds i8, i8* %call128, i64 448
+  %606 = bitcast i8* %dense_1_b157 to %struct.Tensor**
+  store %struct.Tensor* %call115, %struct.Tensor** %606, align 1, !tbaa !267
+  %dense_1_b_bytes = getelementptr inbounds i8, i8* %call128, i64 456
+  %607 = bitcast i8* %dense_1_b_bytes to i64*
+  store i64 0, i64* %607, align 1, !tbaa !268
+  %dense_2_w158 = getelementptr inbounds i8, i8* %call128, i64 464
+  %608 = bitcast i8* %dense_2_w158 to %struct.Tensor**
+  store %struct.Tensor* %call119, %struct.Tensor** %608, align 1, !tbaa !269
+  %dense_2_w_bytes = getelementptr inbounds i8, i8* %call128, i64 472
+  %609 = bitcast i8* %dense_2_w_bytes to i64*
+  store i64 0, i64* %609, align 1, !tbaa !270
+  %dense_2_b159 = getelementptr inbounds i8, i8* %call128, i64 480
+  %610 = bitcast i8* %dense_2_b159 to %struct.Tensor**
+  store %struct.Tensor* %call123, %struct.Tensor** %610, align 1, !tbaa !271
+  %dense_2_b_bytes = getelementptr inbounds i8, i8* %call128, i64 488
+  %611 = bitcast i8* %dense_2_b_bytes to i64*
+  store i64 0, i64* %611, align 1, !tbaa !272
+  %graphID = call i8* @llvm.visc.launch(i8* bitcast (%struct.out._Z4rootPvmS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_m (i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64)* @_Z4rootPvmS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_m_cloned to i8*), i8* %call128, i1 false)
+  call void @llvm.visc.wait(i8* %graphID)
+  %612 = load i8*, i8** %input129, align 1, !tbaa !209
+  call void @hpvm_request_tensor(i8* %612, i32 0) #7
+  call void @llvm.visc.cleanup()
+  call void @_Z16computeAccuracy2PhiPv(i8* %call.i, i32 undef, i8* %612)
+  %613 = load i8*, i8** %_M_p.i.i1222, align 8, !tbaa !107
+  %arraydecay.i.i.i.i1031 = bitcast %union.anon* %539 to i8*
+  %cmp.i.i.i1032 = icmp eq i8* %613, %arraydecay.i.i.i.i1031
+  br i1 %cmp.i.i.i1032, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1034, label %if.then.i.i1033
+
+if.then.i.i1033:                                  ; preds = %_Z10readLabelsPKci.exit
+  call void @_ZdlPv(i8* %613) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1034
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1034: ; preds = %if.then.i.i1033, %_Z10readLabelsPKci.exit
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %531) #7
+  %614 = load i8*, i8** %_M_p.i.i1333, align 8, !tbaa !107
+  %arraydecay.i.i.i.i989 = bitcast %union.anon* %522 to i8*
+  %cmp.i.i.i990 = icmp eq i8* %614, %arraydecay.i.i.i.i989
+  br i1 %cmp.i.i.i990, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit992, label %if.then.i.i991
+
+if.then.i.i991:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1034
+  call void @_ZdlPv(i8* %614) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit992
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit992: ; preds = %if.then.i.i991, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1034
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %514) #7
+  %615 = load i8*, i8** %_M_p.i.i1481, align 8, !tbaa !107
+  %arraydecay.i.i.i.i984 = bitcast %union.anon* %505 to i8*
+  %cmp.i.i.i985 = icmp eq i8* %615, %arraydecay.i.i.i.i984
+  br i1 %cmp.i.i.i985, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit987, label %if.then.i.i986
+
+if.then.i.i986:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit992
+  call void @_ZdlPv(i8* %615) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit987
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit987: ; preds = %if.then.i.i986, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit992
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %497) #7
+  %616 = load i8*, i8** %_M_p.i.i1591, align 8, !tbaa !107
+  %arraydecay.i.i.i.i942 = bitcast %union.anon* %488 to i8*
+  %cmp.i.i.i943 = icmp eq i8* %616, %arraydecay.i.i.i.i942
+  br i1 %cmp.i.i.i943, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit945, label %if.then.i.i944
+
+if.then.i.i944:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit987
+  call void @_ZdlPv(i8* %616) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit945
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit945: ; preds = %if.then.i.i944, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit987
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %480) #7
+  %617 = load i8*, i8** %_M_p.i.i1538, align 8, !tbaa !107
+  %arraydecay.i.i.i.i937 = bitcast %union.anon* %471 to i8*
+  %cmp.i.i.i938 = icmp eq i8* %617, %arraydecay.i.i.i.i937
+  br i1 %cmp.i.i.i938, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit940, label %if.then.i.i939
+
+if.then.i.i939:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit945
+  call void @_ZdlPv(i8* %617) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit940
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit940: ; preds = %if.then.i.i939, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit945
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %463) #7
+  %618 = load i8*, i8** %_M_p.i.i1480, align 8, !tbaa !107
+  %arraydecay.i.i.i.i895 = bitcast %union.anon* %454 to i8*
+  %cmp.i.i.i896 = icmp eq i8* %618, %arraydecay.i.i.i.i895
+  br i1 %cmp.i.i.i896, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit898, label %if.then.i.i897
+
+if.then.i.i897:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit940
+  call void @_ZdlPv(i8* %618) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit898
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit898: ; preds = %if.then.i.i897, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit940
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %446) #7
+  %619 = load i8*, i8** %_M_p.i.i1443, align 8, !tbaa !107
+  %arraydecay.i.i.i.i890 = bitcast %union.anon* %437 to i8*
+  %cmp.i.i.i891 = icmp eq i8* %619, %arraydecay.i.i.i.i890
+  br i1 %cmp.i.i.i891, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit893, label %if.then.i.i892
+
+if.then.i.i892:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit898
+  call void @_ZdlPv(i8* %619) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit893
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit893: ; preds = %if.then.i.i892, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit898
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %429) #7
+  %620 = load i8*, i8** %_M_p.i.i1375, align 8, !tbaa !107
+  %arraydecay.i.i.i.i848 = bitcast %union.anon* %420 to i8*
+  %cmp.i.i.i849 = icmp eq i8* %620, %arraydecay.i.i.i.i848
+  br i1 %cmp.i.i.i849, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit851, label %if.then.i.i850
+
+if.then.i.i850:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit893
+  call void @_ZdlPv(i8* %620) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit851
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit851: ; preds = %if.then.i.i850, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit893
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %412) #7
+  %621 = load i8*, i8** %_M_p.i.i1332, align 8, !tbaa !107
+  %arraydecay.i.i.i.i843 = bitcast %union.anon* %403 to i8*
+  %cmp.i.i.i844 = icmp eq i8* %621, %arraydecay.i.i.i.i843
+  br i1 %cmp.i.i.i844, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit846, label %if.then.i.i845
+
+if.then.i.i845:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit851
+  call void @_ZdlPv(i8* %621) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit846
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit846: ; preds = %if.then.i.i845, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit851
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %395) #7
+  %622 = load i8*, i8** %_M_p.i.i1279, align 8, !tbaa !107
+  %arraydecay.i.i.i.i801 = bitcast %union.anon* %386 to i8*
+  %cmp.i.i.i802 = icmp eq i8* %622, %arraydecay.i.i.i.i801
+  br i1 %cmp.i.i.i802, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit804, label %if.then.i.i803
+
+if.then.i.i803:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit846
+  call void @_ZdlPv(i8* %622) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit804
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit804: ; preds = %if.then.i.i803, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit846
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %378) #7
+  %623 = load i8*, i8** %_M_p.i.i1221, align 8, !tbaa !107
+  %arraydecay.i.i.i.i796 = bitcast %union.anon* %369 to i8*
+  %cmp.i.i.i797 = icmp eq i8* %623, %arraydecay.i.i.i.i796
+  br i1 %cmp.i.i.i797, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit799, label %if.then.i.i798
+
+if.then.i.i798:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit804
+  call void @_ZdlPv(i8* %623) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit799
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit799: ; preds = %if.then.i.i798, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit804
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %361) #7
+  %624 = load i8*, i8** %_M_p.i.i1182, align 8, !tbaa !107
+  %arraydecay.i.i.i.i754 = bitcast %union.anon* %352 to i8*
+  %cmp.i.i.i755 = icmp eq i8* %624, %arraydecay.i.i.i.i754
+  br i1 %cmp.i.i.i755, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit757, label %if.then.i.i756
+
+if.then.i.i756:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit799
+  call void @_ZdlPv(i8* %624) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit757
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit757: ; preds = %if.then.i.i756, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit799
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %344) #7
+  %625 = load i8*, i8** %_M_p.i.i1145, align 8, !tbaa !107
+  %arraydecay.i.i.i.i749 = bitcast %union.anon* %335 to i8*
+  %cmp.i.i.i750 = icmp eq i8* %625, %arraydecay.i.i.i.i749
+  br i1 %cmp.i.i.i750, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit752, label %if.then.i.i751
+
+if.then.i.i751:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit757
+  call void @_ZdlPv(i8* %625) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit752
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit752: ; preds = %if.then.i.i751, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit757
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %327) #7
+  %626 = load i8*, i8** %_M_p.i.i1108, align 8, !tbaa !107
+  %arraydecay.i.i.i.i707 = bitcast %union.anon* %318 to i8*
+  %cmp.i.i.i708 = icmp eq i8* %626, %arraydecay.i.i.i.i707
+  br i1 %cmp.i.i.i708, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit710, label %if.then.i.i709
+
+if.then.i.i709:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit752
+  call void @_ZdlPv(i8* %626) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit710
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit710: ; preds = %if.then.i.i709, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit752
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %310) #7
+  %627 = load i8*, i8** %_M_p.i.i1071, align 8, !tbaa !107
+  %arraydecay.i.i.i.i702 = bitcast %union.anon* %301 to i8*
+  %cmp.i.i.i703 = icmp eq i8* %627, %arraydecay.i.i.i.i702
+  br i1 %cmp.i.i.i703, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit705, label %if.then.i.i704
+
+if.then.i.i704:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit710
+  call void @_ZdlPv(i8* %627) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit705
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit705: ; preds = %if.then.i.i704, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit710
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %293) #7
+  %628 = load i8*, i8** %_M_p.i.i1029, align 8, !tbaa !107
+  %arraydecay.i.i.i.i660 = bitcast %union.anon* %284 to i8*
+  %cmp.i.i.i661 = icmp eq i8* %628, %arraydecay.i.i.i.i660
+  br i1 %cmp.i.i.i661, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit663, label %if.then.i.i662
+
+if.then.i.i662:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit705
+  call void @_ZdlPv(i8* %628) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit663
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit663: ; preds = %if.then.i.i662, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit705
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %276) #7
+  %629 = load i8*, i8** %_M_p.i.i982, align 8, !tbaa !107
+  %arraydecay.i.i.i.i655 = bitcast %union.anon* %267 to i8*
+  %cmp.i.i.i656 = icmp eq i8* %629, %arraydecay.i.i.i.i655
+  br i1 %cmp.i.i.i656, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit658, label %if.then.i.i657
+
+if.then.i.i657:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit663
+  call void @_ZdlPv(i8* %629) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit658
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit658: ; preds = %if.then.i.i657, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit663
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %259) #7
+  %630 = load i8*, i8** %_M_p.i.i935, align 8, !tbaa !107
+  %arraydecay.i.i.i.i613 = bitcast %union.anon* %250 to i8*
+  %cmp.i.i.i614 = icmp eq i8* %630, %arraydecay.i.i.i.i613
+  br i1 %cmp.i.i.i614, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit616, label %if.then.i.i615
+
+if.then.i.i615:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit658
+  call void @_ZdlPv(i8* %630) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit616
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit616: ; preds = %if.then.i.i615, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit658
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %242) #7
+  %631 = load i8*, i8** %_M_p.i.i888, align 8, !tbaa !107
+  %arraydecay.i.i.i.i608 = bitcast %union.anon* %233 to i8*
+  %cmp.i.i.i609 = icmp eq i8* %631, %arraydecay.i.i.i.i608
+  br i1 %cmp.i.i.i609, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit611, label %if.then.i.i610
+
+if.then.i.i610:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit616
+  call void @_ZdlPv(i8* %631) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit611
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit611: ; preds = %if.then.i.i610, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit616
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %225) #7
+  %632 = load i8*, i8** %_M_p.i.i841, align 8, !tbaa !107
+  %arraydecay.i.i.i.i566 = bitcast %union.anon* %216 to i8*
+  %cmp.i.i.i567 = icmp eq i8* %632, %arraydecay.i.i.i.i566
+  br i1 %cmp.i.i.i567, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit569, label %if.then.i.i568
+
+if.then.i.i568:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit611
+  call void @_ZdlPv(i8* %632) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit569
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit569: ; preds = %if.then.i.i568, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit611
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %208) #7
+  %633 = load i8*, i8** %_M_p.i.i794, align 8, !tbaa !107
+  %arraydecay.i.i.i.i561 = bitcast %union.anon* %199 to i8*
+  %cmp.i.i.i562 = icmp eq i8* %633, %arraydecay.i.i.i.i561
+  br i1 %cmp.i.i.i562, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit564, label %if.then.i.i563
+
+if.then.i.i563:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit569
+  call void @_ZdlPv(i8* %633) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit564
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit564: ; preds = %if.then.i.i563, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit569
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %191) #7
+  %634 = load i8*, i8** %_M_p.i.i747, align 8, !tbaa !107
+  %arraydecay.i.i.i.i519 = bitcast %union.anon* %182 to i8*
+  %cmp.i.i.i520 = icmp eq i8* %634, %arraydecay.i.i.i.i519
+  br i1 %cmp.i.i.i520, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit522, label %if.then.i.i521
+
+if.then.i.i521:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit564
+  call void @_ZdlPv(i8* %634) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit522
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit522: ; preds = %if.then.i.i521, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit564
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %174) #7
+  %635 = load i8*, i8** %_M_p.i.i700, align 8, !tbaa !107
+  %arraydecay.i.i.i.i514 = bitcast %union.anon* %165 to i8*
+  %cmp.i.i.i515 = icmp eq i8* %635, %arraydecay.i.i.i.i514
+  br i1 %cmp.i.i.i515, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit517, label %if.then.i.i516
+
+if.then.i.i516:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit522
+  call void @_ZdlPv(i8* %635) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit517
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit517: ; preds = %if.then.i.i516, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit522
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %157) #7
+  %636 = load i8*, i8** %_M_p.i.i653, align 8, !tbaa !107
+  %arraydecay.i.i.i.i472 = bitcast %union.anon* %148 to i8*
+  %cmp.i.i.i473 = icmp eq i8* %636, %arraydecay.i.i.i.i472
+  br i1 %cmp.i.i.i473, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit475, label %if.then.i.i474
+
+if.then.i.i474:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit517
+  call void @_ZdlPv(i8* %636) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit475
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit475: ; preds = %if.then.i.i474, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit517
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %140) #7
+  %637 = load i8*, i8** %_M_p.i.i606, align 8, !tbaa !107
+  %arraydecay.i.i.i.i467 = bitcast %union.anon* %131 to i8*
+  %cmp.i.i.i468 = icmp eq i8* %637, %arraydecay.i.i.i.i467
+  br i1 %cmp.i.i.i468, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit470, label %if.then.i.i469
+
+if.then.i.i469:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit475
+  call void @_ZdlPv(i8* %637) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit470
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit470: ; preds = %if.then.i.i469, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit475
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %123) #7
+  %638 = load i8*, i8** %_M_p.i.i559, align 8, !tbaa !107
+  %arraydecay.i.i.i.i425 = bitcast %union.anon* %114 to i8*
+  %cmp.i.i.i426 = icmp eq i8* %638, %arraydecay.i.i.i.i425
+  br i1 %cmp.i.i.i426, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit428, label %if.then.i.i427
+
+if.then.i.i427:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit470
+  call void @_ZdlPv(i8* %638) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit428
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit428: ; preds = %if.then.i.i427, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit470
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %106) #7
+  %639 = load i8*, i8** %_M_p.i.i512, align 8, !tbaa !107
+  %arraydecay.i.i.i.i420 = bitcast %union.anon* %97 to i8*
+  %cmp.i.i.i421 = icmp eq i8* %639, %arraydecay.i.i.i.i420
+  br i1 %cmp.i.i.i421, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit423, label %if.then.i.i422
+
+if.then.i.i422:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit428
+  call void @_ZdlPv(i8* %639) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit423
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit423: ; preds = %if.then.i.i422, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit428
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %89) #7
+  %640 = load i8*, i8** %_M_p.i.i465, align 8, !tbaa !107
+  %arraydecay.i.i.i.i378 = bitcast %union.anon* %80 to i8*
+  %cmp.i.i.i379 = icmp eq i8* %640, %arraydecay.i.i.i.i378
+  br i1 %cmp.i.i.i379, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit381, label %if.then.i.i380
+
+if.then.i.i380:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit423
+  call void @_ZdlPv(i8* %640) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit381
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit381: ; preds = %if.then.i.i380, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit423
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %72) #7
+  %641 = load i8*, i8** %_M_p.i.i418, align 8, !tbaa !107
+  %arraydecay.i.i.i.i373 = bitcast %union.anon* %63 to i8*
+  %cmp.i.i.i374 = icmp eq i8* %641, %arraydecay.i.i.i.i373
+  br i1 %cmp.i.i.i374, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit376, label %if.then.i.i375
+
+if.then.i.i375:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit381
+  call void @_ZdlPv(i8* %641) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit376
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit376: ; preds = %if.then.i.i375, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit381
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %55) #7
+  %642 = load i8*, i8** %_M_p.i.i, align 8, !tbaa !107
+  %arraydecay.i.i.i.i332 = bitcast %union.anon* %46 to i8*
+  %cmp.i.i.i333 = icmp eq i8* %642, %arraydecay.i.i.i.i332
+  br i1 %cmp.i.i.i333, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit335, label %if.then.i.i334
+
+if.then.i.i334:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit376
+  call void @_ZdlPv(i8* %642) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit335
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit335: ; preds = %if.then.i.i334, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit376
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %38) #7
+  %643 = load i8*, i8** %_M_p.i.i1183, align 8, !tbaa !107
+  %arraydecay.i.i.i.i291 = bitcast %union.anon* %30 to i8*
+  %cmp.i.i.i292 = icmp eq i8* %643, %arraydecay.i.i.i.i291
+  br i1 %cmp.i.i.i292, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit294, label %if.then.i.i293
+
+if.then.i.i293:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit335
+  call void @_ZdlPv(i8* %643) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit294
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit294: ; preds = %if.then.i.i293, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit335
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %22) #7
+  %644 = load i8*, i8** %_M_p.i.i1184, align 8, !tbaa !107
+  %arraydecay.i.i.i.i262 = bitcast %union.anon* %14 to i8*
+  %cmp.i.i.i263 = icmp eq i8* %644, %arraydecay.i.i.i.i262
+  br i1 %cmp.i.i.i263, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit265, label %if.then.i.i264
+
+if.then.i.i264:                                   ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit294
+  call void @_ZdlPv(i8* %644) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit265
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit265: ; preds = %if.then.i.i264, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit294
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %6) #7
+  %645 = load i8*, i8** %_M_p.i13.i.i.i.i, align 8, !tbaa !107
+  %cmp.i.i.i = icmp eq i8* %645, %3
+  br i1 %cmp.i.i.i, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit, label %if.then.i.i
+
+if.then.i.i:                                      ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit265
+  call void @_ZdlPv(i8* %645) #7
+  br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
+
+_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit: ; preds = %if.then.i.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit265
+  call void @llvm.lifetime.end(i64 32, i8* nonnull %0) #7
+  ret i32 0
+}
+
+; Function Attrs: nobuiltin nounwind
+declare void @_ZdlPv(i8*) local_unnamed_addr #6
+
+declare void @_ZNSt9basic_iosIcSt11char_traitsIcEE4initEPSt15basic_streambufIcS1_E(%"class.std::basic_ios"*, %"class.std::basic_streambuf"*) local_unnamed_addr #3
+
+; Function Attrs: nounwind
+declare void @_ZNSt8ios_baseC2Ev(%"class.std::ios_base"*) unnamed_addr #2
+
+; Function Attrs: nounwind
+declare void @_ZNSt6localeC1Ev(%"class.std::locale"*) unnamed_addr #2
+
+; Function Attrs: nounwind
+declare void @_ZNSt6localeD1Ev(%"class.std::locale"*) unnamed_addr #2
+
+; Function Attrs: nounwind
+declare void @_ZNSt8ios_baseD2Ev(%"class.std::ios_base"*) unnamed_addr #2
+
+declare dereferenceable(272) %"class.std::basic_ostream"* @_ZNSo9_M_insertIdEERSoT_(%"class.std::basic_ostream"*, double) local_unnamed_addr #3
+
+; Function Attrs: nounwind uwtable
+declare void @_ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv(%"class.std::__cxx11::basic_string"* noalias sret, %"class.std::__cxx11::basic_stringbuf"*) local_unnamed_addr #0 align 2
+
+declare i8* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm(%"class.std::__cxx11::basic_string"*, i64* dereferenceable(8), i64) local_unnamed_addr #3
+
+; Function Attrs: argmemonly nounwind
+declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture writeonly, i8* nocapture readonly, i64, i32, i1) #1
+
+declare dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"*, i64, i64, i8*, i64) local_unnamed_addr #3
+
+; Function Attrs: nounwind
+declare i32 @puts(i8* nocapture readonly) #7
+
+declare i32 @putchar(i32)
+
+; Function Attrs: argmemonly nounwind
+declare void @llvm.memset.p0i8.i64(i8* nocapture writeonly, i8, i64, i32, i1) #1
+
+; Function Attrs: nounwind
+declare i8* @llvm.visc.tensor.convolution(i8*, i8*, i32, i32, i32, i32) #7
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z10var_0_nodePvmS_m @_Z10var_0_nodePvmS_m_cloned(i8* in %t1, i64 %bytes_t1, i8* in %t2, i64 %bytes_t2) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.convolution(i8* %t1, i8* %t2, i32 1, i32 1, i32 1, i32 1)
+  %returnStruct = insertvalue %struct.out._Z10var_0_nodePvmS_m undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z10var_0_nodePvmS_m %returnStruct, i64 0, 1
+  ret %struct.out._Z10var_0_nodePvmS_m %returnStruct2
+}
+
+; Function Attrs: nounwind
+declare i8* @llvm.visc.tensor.add(i8*, i8*) #7
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z10var_1_nodePvmS_m @_Z10var_1_nodePvmS_m_cloned(i8* in %t1, i64 %bytes_t1, i8* in %t2, i64 %bytes_t2) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.add(i8* %t1, i8* %t2)
+  %returnStruct = insertvalue %struct.out._Z10var_1_nodePvmS_m undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z10var_1_nodePvmS_m %returnStruct, i64 0, 1
+  ret %struct.out._Z10var_1_nodePvmS_m %returnStruct2
+}
+
+; Function Attrs: nounwind
+declare i8* @llvm.visc.tensor.relu(i8*) #7
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z10var_2_nodePvm @_Z10var_2_nodePvm_cloned(i8* in %t1, i64 %bytes_t1) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.relu(i8* %t1)
+  %returnStruct = insertvalue %struct.out._Z10var_2_nodePvm undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z10var_2_nodePvm %returnStruct, i64 0, 1
+  ret %struct.out._Z10var_2_nodePvm %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z10var_3_nodePvmS_m @_Z10var_3_nodePvmS_m_cloned(i8* in %t1, i64 %bytes_t1, i8* in %t2, i64 %bytes_t2) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.convolution(i8* %t1, i8* %t2, i32 1, i32 1, i32 1, i32 1)
+  %returnStruct = insertvalue %struct.out._Z10var_3_nodePvmS_m undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z10var_3_nodePvmS_m %returnStruct, i64 0, 1
+  ret %struct.out._Z10var_3_nodePvmS_m %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z10var_4_nodePvmS_m @_Z10var_4_nodePvmS_m_cloned(i8* in %t1, i64 %bytes_t1, i8* in %t2, i64 %bytes_t2) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.add(i8* %t1, i8* %t2)
+  %returnStruct = insertvalue %struct.out._Z10var_4_nodePvmS_m undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z10var_4_nodePvmS_m %returnStruct, i64 0, 1
+  ret %struct.out._Z10var_4_nodePvmS_m %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z10var_5_nodePvm @_Z10var_5_nodePvm_cloned(i8* in %t1, i64 %bytes_t1) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.relu(i8* %t1)
+  %returnStruct = insertvalue %struct.out._Z10var_5_nodePvm undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z10var_5_nodePvm %returnStruct, i64 0, 1
+  ret %struct.out._Z10var_5_nodePvm %returnStruct2
+}
+
+; Function Attrs: nounwind
+declare i8* @llvm.visc.tensor.pool.max(i8*, i32, i32, i32, i32, i32, i32) #7
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z10var_6_nodePvm @_Z10var_6_nodePvm_cloned(i8* in %t1, i64 %bytes_t1) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.pool.max(i8* %t1, i32 2, i32 2, i32 0, i32 0, i32 2, i32 2)
+  %returnStruct = insertvalue %struct.out._Z10var_6_nodePvm undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z10var_6_nodePvm %returnStruct, i64 0, 1
+  ret %struct.out._Z10var_6_nodePvm %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z10var_7_nodePvmS_m @_Z10var_7_nodePvmS_m_cloned(i8* in %t1, i64 %bytes_t1, i8* in %t2, i64 %bytes_t2) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.convolution(i8* %t1, i8* %t2, i32 1, i32 1, i32 1, i32 1)
+  %returnStruct = insertvalue %struct.out._Z10var_7_nodePvmS_m undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z10var_7_nodePvmS_m %returnStruct, i64 0, 1
+  ret %struct.out._Z10var_7_nodePvmS_m %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z10var_8_nodePvmS_m @_Z10var_8_nodePvmS_m_cloned(i8* in %t1, i64 %bytes_t1, i8* in %t2, i64 %bytes_t2) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.add(i8* %t1, i8* %t2)
+  %returnStruct = insertvalue %struct.out._Z10var_8_nodePvmS_m undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z10var_8_nodePvmS_m %returnStruct, i64 0, 1
+  ret %struct.out._Z10var_8_nodePvmS_m %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z10var_9_nodePvm @_Z10var_9_nodePvm_cloned(i8* in %t1, i64 %bytes_t1) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.relu(i8* %t1)
+  %returnStruct = insertvalue %struct.out._Z10var_9_nodePvm undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z10var_9_nodePvm %returnStruct, i64 0, 1
+  ret %struct.out._Z10var_9_nodePvm %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_10_nodePvmS_m @_Z11var_10_nodePvmS_m_cloned(i8* in %t1, i64 %bytes_t1, i8* in %t2, i64 %bytes_t2) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.convolution(i8* %t1, i8* %t2, i32 1, i32 1, i32 1, i32 1)
+  %returnStruct = insertvalue %struct.out._Z11var_10_nodePvmS_m undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_10_nodePvmS_m %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_10_nodePvmS_m %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_11_nodePvmS_m @_Z11var_11_nodePvmS_m_cloned(i8* in %t1, i64 %bytes_t1, i8* in %t2, i64 %bytes_t2) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.add(i8* %t1, i8* %t2)
+  %returnStruct = insertvalue %struct.out._Z11var_11_nodePvmS_m undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_11_nodePvmS_m %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_11_nodePvmS_m %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_12_nodePvm @_Z11var_12_nodePvm_cloned(i8* in %t1, i64 %bytes_t1) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.relu(i8* %t1)
+  %returnStruct = insertvalue %struct.out._Z11var_12_nodePvm undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_12_nodePvm %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_12_nodePvm %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_13_nodePvm @_Z11var_13_nodePvm_cloned(i8* in %t1, i64 %bytes_t1) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.pool.max(i8* %t1, i32 2, i32 2, i32 0, i32 0, i32 2, i32 2)
+  %returnStruct = insertvalue %struct.out._Z11var_13_nodePvm undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_13_nodePvm %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_13_nodePvm %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_14_nodePvmS_m @_Z11var_14_nodePvmS_m_cloned(i8* in %t1, i64 %bytes_t1, i8* in %t2, i64 %bytes_t2) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.convolution(i8* %t1, i8* %t2, i32 1, i32 1, i32 1, i32 1)
+  %returnStruct = insertvalue %struct.out._Z11var_14_nodePvmS_m undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_14_nodePvmS_m %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_14_nodePvmS_m %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_15_nodePvmS_m @_Z11var_15_nodePvmS_m_cloned(i8* in %t1, i64 %bytes_t1, i8* in %t2, i64 %bytes_t2) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.add(i8* %t1, i8* %t2)
+  %returnStruct = insertvalue %struct.out._Z11var_15_nodePvmS_m undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_15_nodePvmS_m %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_15_nodePvmS_m %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_16_nodePvm @_Z11var_16_nodePvm_cloned(i8* in %t1, i64 %bytes_t1) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.relu(i8* %t1)
+  %returnStruct = insertvalue %struct.out._Z11var_16_nodePvm undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_16_nodePvm %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_16_nodePvm %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_17_nodePvmS_m @_Z11var_17_nodePvmS_m_cloned(i8* in %t1, i64 %bytes_t1, i8* in %t2, i64 %bytes_t2) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.convolution(i8* %t1, i8* %t2, i32 1, i32 1, i32 1, i32 1)
+  %returnStruct = insertvalue %struct.out._Z11var_17_nodePvmS_m undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_17_nodePvmS_m %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_17_nodePvmS_m %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_18_nodePvmS_m @_Z11var_18_nodePvmS_m_cloned(i8* in %t1, i64 %bytes_t1, i8* in %t2, i64 %bytes_t2) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.add(i8* %t1, i8* %t2)
+  %returnStruct = insertvalue %struct.out._Z11var_18_nodePvmS_m undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_18_nodePvmS_m %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_18_nodePvmS_m %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_19_nodePvm @_Z11var_19_nodePvm_cloned(i8* in %t1, i64 %bytes_t1) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.relu(i8* %t1)
+  %returnStruct = insertvalue %struct.out._Z11var_19_nodePvm undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_19_nodePvm %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_19_nodePvm %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_20_nodePvmS_m @_Z11var_20_nodePvmS_m_cloned(i8* in %t1, i64 %bytes_t1, i8* in %t2, i64 %bytes_t2) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.convolution(i8* %t1, i8* %t2, i32 1, i32 1, i32 1, i32 1)
+  %returnStruct = insertvalue %struct.out._Z11var_20_nodePvmS_m undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_20_nodePvmS_m %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_20_nodePvmS_m %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_21_nodePvmS_m @_Z11var_21_nodePvmS_m_cloned(i8* in %t1, i64 %bytes_t1, i8* in %t2, i64 %bytes_t2) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.add(i8* %t1, i8* %t2)
+  %returnStruct = insertvalue %struct.out._Z11var_21_nodePvmS_m undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_21_nodePvmS_m %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_21_nodePvmS_m %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_22_nodePvm @_Z11var_22_nodePvm_cloned(i8* in %t1, i64 %bytes_t1) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.relu(i8* %t1)
+  %returnStruct = insertvalue %struct.out._Z11var_22_nodePvm undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_22_nodePvm %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_22_nodePvm %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_23_nodePvm @_Z11var_23_nodePvm_cloned(i8* in %t1, i64 %bytes_t1) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.pool.max(i8* %t1, i32 2, i32 2, i32 0, i32 0, i32 2, i32 2)
+  %returnStruct = insertvalue %struct.out._Z11var_23_nodePvm undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_23_nodePvm %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_23_nodePvm %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_24_nodePvmS_m @_Z11var_24_nodePvmS_m_cloned(i8* in %t1, i64 %bytes_t1, i8* in %t2, i64 %bytes_t2) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.convolution(i8* %t1, i8* %t2, i32 1, i32 1, i32 1, i32 1)
+  %returnStruct = insertvalue %struct.out._Z11var_24_nodePvmS_m undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_24_nodePvmS_m %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_24_nodePvmS_m %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_25_nodePvmS_m @_Z11var_25_nodePvmS_m_cloned(i8* in %t1, i64 %bytes_t1, i8* in %t2, i64 %bytes_t2) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.add(i8* %t1, i8* %t2)
+  %returnStruct = insertvalue %struct.out._Z11var_25_nodePvmS_m undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_25_nodePvmS_m %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_25_nodePvmS_m %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_26_nodePvm @_Z11var_26_nodePvm_cloned(i8* in %t1, i64 %bytes_t1) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.relu(i8* %t1)
+  %returnStruct = insertvalue %struct.out._Z11var_26_nodePvm undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_26_nodePvm %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_26_nodePvm %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_27_nodePvmS_m @_Z11var_27_nodePvmS_m_cloned(i8* in %t1, i64 %bytes_t1, i8* in %t2, i64 %bytes_t2) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.convolution(i8* %t1, i8* %t2, i32 1, i32 1, i32 1, i32 1)
+  %returnStruct = insertvalue %struct.out._Z11var_27_nodePvmS_m undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_27_nodePvmS_m %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_27_nodePvmS_m %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_28_nodePvmS_m @_Z11var_28_nodePvmS_m_cloned(i8* in %t1, i64 %bytes_t1, i8* in %t2, i64 %bytes_t2) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.add(i8* %t1, i8* %t2)
+  %returnStruct = insertvalue %struct.out._Z11var_28_nodePvmS_m undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_28_nodePvmS_m %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_28_nodePvmS_m %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_29_nodePvm @_Z11var_29_nodePvm_cloned(i8* in %t1, i64 %bytes_t1) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.relu(i8* %t1)
+  %returnStruct = insertvalue %struct.out._Z11var_29_nodePvm undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_29_nodePvm %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_29_nodePvm %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_30_nodePvmS_m @_Z11var_30_nodePvmS_m_cloned(i8* in %t1, i64 %bytes_t1, i8* in %t2, i64 %bytes_t2) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.convolution(i8* %t1, i8* %t2, i32 1, i32 1, i32 1, i32 1)
+  %returnStruct = insertvalue %struct.out._Z11var_30_nodePvmS_m undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_30_nodePvmS_m %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_30_nodePvmS_m %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_31_nodePvmS_m @_Z11var_31_nodePvmS_m_cloned(i8* in %t1, i64 %bytes_t1, i8* in %t2, i64 %bytes_t2) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.add(i8* %t1, i8* %t2)
+  %returnStruct = insertvalue %struct.out._Z11var_31_nodePvmS_m undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_31_nodePvmS_m %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_31_nodePvmS_m %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_32_nodePvm @_Z11var_32_nodePvm_cloned(i8* in %t1, i64 %bytes_t1) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.relu(i8* %t1)
+  %returnStruct = insertvalue %struct.out._Z11var_32_nodePvm undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_32_nodePvm %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_32_nodePvm %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_33_nodePvm @_Z11var_33_nodePvm_cloned(i8* in %t1, i64 %bytes_t1) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.pool.max(i8* %t1, i32 2, i32 2, i32 0, i32 0, i32 2, i32 2)
+  %returnStruct = insertvalue %struct.out._Z11var_33_nodePvm undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_33_nodePvm %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_33_nodePvm %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_34_nodePvmS_m @_Z11var_34_nodePvmS_m_cloned(i8* in %t1, i64 %bytes_t1, i8* in %t2, i64 %bytes_t2) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.convolution(i8* %t1, i8* %t2, i32 1, i32 1, i32 1, i32 1)
+  %returnStruct = insertvalue %struct.out._Z11var_34_nodePvmS_m undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_34_nodePvmS_m %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_34_nodePvmS_m %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_35_nodePvmS_m @_Z11var_35_nodePvmS_m_cloned(i8* in %t1, i64 %bytes_t1, i8* in %t2, i64 %bytes_t2) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.add(i8* %t1, i8* %t2)
+  %returnStruct = insertvalue %struct.out._Z11var_35_nodePvmS_m undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_35_nodePvmS_m %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_35_nodePvmS_m %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_36_nodePvm @_Z11var_36_nodePvm_cloned(i8* in %t1, i64 %bytes_t1) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.relu(i8* %t1)
+  %returnStruct = insertvalue %struct.out._Z11var_36_nodePvm undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_36_nodePvm %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_36_nodePvm %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_37_nodePvmS_m @_Z11var_37_nodePvmS_m_cloned(i8* in %t1, i64 %bytes_t1, i8* in %t2, i64 %bytes_t2) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.convolution(i8* %t1, i8* %t2, i32 1, i32 1, i32 1, i32 1)
+  %returnStruct = insertvalue %struct.out._Z11var_37_nodePvmS_m undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_37_nodePvmS_m %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_37_nodePvmS_m %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_38_nodePvmS_m @_Z11var_38_nodePvmS_m_cloned(i8* in %t1, i64 %bytes_t1, i8* in %t2, i64 %bytes_t2) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.add(i8* %t1, i8* %t2)
+  %returnStruct = insertvalue %struct.out._Z11var_38_nodePvmS_m undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_38_nodePvmS_m %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_38_nodePvmS_m %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_39_nodePvm @_Z11var_39_nodePvm_cloned(i8* in %t1, i64 %bytes_t1) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.relu(i8* %t1)
+  %returnStruct = insertvalue %struct.out._Z11var_39_nodePvm undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_39_nodePvm %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_39_nodePvm %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_40_nodePvmS_m @_Z11var_40_nodePvmS_m_cloned(i8* in %t1, i64 %bytes_t1, i8* in %t2, i64 %bytes_t2) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.convolution(i8* %t1, i8* %t2, i32 1, i32 1, i32 1, i32 1)
+  %returnStruct = insertvalue %struct.out._Z11var_40_nodePvmS_m undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_40_nodePvmS_m %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_40_nodePvmS_m %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_41_nodePvmS_m @_Z11var_41_nodePvmS_m_cloned(i8* in %t1, i64 %bytes_t1, i8* in %t2, i64 %bytes_t2) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.add(i8* %t1, i8* %t2)
+  %returnStruct = insertvalue %struct.out._Z11var_41_nodePvmS_m undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_41_nodePvmS_m %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_41_nodePvmS_m %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_42_nodePvm @_Z11var_42_nodePvm_cloned(i8* in %t1, i64 %bytes_t1) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.relu(i8* %t1)
+  %returnStruct = insertvalue %struct.out._Z11var_42_nodePvm undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_42_nodePvm %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_42_nodePvm %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_43_nodePvm @_Z11var_43_nodePvm_cloned(i8* in %t1, i64 %bytes_t1) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.pool.max(i8* %t1, i32 2, i32 2, i32 0, i32 0, i32 2, i32 2)
+  %returnStruct = insertvalue %struct.out._Z11var_43_nodePvm undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_43_nodePvm %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_43_nodePvm %returnStruct2
+}
+
+; Function Attrs: nounwind
+declare i8* @llvm.visc.tensor.mul(i8*, i8*) #7
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_44_nodePvmS_m @_Z11var_44_nodePvmS_m_cloned(i8* in %t1, i64 %bytes_t1, i8* in %t2, i64 %bytes_t2) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.mul(i8* %t1, i8* %t2)
+  %returnStruct = insertvalue %struct.out._Z11var_44_nodePvmS_m undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_44_nodePvmS_m %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_44_nodePvmS_m %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_45_nodePvmS_m @_Z11var_45_nodePvmS_m_cloned(i8* in %t1, i64 %bytes_t1, i8* in %t2, i64 %bytes_t2) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.add(i8* %t1, i8* %t2)
+  %returnStruct = insertvalue %struct.out._Z11var_45_nodePvmS_m undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_45_nodePvmS_m %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_45_nodePvmS_m %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_46_nodePvm @_Z11var_46_nodePvm_cloned(i8* in %t1, i64 %bytes_t1) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.relu(i8* %t1)
+  %returnStruct = insertvalue %struct.out._Z11var_46_nodePvm undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_46_nodePvm %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_46_nodePvm %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_47_nodePvmS_m @_Z11var_47_nodePvmS_m_cloned(i8* in %t1, i64 %bytes_t1, i8* in %t2, i64 %bytes_t2) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.mul(i8* %t1, i8* %t2)
+  %returnStruct = insertvalue %struct.out._Z11var_47_nodePvmS_m undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_47_nodePvmS_m %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_47_nodePvmS_m %returnStruct2
+}
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_48_nodePvmS_m @_Z11var_48_nodePvmS_m_cloned(i8* in %t1, i64 %bytes_t1, i8* in %t2, i64 %bytes_t2) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.add(i8* %t1, i8* %t2)
+  %returnStruct = insertvalue %struct.out._Z11var_48_nodePvmS_m undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_48_nodePvmS_m %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_48_nodePvmS_m %returnStruct2
+}
+
+; Function Attrs: nounwind
+declare i8* @llvm.visc.tensor.softmax(i8*) #7
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z11var_49_nodePvm @_Z11var_49_nodePvm_cloned(i8* in %t1, i64 %bytes_t1) #0 {
+entry:
+  %call1 = call i8* @llvm.visc.tensor.softmax(i8* %t1)
+  %returnStruct = insertvalue %struct.out._Z11var_49_nodePvm undef, i8* %call1, 0
+  %returnStruct2 = insertvalue %struct.out._Z11var_49_nodePvm %returnStruct, i64 0, 1
+  ret %struct.out._Z11var_49_nodePvm %returnStruct2
+}
+
+; Function Attrs: nounwind
+declare i8* @llvm.visc.createNode(i8*) #7
+
+; Function Attrs: nounwind
+declare void @llvm.visc.bind.input(i8*, i32, i32, i1) #7
+
+; Function Attrs: nounwind
+declare i8* @llvm.visc.createEdge(i8*, i8*, i1, i32, i32, i1) #7
+
+; Function Attrs: nounwind
+declare void @llvm.visc.bind.output(i8*, i32, i32, i1) #7
+
+; Function Attrs: nounwind uwtable
+define %struct.out._Z4rootPvmS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_m @_Z4rootPvmS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_m_cloned(i8* in %input, i64 %input_bytes, i8* in %conv2d_1_w, i64 %conv2d_1_w_bytes, i8* in %conv2d_1_b, i64 %conv2d_1_b_bytes, i8* in %conv2d_2_w, i64 %conv2d_2_w_bytes, i8* in %conv2d_2_b, i64 %conv2d_2_b_bytes, i8* in %conv2d_3_w, i64 %conv2d_3_w_bytes, i8* in %conv2d_3_b, i64 %conv2d_3_b_bytes, i8* in %conv2d_4_w, i64 %conv2d_4_w_bytes, i8* in %conv2d_4_b, i64 %conv2d_4_b_bytes, i8* in %conv2d_5_w, i64 %conv2d_5_w_bytes, i8* in %conv2d_5_b, i64 %conv2d_5_b_bytes, i8* in %conv2d_6_w, i64 %conv2d_6_w_bytes, i8* in %conv2d_6_b, i64 %conv2d_6_b_bytes, i8* in %conv2d_7_w, i64 %conv2d_7_w_bytes, i8* in %conv2d_7_b, i64 %conv2d_7_b_bytes, i8* in %conv2d_8_w, i64 %conv2d_8_w_bytes, i8* in %conv2d_8_b, i64 %conv2d_8_b_bytes, i8* in %conv2d_9_w, i64 %conv2d_9_w_bytes, i8* in %conv2d_9_b, i64 %conv2d_9_b_bytes, i8* in %conv2d_10_w, i64 %conv2d_10_w_bytes, i8* in %conv2d_10_b, i64 %conv2d_10_b_bytes, i8* in %conv2d_11_w, i64 %conv2d_11_w_bytes, i8* in %conv2d_11_b, i64 %conv2d_11_b_bytes, i8* in %conv2d_12_w, i64 %conv2d_12_w_bytes, i8* in %conv2d_12_b, i64 %conv2d_12_b_bytes, i8* in %conv2d_13_w, i64 %conv2d_13_w_bytes, i8* in %conv2d_13_b, i64 %conv2d_13_b_bytes, i8* in %dense_1_w, i64 %dense_1_w_bytes, i8* in %dense_1_b, i64 %dense_1_b_bytes, i8* in %dense_2_w, i64 %dense_2_w_bytes, i8* in %dense_2_b, i64 %dense_2_b_bytes) #0 {
+entry:
+  %_Z10var_0_nodePvmS_m_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z10var_0_nodePvmS_m (i8*, i64, i8*, i64)* @_Z10var_0_nodePvmS_m_cloned to i8*))
+  call void @llvm.visc.bind.input(i8* %_Z10var_0_nodePvmS_m_cloned.node, i32 0, i32 0, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z10var_0_nodePvmS_m_cloned.node, i32 1, i32 1, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z10var_0_nodePvmS_m_cloned.node, i32 2, i32 2, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z10var_0_nodePvmS_m_cloned.node, i32 3, i32 3, i1 false)
+  %_Z10var_1_nodePvmS_m_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z10var_1_nodePvmS_m (i8*, i64, i8*, i64)* @_Z10var_1_nodePvmS_m_cloned to i8*))
+  %output = call i8* @llvm.visc.createEdge(i8* %_Z10var_0_nodePvmS_m_cloned.node, i8* %_Z10var_1_nodePvmS_m_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output1 = call i8* @llvm.visc.createEdge(i8* %_Z10var_0_nodePvmS_m_cloned.node, i8* %_Z10var_1_nodePvmS_m_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z10var_1_nodePvmS_m_cloned.node, i32 4, i32 2, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z10var_1_nodePvmS_m_cloned.node, i32 5, i32 3, i1 false)
+  %_Z10var_2_nodePvm_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z10var_2_nodePvm (i8*, i64)* @_Z10var_2_nodePvm_cloned to i8*))
+  %output2 = call i8* @llvm.visc.createEdge(i8* %_Z10var_1_nodePvmS_m_cloned.node, i8* %_Z10var_2_nodePvm_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output3 = call i8* @llvm.visc.createEdge(i8* %_Z10var_1_nodePvmS_m_cloned.node, i8* %_Z10var_2_nodePvm_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  %_Z10var_3_nodePvmS_m_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z10var_3_nodePvmS_m (i8*, i64, i8*, i64)* @_Z10var_3_nodePvmS_m_cloned to i8*))
+  %output4 = call i8* @llvm.visc.createEdge(i8* %_Z10var_2_nodePvm_cloned.node, i8* %_Z10var_3_nodePvmS_m_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output5 = call i8* @llvm.visc.createEdge(i8* %_Z10var_2_nodePvm_cloned.node, i8* %_Z10var_3_nodePvmS_m_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z10var_3_nodePvmS_m_cloned.node, i32 6, i32 2, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z10var_3_nodePvmS_m_cloned.node, i32 7, i32 3, i1 false)
+  %_Z10var_4_nodePvmS_m_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z10var_4_nodePvmS_m (i8*, i64, i8*, i64)* @_Z10var_4_nodePvmS_m_cloned to i8*))
+  %output6 = call i8* @llvm.visc.createEdge(i8* %_Z10var_3_nodePvmS_m_cloned.node, i8* %_Z10var_4_nodePvmS_m_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output7 = call i8* @llvm.visc.createEdge(i8* %_Z10var_3_nodePvmS_m_cloned.node, i8* %_Z10var_4_nodePvmS_m_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z10var_4_nodePvmS_m_cloned.node, i32 8, i32 2, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z10var_4_nodePvmS_m_cloned.node, i32 9, i32 3, i1 false)
+  %_Z10var_5_nodePvm_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z10var_5_nodePvm (i8*, i64)* @_Z10var_5_nodePvm_cloned to i8*))
+  %output8 = call i8* @llvm.visc.createEdge(i8* %_Z10var_4_nodePvmS_m_cloned.node, i8* %_Z10var_5_nodePvm_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output9 = call i8* @llvm.visc.createEdge(i8* %_Z10var_4_nodePvmS_m_cloned.node, i8* %_Z10var_5_nodePvm_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  %_Z10var_6_nodePvm_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z10var_6_nodePvm (i8*, i64)* @_Z10var_6_nodePvm_cloned to i8*))
+  %output10 = call i8* @llvm.visc.createEdge(i8* %_Z10var_5_nodePvm_cloned.node, i8* %_Z10var_6_nodePvm_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output11 = call i8* @llvm.visc.createEdge(i8* %_Z10var_5_nodePvm_cloned.node, i8* %_Z10var_6_nodePvm_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  %_Z10var_7_nodePvmS_m_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z10var_7_nodePvmS_m (i8*, i64, i8*, i64)* @_Z10var_7_nodePvmS_m_cloned to i8*))
+  %output12 = call i8* @llvm.visc.createEdge(i8* %_Z10var_6_nodePvm_cloned.node, i8* %_Z10var_7_nodePvmS_m_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output13 = call i8* @llvm.visc.createEdge(i8* %_Z10var_6_nodePvm_cloned.node, i8* %_Z10var_7_nodePvmS_m_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z10var_7_nodePvmS_m_cloned.node, i32 10, i32 2, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z10var_7_nodePvmS_m_cloned.node, i32 11, i32 3, i1 false)
+  %_Z10var_8_nodePvmS_m_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z10var_8_nodePvmS_m (i8*, i64, i8*, i64)* @_Z10var_8_nodePvmS_m_cloned to i8*))
+  %output14 = call i8* @llvm.visc.createEdge(i8* %_Z10var_7_nodePvmS_m_cloned.node, i8* %_Z10var_8_nodePvmS_m_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output15 = call i8* @llvm.visc.createEdge(i8* %_Z10var_7_nodePvmS_m_cloned.node, i8* %_Z10var_8_nodePvmS_m_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z10var_8_nodePvmS_m_cloned.node, i32 12, i32 2, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z10var_8_nodePvmS_m_cloned.node, i32 13, i32 3, i1 false)
+  %_Z10var_9_nodePvm_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z10var_9_nodePvm (i8*, i64)* @_Z10var_9_nodePvm_cloned to i8*))
+  %output16 = call i8* @llvm.visc.createEdge(i8* %_Z10var_8_nodePvmS_m_cloned.node, i8* %_Z10var_9_nodePvm_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output17 = call i8* @llvm.visc.createEdge(i8* %_Z10var_8_nodePvmS_m_cloned.node, i8* %_Z10var_9_nodePvm_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  %_Z11var_10_nodePvmS_m_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_10_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_10_nodePvmS_m_cloned to i8*))
+  %output18 = call i8* @llvm.visc.createEdge(i8* %_Z10var_9_nodePvm_cloned.node, i8* %_Z11var_10_nodePvmS_m_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output19 = call i8* @llvm.visc.createEdge(i8* %_Z10var_9_nodePvm_cloned.node, i8* %_Z11var_10_nodePvmS_m_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_10_nodePvmS_m_cloned.node, i32 14, i32 2, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_10_nodePvmS_m_cloned.node, i32 15, i32 3, i1 false)
+  %_Z11var_11_nodePvmS_m_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_11_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_11_nodePvmS_m_cloned to i8*))
+  %output20 = call i8* @llvm.visc.createEdge(i8* %_Z11var_10_nodePvmS_m_cloned.node, i8* %_Z11var_11_nodePvmS_m_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output21 = call i8* @llvm.visc.createEdge(i8* %_Z11var_10_nodePvmS_m_cloned.node, i8* %_Z11var_11_nodePvmS_m_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_11_nodePvmS_m_cloned.node, i32 16, i32 2, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_11_nodePvmS_m_cloned.node, i32 17, i32 3, i1 false)
+  %_Z11var_12_nodePvm_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_12_nodePvm (i8*, i64)* @_Z11var_12_nodePvm_cloned to i8*))
+  %output22 = call i8* @llvm.visc.createEdge(i8* %_Z11var_11_nodePvmS_m_cloned.node, i8* %_Z11var_12_nodePvm_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output23 = call i8* @llvm.visc.createEdge(i8* %_Z11var_11_nodePvmS_m_cloned.node, i8* %_Z11var_12_nodePvm_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  %_Z11var_13_nodePvm_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_13_nodePvm (i8*, i64)* @_Z11var_13_nodePvm_cloned to i8*))
+  %output24 = call i8* @llvm.visc.createEdge(i8* %_Z11var_12_nodePvm_cloned.node, i8* %_Z11var_13_nodePvm_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output25 = call i8* @llvm.visc.createEdge(i8* %_Z11var_12_nodePvm_cloned.node, i8* %_Z11var_13_nodePvm_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  %_Z11var_14_nodePvmS_m_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_14_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_14_nodePvmS_m_cloned to i8*))
+  %output26 = call i8* @llvm.visc.createEdge(i8* %_Z11var_13_nodePvm_cloned.node, i8* %_Z11var_14_nodePvmS_m_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output27 = call i8* @llvm.visc.createEdge(i8* %_Z11var_13_nodePvm_cloned.node, i8* %_Z11var_14_nodePvmS_m_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_14_nodePvmS_m_cloned.node, i32 18, i32 2, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_14_nodePvmS_m_cloned.node, i32 19, i32 3, i1 false)
+  %_Z11var_15_nodePvmS_m_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_15_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_15_nodePvmS_m_cloned to i8*))
+  %output28 = call i8* @llvm.visc.createEdge(i8* %_Z11var_14_nodePvmS_m_cloned.node, i8* %_Z11var_15_nodePvmS_m_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output29 = call i8* @llvm.visc.createEdge(i8* %_Z11var_14_nodePvmS_m_cloned.node, i8* %_Z11var_15_nodePvmS_m_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_15_nodePvmS_m_cloned.node, i32 20, i32 2, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_15_nodePvmS_m_cloned.node, i32 21, i32 3, i1 false)
+  %_Z11var_16_nodePvm_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_16_nodePvm (i8*, i64)* @_Z11var_16_nodePvm_cloned to i8*))
+  %output30 = call i8* @llvm.visc.createEdge(i8* %_Z11var_15_nodePvmS_m_cloned.node, i8* %_Z11var_16_nodePvm_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output31 = call i8* @llvm.visc.createEdge(i8* %_Z11var_15_nodePvmS_m_cloned.node, i8* %_Z11var_16_nodePvm_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  %_Z11var_17_nodePvmS_m_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_17_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_17_nodePvmS_m_cloned to i8*))
+  %output32 = call i8* @llvm.visc.createEdge(i8* %_Z11var_16_nodePvm_cloned.node, i8* %_Z11var_17_nodePvmS_m_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output33 = call i8* @llvm.visc.createEdge(i8* %_Z11var_16_nodePvm_cloned.node, i8* %_Z11var_17_nodePvmS_m_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_17_nodePvmS_m_cloned.node, i32 22, i32 2, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_17_nodePvmS_m_cloned.node, i32 23, i32 3, i1 false)
+  %_Z11var_18_nodePvmS_m_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_18_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_18_nodePvmS_m_cloned to i8*))
+  %output34 = call i8* @llvm.visc.createEdge(i8* %_Z11var_17_nodePvmS_m_cloned.node, i8* %_Z11var_18_nodePvmS_m_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output35 = call i8* @llvm.visc.createEdge(i8* %_Z11var_17_nodePvmS_m_cloned.node, i8* %_Z11var_18_nodePvmS_m_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_18_nodePvmS_m_cloned.node, i32 24, i32 2, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_18_nodePvmS_m_cloned.node, i32 25, i32 3, i1 false)
+  %_Z11var_19_nodePvm_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_19_nodePvm (i8*, i64)* @_Z11var_19_nodePvm_cloned to i8*))
+  %output36 = call i8* @llvm.visc.createEdge(i8* %_Z11var_18_nodePvmS_m_cloned.node, i8* %_Z11var_19_nodePvm_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output37 = call i8* @llvm.visc.createEdge(i8* %_Z11var_18_nodePvmS_m_cloned.node, i8* %_Z11var_19_nodePvm_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  %_Z11var_20_nodePvmS_m_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_20_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_20_nodePvmS_m_cloned to i8*))
+  %output38 = call i8* @llvm.visc.createEdge(i8* %_Z11var_19_nodePvm_cloned.node, i8* %_Z11var_20_nodePvmS_m_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output39 = call i8* @llvm.visc.createEdge(i8* %_Z11var_19_nodePvm_cloned.node, i8* %_Z11var_20_nodePvmS_m_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_20_nodePvmS_m_cloned.node, i32 26, i32 2, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_20_nodePvmS_m_cloned.node, i32 27, i32 3, i1 false)
+  %_Z11var_21_nodePvmS_m_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_21_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_21_nodePvmS_m_cloned to i8*))
+  %output40 = call i8* @llvm.visc.createEdge(i8* %_Z11var_20_nodePvmS_m_cloned.node, i8* %_Z11var_21_nodePvmS_m_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output41 = call i8* @llvm.visc.createEdge(i8* %_Z11var_20_nodePvmS_m_cloned.node, i8* %_Z11var_21_nodePvmS_m_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_21_nodePvmS_m_cloned.node, i32 28, i32 2, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_21_nodePvmS_m_cloned.node, i32 29, i32 3, i1 false)
+  %_Z11var_22_nodePvm_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_22_nodePvm (i8*, i64)* @_Z11var_22_nodePvm_cloned to i8*))
+  %output42 = call i8* @llvm.visc.createEdge(i8* %_Z11var_21_nodePvmS_m_cloned.node, i8* %_Z11var_22_nodePvm_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output43 = call i8* @llvm.visc.createEdge(i8* %_Z11var_21_nodePvmS_m_cloned.node, i8* %_Z11var_22_nodePvm_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  %_Z11var_23_nodePvm_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_23_nodePvm (i8*, i64)* @_Z11var_23_nodePvm_cloned to i8*))
+  %output44 = call i8* @llvm.visc.createEdge(i8* %_Z11var_22_nodePvm_cloned.node, i8* %_Z11var_23_nodePvm_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output45 = call i8* @llvm.visc.createEdge(i8* %_Z11var_22_nodePvm_cloned.node, i8* %_Z11var_23_nodePvm_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  %_Z11var_24_nodePvmS_m_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_24_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_24_nodePvmS_m_cloned to i8*))
+  %output46 = call i8* @llvm.visc.createEdge(i8* %_Z11var_23_nodePvm_cloned.node, i8* %_Z11var_24_nodePvmS_m_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output47 = call i8* @llvm.visc.createEdge(i8* %_Z11var_23_nodePvm_cloned.node, i8* %_Z11var_24_nodePvmS_m_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_24_nodePvmS_m_cloned.node, i32 30, i32 2, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_24_nodePvmS_m_cloned.node, i32 31, i32 3, i1 false)
+  %_Z11var_25_nodePvmS_m_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_25_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_25_nodePvmS_m_cloned to i8*))
+  %output48 = call i8* @llvm.visc.createEdge(i8* %_Z11var_24_nodePvmS_m_cloned.node, i8* %_Z11var_25_nodePvmS_m_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output49 = call i8* @llvm.visc.createEdge(i8* %_Z11var_24_nodePvmS_m_cloned.node, i8* %_Z11var_25_nodePvmS_m_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_25_nodePvmS_m_cloned.node, i32 32, i32 2, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_25_nodePvmS_m_cloned.node, i32 33, i32 3, i1 false)
+  %_Z11var_26_nodePvm_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_26_nodePvm (i8*, i64)* @_Z11var_26_nodePvm_cloned to i8*))
+  %output50 = call i8* @llvm.visc.createEdge(i8* %_Z11var_25_nodePvmS_m_cloned.node, i8* %_Z11var_26_nodePvm_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output51 = call i8* @llvm.visc.createEdge(i8* %_Z11var_25_nodePvmS_m_cloned.node, i8* %_Z11var_26_nodePvm_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  %_Z11var_27_nodePvmS_m_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_27_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_27_nodePvmS_m_cloned to i8*))
+  %output52 = call i8* @llvm.visc.createEdge(i8* %_Z11var_26_nodePvm_cloned.node, i8* %_Z11var_27_nodePvmS_m_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output53 = call i8* @llvm.visc.createEdge(i8* %_Z11var_26_nodePvm_cloned.node, i8* %_Z11var_27_nodePvmS_m_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_27_nodePvmS_m_cloned.node, i32 34, i32 2, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_27_nodePvmS_m_cloned.node, i32 35, i32 3, i1 false)
+  %_Z11var_28_nodePvmS_m_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_28_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_28_nodePvmS_m_cloned to i8*))
+  %output54 = call i8* @llvm.visc.createEdge(i8* %_Z11var_27_nodePvmS_m_cloned.node, i8* %_Z11var_28_nodePvmS_m_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output55 = call i8* @llvm.visc.createEdge(i8* %_Z11var_27_nodePvmS_m_cloned.node, i8* %_Z11var_28_nodePvmS_m_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_28_nodePvmS_m_cloned.node, i32 36, i32 2, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_28_nodePvmS_m_cloned.node, i32 37, i32 3, i1 false)
+  %_Z11var_29_nodePvm_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_29_nodePvm (i8*, i64)* @_Z11var_29_nodePvm_cloned to i8*))
+  %output56 = call i8* @llvm.visc.createEdge(i8* %_Z11var_28_nodePvmS_m_cloned.node, i8* %_Z11var_29_nodePvm_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output57 = call i8* @llvm.visc.createEdge(i8* %_Z11var_28_nodePvmS_m_cloned.node, i8* %_Z11var_29_nodePvm_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  %_Z11var_30_nodePvmS_m_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_30_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_30_nodePvmS_m_cloned to i8*))
+  %output58 = call i8* @llvm.visc.createEdge(i8* %_Z11var_29_nodePvm_cloned.node, i8* %_Z11var_30_nodePvmS_m_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output59 = call i8* @llvm.visc.createEdge(i8* %_Z11var_29_nodePvm_cloned.node, i8* %_Z11var_30_nodePvmS_m_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_30_nodePvmS_m_cloned.node, i32 38, i32 2, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_30_nodePvmS_m_cloned.node, i32 39, i32 3, i1 false)
+  %_Z11var_31_nodePvmS_m_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_31_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_31_nodePvmS_m_cloned to i8*))
+  %output60 = call i8* @llvm.visc.createEdge(i8* %_Z11var_30_nodePvmS_m_cloned.node, i8* %_Z11var_31_nodePvmS_m_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output61 = call i8* @llvm.visc.createEdge(i8* %_Z11var_30_nodePvmS_m_cloned.node, i8* %_Z11var_31_nodePvmS_m_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_31_nodePvmS_m_cloned.node, i32 40, i32 2, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_31_nodePvmS_m_cloned.node, i32 41, i32 3, i1 false)
+  %_Z11var_32_nodePvm_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_32_nodePvm (i8*, i64)* @_Z11var_32_nodePvm_cloned to i8*))
+  %output62 = call i8* @llvm.visc.createEdge(i8* %_Z11var_31_nodePvmS_m_cloned.node, i8* %_Z11var_32_nodePvm_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output63 = call i8* @llvm.visc.createEdge(i8* %_Z11var_31_nodePvmS_m_cloned.node, i8* %_Z11var_32_nodePvm_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  %_Z11var_33_nodePvm_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_33_nodePvm (i8*, i64)* @_Z11var_33_nodePvm_cloned to i8*))
+  %output64 = call i8* @llvm.visc.createEdge(i8* %_Z11var_32_nodePvm_cloned.node, i8* %_Z11var_33_nodePvm_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output65 = call i8* @llvm.visc.createEdge(i8* %_Z11var_32_nodePvm_cloned.node, i8* %_Z11var_33_nodePvm_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  %_Z11var_34_nodePvmS_m_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_34_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_34_nodePvmS_m_cloned to i8*))
+  %output66 = call i8* @llvm.visc.createEdge(i8* %_Z11var_33_nodePvm_cloned.node, i8* %_Z11var_34_nodePvmS_m_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output67 = call i8* @llvm.visc.createEdge(i8* %_Z11var_33_nodePvm_cloned.node, i8* %_Z11var_34_nodePvmS_m_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_34_nodePvmS_m_cloned.node, i32 42, i32 2, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_34_nodePvmS_m_cloned.node, i32 43, i32 3, i1 false)
+  %_Z11var_35_nodePvmS_m_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_35_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_35_nodePvmS_m_cloned to i8*))
+  %output68 = call i8* @llvm.visc.createEdge(i8* %_Z11var_34_nodePvmS_m_cloned.node, i8* %_Z11var_35_nodePvmS_m_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output69 = call i8* @llvm.visc.createEdge(i8* %_Z11var_34_nodePvmS_m_cloned.node, i8* %_Z11var_35_nodePvmS_m_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_35_nodePvmS_m_cloned.node, i32 44, i32 2, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_35_nodePvmS_m_cloned.node, i32 45, i32 3, i1 false)
+  %_Z11var_36_nodePvm_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_36_nodePvm (i8*, i64)* @_Z11var_36_nodePvm_cloned to i8*))
+  %output70 = call i8* @llvm.visc.createEdge(i8* %_Z11var_35_nodePvmS_m_cloned.node, i8* %_Z11var_36_nodePvm_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output71 = call i8* @llvm.visc.createEdge(i8* %_Z11var_35_nodePvmS_m_cloned.node, i8* %_Z11var_36_nodePvm_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  %_Z11var_37_nodePvmS_m_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_37_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_37_nodePvmS_m_cloned to i8*))
+  %output72 = call i8* @llvm.visc.createEdge(i8* %_Z11var_36_nodePvm_cloned.node, i8* %_Z11var_37_nodePvmS_m_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output73 = call i8* @llvm.visc.createEdge(i8* %_Z11var_36_nodePvm_cloned.node, i8* %_Z11var_37_nodePvmS_m_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_37_nodePvmS_m_cloned.node, i32 46, i32 2, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_37_nodePvmS_m_cloned.node, i32 47, i32 3, i1 false)
+  %_Z11var_38_nodePvmS_m_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_38_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_38_nodePvmS_m_cloned to i8*))
+  %output74 = call i8* @llvm.visc.createEdge(i8* %_Z11var_37_nodePvmS_m_cloned.node, i8* %_Z11var_38_nodePvmS_m_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output75 = call i8* @llvm.visc.createEdge(i8* %_Z11var_37_nodePvmS_m_cloned.node, i8* %_Z11var_38_nodePvmS_m_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_38_nodePvmS_m_cloned.node, i32 48, i32 2, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_38_nodePvmS_m_cloned.node, i32 49, i32 3, i1 false)
+  %_Z11var_39_nodePvm_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_39_nodePvm (i8*, i64)* @_Z11var_39_nodePvm_cloned to i8*))
+  %output76 = call i8* @llvm.visc.createEdge(i8* %_Z11var_38_nodePvmS_m_cloned.node, i8* %_Z11var_39_nodePvm_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output77 = call i8* @llvm.visc.createEdge(i8* %_Z11var_38_nodePvmS_m_cloned.node, i8* %_Z11var_39_nodePvm_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  %_Z11var_40_nodePvmS_m_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_40_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_40_nodePvmS_m_cloned to i8*))
+  %output78 = call i8* @llvm.visc.createEdge(i8* %_Z11var_39_nodePvm_cloned.node, i8* %_Z11var_40_nodePvmS_m_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output79 = call i8* @llvm.visc.createEdge(i8* %_Z11var_39_nodePvm_cloned.node, i8* %_Z11var_40_nodePvmS_m_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_40_nodePvmS_m_cloned.node, i32 50, i32 2, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_40_nodePvmS_m_cloned.node, i32 51, i32 3, i1 false)
+  %_Z11var_41_nodePvmS_m_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_41_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_41_nodePvmS_m_cloned to i8*))
+  %output80 = call i8* @llvm.visc.createEdge(i8* %_Z11var_40_nodePvmS_m_cloned.node, i8* %_Z11var_41_nodePvmS_m_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output81 = call i8* @llvm.visc.createEdge(i8* %_Z11var_40_nodePvmS_m_cloned.node, i8* %_Z11var_41_nodePvmS_m_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_41_nodePvmS_m_cloned.node, i32 52, i32 2, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_41_nodePvmS_m_cloned.node, i32 53, i32 3, i1 false)
+  %_Z11var_42_nodePvm_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_42_nodePvm (i8*, i64)* @_Z11var_42_nodePvm_cloned to i8*))
+  %output82 = call i8* @llvm.visc.createEdge(i8* %_Z11var_41_nodePvmS_m_cloned.node, i8* %_Z11var_42_nodePvm_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output83 = call i8* @llvm.visc.createEdge(i8* %_Z11var_41_nodePvmS_m_cloned.node, i8* %_Z11var_42_nodePvm_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  %_Z11var_43_nodePvm_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_43_nodePvm (i8*, i64)* @_Z11var_43_nodePvm_cloned to i8*))
+  %output84 = call i8* @llvm.visc.createEdge(i8* %_Z11var_42_nodePvm_cloned.node, i8* %_Z11var_43_nodePvm_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output85 = call i8* @llvm.visc.createEdge(i8* %_Z11var_42_nodePvm_cloned.node, i8* %_Z11var_43_nodePvm_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  %_Z11var_44_nodePvmS_m_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_44_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_44_nodePvmS_m_cloned to i8*))
+  %output86 = call i8* @llvm.visc.createEdge(i8* %_Z11var_43_nodePvm_cloned.node, i8* %_Z11var_44_nodePvmS_m_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output87 = call i8* @llvm.visc.createEdge(i8* %_Z11var_43_nodePvm_cloned.node, i8* %_Z11var_44_nodePvmS_m_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_44_nodePvmS_m_cloned.node, i32 54, i32 2, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_44_nodePvmS_m_cloned.node, i32 55, i32 3, i1 false)
+  %_Z11var_45_nodePvmS_m_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_45_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_45_nodePvmS_m_cloned to i8*))
+  %output88 = call i8* @llvm.visc.createEdge(i8* %_Z11var_44_nodePvmS_m_cloned.node, i8* %_Z11var_45_nodePvmS_m_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output89 = call i8* @llvm.visc.createEdge(i8* %_Z11var_44_nodePvmS_m_cloned.node, i8* %_Z11var_45_nodePvmS_m_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_45_nodePvmS_m_cloned.node, i32 56, i32 2, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_45_nodePvmS_m_cloned.node, i32 57, i32 3, i1 false)
+  %_Z11var_46_nodePvm_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_46_nodePvm (i8*, i64)* @_Z11var_46_nodePvm_cloned to i8*))
+  %output90 = call i8* @llvm.visc.createEdge(i8* %_Z11var_45_nodePvmS_m_cloned.node, i8* %_Z11var_46_nodePvm_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output91 = call i8* @llvm.visc.createEdge(i8* %_Z11var_45_nodePvmS_m_cloned.node, i8* %_Z11var_46_nodePvm_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  %_Z11var_47_nodePvmS_m_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_47_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_47_nodePvmS_m_cloned to i8*))
+  %output92 = call i8* @llvm.visc.createEdge(i8* %_Z11var_46_nodePvm_cloned.node, i8* %_Z11var_47_nodePvmS_m_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output93 = call i8* @llvm.visc.createEdge(i8* %_Z11var_46_nodePvm_cloned.node, i8* %_Z11var_47_nodePvmS_m_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_47_nodePvmS_m_cloned.node, i32 58, i32 2, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_47_nodePvmS_m_cloned.node, i32 59, i32 3, i1 false)
+  %_Z11var_48_nodePvmS_m_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_48_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_48_nodePvmS_m_cloned to i8*))
+  %output94 = call i8* @llvm.visc.createEdge(i8* %_Z11var_47_nodePvmS_m_cloned.node, i8* %_Z11var_48_nodePvmS_m_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output95 = call i8* @llvm.visc.createEdge(i8* %_Z11var_47_nodePvmS_m_cloned.node, i8* %_Z11var_48_nodePvmS_m_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_48_nodePvmS_m_cloned.node, i32 60, i32 2, i1 false)
+  call void @llvm.visc.bind.input(i8* %_Z11var_48_nodePvmS_m_cloned.node, i32 61, i32 3, i1 false)
+  %_Z11var_49_nodePvm_cloned.node = call i8* @llvm.visc.createNode(i8* bitcast (%struct.out._Z11var_49_nodePvm (i8*, i64)* @_Z11var_49_nodePvm_cloned to i8*))
+  %output96 = call i8* @llvm.visc.createEdge(i8* %_Z11var_48_nodePvmS_m_cloned.node, i8* %_Z11var_49_nodePvm_cloned.node, i1 true, i32 0, i32 0, i1 false)
+  %output97 = call i8* @llvm.visc.createEdge(i8* %_Z11var_48_nodePvmS_m_cloned.node, i8* %_Z11var_49_nodePvm_cloned.node, i1 true, i32 1, i32 1, i1 false)
+  call void @llvm.visc.bind.output(i8* %_Z11var_49_nodePvm_cloned.node, i32 0, i32 0, i1 false)
+  call void @llvm.visc.bind.output(i8* %_Z11var_49_nodePvm_cloned.node, i32 1, i32 1, i1 false)
+  ret %struct.out._Z4rootPvmS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_m undef
+}
+
+; Function Attrs: nounwind
+declare void @llvm.visc.init() #7
+
+; Function Attrs: nounwind
+declare i8* @llvm.visc.launch(i8*, i8*, i1) #7
+
+; Function Attrs: nounwind
+declare void @llvm.visc.wait(i8*) #7
+
+; Function Attrs: nounwind
+declare void @llvm.visc.cleanup() #7
+
+attributes #0 = { nounwind uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="true" "no-jump-tables"="false" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="true" "use-soft-float"="false" }
+attributes #1 = { argmemonly nounwind }
+attributes #2 = { nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="true" "use-soft-float"="false" }
+attributes #3 = { "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="true" "use-soft-float"="false" }
+attributes #4 = { noreturn nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="true" "use-soft-float"="false" }
+attributes #5 = { norecurse nounwind uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="true" "no-jump-tables"="false" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="true" "use-soft-float"="false" }
+attributes #6 = { nobuiltin nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="true" "use-soft-float"="false" }
+attributes #7 = { nounwind }
+attributes #8 = { noreturn nounwind }
+
+!llvm.ident = !{!0}
+!visc_hint_cudnn = !{!1, !2, !3, !4, !5, !6, !7, !8, !9, !10, !11, !12, !13, !14, !15, !16, !17, !18, !19, !20, !21, !22, !23, !24, !25, !26, !27, !28, !29, !30, !31, !32, !33, !34, !35, !36, !37, !38, !39, !40, !41, !42, !43, !44, !45, !46, !47, !48, !49, !50}
+!visc_hint_gpu = !{}
+!visc_hint_spir = !{}
+!visc_hint_promise = !{}
+!visc_hint_cpu = !{!51}
+!visc_hint_cpu_gpu = !{}
+!visc_hint_cpu_spir = !{}
+
+!0 = !{!"clang version 4.0.1 "}
+!1 = !{%struct.out._Z10var_0_nodePvmS_m (i8*, i64, i8*, i64)* @_Z10var_0_nodePvmS_m_cloned}
+!2 = !{%struct.out._Z10var_1_nodePvmS_m (i8*, i64, i8*, i64)* @_Z10var_1_nodePvmS_m_cloned}
+!3 = !{%struct.out._Z10var_2_nodePvm (i8*, i64)* @_Z10var_2_nodePvm_cloned}
+!4 = !{%struct.out._Z10var_3_nodePvmS_m (i8*, i64, i8*, i64)* @_Z10var_3_nodePvmS_m_cloned}
+!5 = !{%struct.out._Z10var_4_nodePvmS_m (i8*, i64, i8*, i64)* @_Z10var_4_nodePvmS_m_cloned}
+!6 = !{%struct.out._Z10var_5_nodePvm (i8*, i64)* @_Z10var_5_nodePvm_cloned}
+!7 = !{%struct.out._Z10var_6_nodePvm (i8*, i64)* @_Z10var_6_nodePvm_cloned}
+!8 = !{%struct.out._Z10var_7_nodePvmS_m (i8*, i64, i8*, i64)* @_Z10var_7_nodePvmS_m_cloned}
+!9 = !{%struct.out._Z10var_8_nodePvmS_m (i8*, i64, i8*, i64)* @_Z10var_8_nodePvmS_m_cloned}
+!10 = !{%struct.out._Z10var_9_nodePvm (i8*, i64)* @_Z10var_9_nodePvm_cloned}
+!11 = !{%struct.out._Z11var_10_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_10_nodePvmS_m_cloned}
+!12 = !{%struct.out._Z11var_11_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_11_nodePvmS_m_cloned}
+!13 = !{%struct.out._Z11var_12_nodePvm (i8*, i64)* @_Z11var_12_nodePvm_cloned}
+!14 = !{%struct.out._Z11var_13_nodePvm (i8*, i64)* @_Z11var_13_nodePvm_cloned}
+!15 = !{%struct.out._Z11var_14_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_14_nodePvmS_m_cloned}
+!16 = !{%struct.out._Z11var_15_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_15_nodePvmS_m_cloned}
+!17 = !{%struct.out._Z11var_16_nodePvm (i8*, i64)* @_Z11var_16_nodePvm_cloned}
+!18 = !{%struct.out._Z11var_17_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_17_nodePvmS_m_cloned}
+!19 = !{%struct.out._Z11var_18_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_18_nodePvmS_m_cloned}
+!20 = !{%struct.out._Z11var_19_nodePvm (i8*, i64)* @_Z11var_19_nodePvm_cloned}
+!21 = !{%struct.out._Z11var_20_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_20_nodePvmS_m_cloned}
+!22 = !{%struct.out._Z11var_21_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_21_nodePvmS_m_cloned}
+!23 = !{%struct.out._Z11var_22_nodePvm (i8*, i64)* @_Z11var_22_nodePvm_cloned}
+!24 = !{%struct.out._Z11var_23_nodePvm (i8*, i64)* @_Z11var_23_nodePvm_cloned}
+!25 = !{%struct.out._Z11var_24_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_24_nodePvmS_m_cloned}
+!26 = !{%struct.out._Z11var_25_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_25_nodePvmS_m_cloned}
+!27 = !{%struct.out._Z11var_26_nodePvm (i8*, i64)* @_Z11var_26_nodePvm_cloned}
+!28 = !{%struct.out._Z11var_27_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_27_nodePvmS_m_cloned}
+!29 = !{%struct.out._Z11var_28_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_28_nodePvmS_m_cloned}
+!30 = !{%struct.out._Z11var_29_nodePvm (i8*, i64)* @_Z11var_29_nodePvm_cloned}
+!31 = !{%struct.out._Z11var_30_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_30_nodePvmS_m_cloned}
+!32 = !{%struct.out._Z11var_31_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_31_nodePvmS_m_cloned}
+!33 = !{%struct.out._Z11var_32_nodePvm (i8*, i64)* @_Z11var_32_nodePvm_cloned}
+!34 = !{%struct.out._Z11var_33_nodePvm (i8*, i64)* @_Z11var_33_nodePvm_cloned}
+!35 = !{%struct.out._Z11var_34_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_34_nodePvmS_m_cloned}
+!36 = !{%struct.out._Z11var_35_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_35_nodePvmS_m_cloned}
+!37 = !{%struct.out._Z11var_36_nodePvm (i8*, i64)* @_Z11var_36_nodePvm_cloned}
+!38 = !{%struct.out._Z11var_37_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_37_nodePvmS_m_cloned}
+!39 = !{%struct.out._Z11var_38_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_38_nodePvmS_m_cloned}
+!40 = !{%struct.out._Z11var_39_nodePvm (i8*, i64)* @_Z11var_39_nodePvm_cloned}
+!41 = !{%struct.out._Z11var_40_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_40_nodePvmS_m_cloned}
+!42 = !{%struct.out._Z11var_41_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_41_nodePvmS_m_cloned}
+!43 = !{%struct.out._Z11var_42_nodePvm (i8*, i64)* @_Z11var_42_nodePvm_cloned}
+!44 = !{%struct.out._Z11var_43_nodePvm (i8*, i64)* @_Z11var_43_nodePvm_cloned}
+!45 = !{%struct.out._Z11var_44_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_44_nodePvmS_m_cloned}
+!46 = !{%struct.out._Z11var_45_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_45_nodePvmS_m_cloned}
+!47 = !{%struct.out._Z11var_46_nodePvm (i8*, i64)* @_Z11var_46_nodePvm_cloned}
+!48 = !{%struct.out._Z11var_47_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_47_nodePvmS_m_cloned}
+!49 = !{%struct.out._Z11var_48_nodePvmS_m (i8*, i64, i8*, i64)* @_Z11var_48_nodePvmS_m_cloned}
+!50 = !{%struct.out._Z11var_49_nodePvm (i8*, i64)* @_Z11var_49_nodePvm_cloned}
+!51 = !{%struct.out._Z4rootPvmS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_m (i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64, i8*, i64)* @_Z4rootPvmS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_mS_m_cloned}
+!52 = !{!53, !58, i64 40}
+!53 = !{!"_ZTS6Tensor", !54, i64 0, !54, i64 4, !57, i64 8, !58, i64 16, !58, i64 24, !58, i64 32, !58, i64 40, !59, i64 48, !59, i64 56, !60, i64 64}
+!54 = !{!"int", !55, i64 0}
+!55 = !{!"omnipotent char", !56, i64 0}
+!56 = !{!"Simple C++ TBAA"}
+!57 = !{!"_ZTS15data_location_t", !55, i64 0}
+!58 = !{!"any pointer", !55, i64 0}
+!59 = !{!"long", !55, i64 0}
+!60 = !{!"_ZTS9Dimension", !54, i64 0, !58, i64 8}
+!61 = !{!53, !54, i64 64}
+!62 = !{!53, !58, i64 72}
+!63 = !{!59, !59, i64 0}
+!64 = !{!53, !59, i64 48}
+!65 = !{!53, !59, i64 56}
+!66 = !{!53, !58, i64 32}
+!67 = !{!53, !54, i64 0}
+!68 = !{!69, !69, i64 0}
+!69 = !{!"float", !55, i64 0}
+!70 = distinct !{!70, !71}
+!71 = !{!"llvm.loop.unroll.disable"}
+!72 = distinct !{!72, !73, !74}
+!73 = !{!"llvm.loop.vectorize.width", i32 1}
+!74 = !{!"llvm.loop.interleave.count", i32 1}
+!75 = distinct !{!75, !73, !74}
+!76 = distinct !{!76, !71}
+!77 = distinct !{!77, !73, !74}
+!78 = distinct !{!78, !71}
+!79 = distinct !{!79, !73, !74}
+!80 = distinct !{!80, !73, !74}
+!81 = distinct !{!81, !73, !74}
+!82 = distinct !{!82, !71}
+!83 = distinct !{!83, !73, !74}
+!84 = distinct !{!84, !73, !74}
+!85 = distinct !{!85, !73, !74}
+!86 = distinct !{!86, !73, !74}
+!87 = !{!55, !55, i64 0}
+!88 = distinct !{!88, !73, !74}
+!89 = distinct !{!89, !90, !73, !74}
+!90 = !{!"llvm.loop.unroll.runtime.disable"}
+!91 = !{!92, !92, i64 0}
+!92 = !{!"vtable pointer", !56, i64 0}
+!93 = !{!94, !58, i64 216}
+!94 = !{!"_ZTSSt9basic_iosIcSt11char_traitsIcEE", !58, i64 216, !55, i64 224, !95, i64 225, !58, i64 232, !58, i64 240, !58, i64 248, !58, i64 256}
+!95 = !{!"bool", !55, i64 0}
+!96 = !{!94, !55, i64 224}
+!97 = !{!94, !95, i64 225}
+!98 = !{!99, !100, i64 64}
+!99 = !{!"_ZTSNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEE", !100, i64 64, !101, i64 72}
+!100 = !{!"_ZTSSt13_Ios_Openmode", !55, i64 0}
+!101 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !102, i64 0, !59, i64 8, !55, i64 16}
+!102 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !58, i64 0}
+!103 = !{!102, !58, i64 0}
+!104 = !{!101, !59, i64 8}
+!105 = !{!106, !106, i64 0}
+!106 = !{!"_ZTSSt13_Ios_Fmtflags", !55, i64 0}
+!107 = !{!101, !58, i64 0}
+!108 = !{!109, !106, i64 24}
+!109 = !{!"_ZTSSt8ios_base", !59, i64 8, !59, i64 16, !106, i64 24, !110, i64 28, !110, i64 32, !58, i64 40, !111, i64 48, !55, i64 64, !54, i64 192, !58, i64 200, !112, i64 208}
+!110 = !{!"_ZTSSt12_Ios_Iostate", !55, i64 0}
+!111 = !{!"_ZTSNSt8ios_base6_WordsE", !58, i64 0, !59, i64 8}
+!112 = !{!"_ZTSSt6locale", !58, i64 0}
+!113 = !{!114}
+!114 = distinct !{!114, !115, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!115 = distinct !{!115, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!116 = !{!117}
+!117 = distinct !{!117, !118, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!118 = distinct !{!118, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!119 = !{!120}
+!120 = distinct !{!120, !121, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!121 = distinct !{!121, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!122 = !{!123}
+!123 = distinct !{!123, !124, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!124 = distinct !{!124, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!125 = !{!126}
+!126 = distinct !{!126, !127, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!127 = distinct !{!127, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!128 = !{!129}
+!129 = distinct !{!129, !130, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!130 = distinct !{!130, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!131 = !{!132}
+!132 = distinct !{!132, !133, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!133 = distinct !{!133, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!134 = !{!135}
+!135 = distinct !{!135, !136, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!136 = distinct !{!136, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!137 = !{!138}
+!138 = distinct !{!138, !139, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!139 = distinct !{!139, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!140 = !{!141}
+!141 = distinct !{!141, !142, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!142 = distinct !{!142, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!143 = !{!144}
+!144 = distinct !{!144, !145, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!145 = distinct !{!145, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!146 = !{!147}
+!147 = distinct !{!147, !148, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!148 = distinct !{!148, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!149 = !{!150}
+!150 = distinct !{!150, !151, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!151 = distinct !{!151, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!152 = !{!153}
+!153 = distinct !{!153, !154, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!154 = distinct !{!154, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!155 = !{!156}
+!156 = distinct !{!156, !157, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!157 = distinct !{!157, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!158 = !{!159}
+!159 = distinct !{!159, !160, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!160 = distinct !{!160, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!161 = !{!162}
+!162 = distinct !{!162, !163, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!163 = distinct !{!163, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!164 = !{!165}
+!165 = distinct !{!165, !166, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!166 = distinct !{!166, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!167 = !{!168}
+!168 = distinct !{!168, !169, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!169 = distinct !{!169, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!170 = !{!171}
+!171 = distinct !{!171, !172, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!172 = distinct !{!172, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!173 = !{!174}
+!174 = distinct !{!174, !175, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!175 = distinct !{!175, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!176 = !{!177}
+!177 = distinct !{!177, !178, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!178 = distinct !{!178, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!179 = !{!180}
+!180 = distinct !{!180, !181, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!181 = distinct !{!181, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!182 = !{!183}
+!183 = distinct !{!183, !184, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!184 = distinct !{!184, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!185 = !{!186}
+!186 = distinct !{!186, !187, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!187 = distinct !{!187, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!188 = !{!189}
+!189 = distinct !{!189, !190, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!190 = distinct !{!190, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!191 = !{!192}
+!192 = distinct !{!192, !193, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!193 = distinct !{!193, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!194 = !{!195}
+!195 = distinct !{!195, !196, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!196 = distinct !{!196, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!197 = !{!198}
+!198 = distinct !{!198, !199, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!199 = distinct !{!199, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!200 = !{!201}
+!201 = distinct !{!201, !202, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!202 = distinct !{!202, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!203 = !{!204}
+!204 = distinct !{!204, !205, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!205 = distinct !{!205, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!206 = !{!207}
+!207 = distinct !{!207, !208, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_: %agg.result"}
+!208 = distinct !{!208, !"_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_OS8_"}
+!209 = !{!210, !58, i64 0}
+!210 = !{!"_ZTS6RootIn", !58, i64 0, !59, i64 8, !58, i64 16, !59, i64 24, !58, i64 32, !59, i64 40, !58, i64 48, !59, i64 56, !58, i64 64, !59, i64 72, !58, i64 80, !59, i64 88, !58, i64 96, !59, i64 104, !58, i64 112, !59, i64 120, !58, i64 128, !59, i64 136, !58, i64 144, !59, i64 152, !58, i64 160, !59, i64 168, !58, i64 176, !59, i64 184, !58, i64 192, !59, i64 200, !58, i64 208, !59, i64 216, !58, i64 224, !59, i64 232, !58, i64 240, !59, i64 248, !58, i64 256, !59, i64 264, !58, i64 272, !59, i64 280, !58, i64 288, !59, i64 296, !58, i64 304, !59, i64 312, !58, i64 320, !59, i64 328, !58, i64 336, !59, i64 344, !58, i64 352, !59, i64 360, !58, i64 368, !59, i64 376, !58, i64 384, !59, i64 392, !58, i64 400, !59, i64 408, !58, i64 416, !59, i64 424, !58, i64 432, !59, i64 440, !58, i64 448, !59, i64 456, !58, i64 464, !59, i64 472, !58, i64 480, !59, i64 488, !211, i64 496}
+!211 = !{!"_ZTS5ret_t", !58, i64 0, !59, i64 8}
+!212 = !{!210, !59, i64 8}
+!213 = !{!210, !58, i64 16}
+!214 = !{!210, !59, i64 24}
+!215 = !{!210, !58, i64 32}
+!216 = !{!210, !59, i64 40}
+!217 = !{!210, !58, i64 48}
+!218 = !{!210, !59, i64 56}
+!219 = !{!210, !58, i64 64}
+!220 = !{!210, !59, i64 72}
+!221 = !{!210, !58, i64 80}
+!222 = !{!210, !59, i64 88}
+!223 = !{!210, !58, i64 96}
+!224 = !{!210, !59, i64 104}
+!225 = !{!210, !58, i64 112}
+!226 = !{!210, !59, i64 120}
+!227 = !{!210, !58, i64 128}
+!228 = !{!210, !59, i64 136}
+!229 = !{!210, !58, i64 144}
+!230 = !{!210, !59, i64 152}
+!231 = !{!210, !58, i64 160}
+!232 = !{!210, !59, i64 168}
+!233 = !{!210, !58, i64 176}
+!234 = !{!210, !59, i64 184}
+!235 = !{!210, !58, i64 192}
+!236 = !{!210, !59, i64 200}
+!237 = !{!210, !58, i64 208}
+!238 = !{!210, !59, i64 216}
+!239 = !{!210, !58, i64 224}
+!240 = !{!210, !59, i64 232}
+!241 = !{!210, !58, i64 240}
+!242 = !{!210, !59, i64 248}
+!243 = !{!210, !58, i64 256}
+!244 = !{!210, !59, i64 264}
+!245 = !{!210, !58, i64 272}
+!246 = !{!210, !59, i64 280}
+!247 = !{!210, !58, i64 288}
+!248 = !{!210, !59, i64 296}
+!249 = !{!210, !58, i64 304}
+!250 = !{!210, !59, i64 312}
+!251 = !{!210, !58, i64 320}
+!252 = !{!210, !59, i64 328}
+!253 = !{!210, !58, i64 336}
+!254 = !{!210, !59, i64 344}
+!255 = !{!210, !58, i64 352}
+!256 = !{!210, !59, i64 360}
+!257 = !{!210, !58, i64 368}
+!258 = !{!210, !59, i64 376}
+!259 = !{!210, !58, i64 384}
+!260 = !{!210, !59, i64 392}
+!261 = !{!210, !58, i64 400}
+!262 = !{!210, !59, i64 408}
+!263 = !{!210, !58, i64 416}
+!264 = !{!210, !59, i64 424}
+!265 = !{!210, !58, i64 432}
+!266 = !{!210, !59, i64 440}
+!267 = !{!210, !58, i64 448}
+!268 = !{!210, !59, i64 456}
+!269 = !{!210, !58, i64 464}
+!270 = !{!210, !59, i64 472}
+!271 = !{!210, !58, i64 480}
+!272 = !{!210, !59, i64 488}
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10_front/build/vgg16_cifar10_linked b/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10_front/build/vgg16_cifar10_linked
new file mode 100755
index 0000000000000000000000000000000000000000..9822f3969c41ced6b162e48a1b90b34040582632
Binary files /dev/null and b/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10_front/build/vgg16_cifar10_linked differ
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10_front/build/vgg16_cifar10_linked.bc b/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10_front/build/vgg16_cifar10_linked.bc
new file mode 100644
index 0000000000000000000000000000000000000000..5509c97e970efee316d7083d6a574f7eaeeaf01a
Binary files /dev/null and b/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10_front/build/vgg16_cifar10_linked.bc differ
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10_front/build/vgg16_cifar10_tune b/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10_front/build/vgg16_cifar10_tune
new file mode 100755
index 0000000000000000000000000000000000000000..e661fd0c167c169b6e2f204313bf6c750b741fb7
Binary files /dev/null and b/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10_front/build/vgg16_cifar10_tune differ
diff --git a/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10_front/src/vgg16_cifar10.cpp b/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10_front/src/vgg16_cifar10.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..6e475e0f6477f54c689d4f2d76d855dd3ae508be
--- /dev/null
+++ b/llvm/test/VISC/DNN_Benchmarks/benchmarks/vgg16_cifar10_front/src/vgg16_cifar10.cpp
@@ -0,0 +1,983 @@
+
+#include <stdio.h> 
+#include <stdlib.h> 
+#include <unistd.h> 
+#include <fcntl.h> 
+#include <sys/stat.h> 
+#include <cstring> 
+#include <visc.h> 
+#include <tensorTypes.h> 
+#include <tensorUtils.h> 
+
+void var_0_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(2, t1, t2, 0); 
+
+  void *r = __visc__tensor_convolution(t1, t2, 1, 1, 1, 1); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_1_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(2, t1, t2, 0); 
+
+  void *r = __visc__tensor_add(t1, t2); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_2_node(void* t1, size_t bytes_t1) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(1, t1, 0); 
+
+  void* r = __visc__tensor_relu(t1); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_3_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(2, t1, t2, 0); 
+
+  void *r = __visc__tensor_convolution(t1, t2, 1, 1, 1, 1); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_4_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(2, t1, t2, 0); 
+
+  void *r = __visc__tensor_add(t1, t2); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_5_node(void* t1, size_t bytes_t1) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(1, t1, 0); 
+
+  void* r = __visc__tensor_relu(t1); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_6_node(void* t1, size_t bytes_t1) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(1, t1, 0); 
+
+  void* r = __visc__tensor_pool_max(t1, 2, 2, 0, 0, 2, 2); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_7_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(2, t1, t2, 0); 
+
+  void *r = __visc__tensor_convolution(t1, t2, 1, 1, 1, 1); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_8_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(2, t1, t2, 0); 
+
+  void *r = __visc__tensor_add(t1, t2); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_9_node(void* t1, size_t bytes_t1) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(1, t1, 0); 
+
+  void* r = __visc__tensor_relu(t1); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_10_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(2, t1, t2, 0); 
+
+  void *r = __visc__tensor_convolution(t1, t2, 1, 1, 1, 1); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_11_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(2, t1, t2, 0); 
+
+  void *r = __visc__tensor_add(t1, t2); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_12_node(void* t1, size_t bytes_t1) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(1, t1, 0); 
+
+  void* r = __visc__tensor_relu(t1); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_13_node(void* t1, size_t bytes_t1) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(1, t1, 0); 
+
+  void* r = __visc__tensor_pool_max(t1, 2, 2, 0, 0, 2, 2); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_14_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(2, t1, t2, 0); 
+
+  void *r = __visc__tensor_convolution(t1, t2, 1, 1, 1, 1); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_15_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(2, t1, t2, 0); 
+
+  void *r = __visc__tensor_add(t1, t2); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_16_node(void* t1, size_t bytes_t1) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(1, t1, 0); 
+
+  void* r = __visc__tensor_relu(t1); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_17_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(2, t1, t2, 0); 
+
+  void *r = __visc__tensor_convolution(t1, t2, 1, 1, 1, 1); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_18_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(2, t1, t2, 0); 
+
+  void *r = __visc__tensor_add(t1, t2); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_19_node(void* t1, size_t bytes_t1) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(1, t1, 0); 
+
+  void* r = __visc__tensor_relu(t1); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_20_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(2, t1, t2, 0); 
+
+  void *r = __visc__tensor_convolution(t1, t2, 1, 1, 1, 1); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_21_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(2, t1, t2, 0); 
+
+  void *r = __visc__tensor_add(t1, t2); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_22_node(void* t1, size_t bytes_t1) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(1, t1, 0); 
+
+  void* r = __visc__tensor_relu(t1); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_23_node(void* t1, size_t bytes_t1) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(1, t1, 0); 
+
+  void* r = __visc__tensor_pool_max(t1, 2, 2, 0, 0, 2, 2); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_24_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(2, t1, t2, 0); 
+
+  void *r = __visc__tensor_convolution(t1, t2, 1, 1, 1, 1); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_25_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(2, t1, t2, 0); 
+
+  void *r = __visc__tensor_add(t1, t2); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_26_node(void* t1, size_t bytes_t1) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(1, t1, 0); 
+
+  void* r = __visc__tensor_relu(t1); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_27_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(2, t1, t2, 0); 
+
+  void *r = __visc__tensor_convolution(t1, t2, 1, 1, 1, 1); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_28_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(2, t1, t2, 0); 
+
+  void *r = __visc__tensor_add(t1, t2); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_29_node(void* t1, size_t bytes_t1) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(1, t1, 0); 
+
+  void* r = __visc__tensor_relu(t1); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_30_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(2, t1, t2, 0); 
+
+  void *r = __visc__tensor_convolution(t1, t2, 1, 1, 1, 1); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_31_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(2, t1, t2, 0); 
+
+  void *r = __visc__tensor_add(t1, t2); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_32_node(void* t1, size_t bytes_t1) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(1, t1, 0); 
+
+  void* r = __visc__tensor_relu(t1); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_33_node(void* t1, size_t bytes_t1) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(1, t1, 0); 
+
+  void* r = __visc__tensor_pool_max(t1, 2, 2, 0, 0, 2, 2); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_34_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(2, t1, t2, 0); 
+
+  void *r = __visc__tensor_convolution(t1, t2, 1, 1, 1, 1); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_35_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(2, t1, t2, 0); 
+
+  void *r = __visc__tensor_add(t1, t2); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_36_node(void* t1, size_t bytes_t1) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(1, t1, 0); 
+
+  void* r = __visc__tensor_relu(t1); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_37_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(2, t1, t2, 0); 
+
+  void *r = __visc__tensor_convolution(t1, t2, 1, 1, 1, 1); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_38_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(2, t1, t2, 0); 
+
+  void *r = __visc__tensor_add(t1, t2); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_39_node(void* t1, size_t bytes_t1) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(1, t1, 0); 
+
+  void* r = __visc__tensor_relu(t1); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_40_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(2, t1, t2, 0); 
+
+  void *r = __visc__tensor_convolution(t1, t2, 1, 1, 1, 1); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_41_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(2, t1, t2, 0); 
+
+  void *r = __visc__tensor_add(t1, t2); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_42_node(void* t1, size_t bytes_t1) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(1, t1, 0); 
+
+  void* r = __visc__tensor_relu(t1); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_43_node(void* t1, size_t bytes_t1) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(1, t1, 0); 
+
+  void* r = __visc__tensor_pool_max(t1, 2, 2, 0, 0, 2, 2); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_44_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(2, t1, t2, 0); 
+
+  void *r = __visc__tensor_mul(t1, t2); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_45_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(2, t1, t2, 0); 
+
+  void *r = __visc__tensor_add(t1, t2); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_46_node(void* t1, size_t bytes_t1) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(1, t1, 0); 
+
+  void* r = __visc__tensor_relu(t1); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_47_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(2, t1, t2, 0); 
+
+  void *r = __visc__tensor_mul(t1, t2); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_48_node(void* t1, size_t bytes_t1, void* t2, size_t bytes_t2) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(2, t1, t2, 0); 
+
+  void *r = __visc__tensor_add(t1, t2); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void var_49_node(void* t1, size_t bytes_t1) { 
+  __visc__hint(visc::CUDNN_TARGET); 
+  __visc__attributes(1, t1, 0); 
+
+  void* r = __visc__tensor_softmax(t1); 
+  __visc__return(2, r, (size_t) 0); 
+}
+
+void root(void* input, size_t input_bytes, 
+	  void* conv2d_1_w, size_t conv2d_1_w_bytes, 
+	  void* conv2d_1_b, size_t conv2d_1_b_bytes, 
+	  void* conv2d_2_w, size_t conv2d_2_w_bytes, 
+	  void* conv2d_2_b, size_t conv2d_2_b_bytes, 
+	  void* conv2d_3_w, size_t conv2d_3_w_bytes, 
+	  void* conv2d_3_b, size_t conv2d_3_b_bytes, 
+	  void* conv2d_4_w, size_t conv2d_4_w_bytes, 
+	  void* conv2d_4_b, size_t conv2d_4_b_bytes, 
+	  void* conv2d_5_w, size_t conv2d_5_w_bytes, 
+	  void* conv2d_5_b, size_t conv2d_5_b_bytes, 
+	  void* conv2d_6_w, size_t conv2d_6_w_bytes, 
+	  void* conv2d_6_b, size_t conv2d_6_b_bytes, 
+	  void* conv2d_7_w, size_t conv2d_7_w_bytes, 
+	  void* conv2d_7_b, size_t conv2d_7_b_bytes, 
+	  void* conv2d_8_w, size_t conv2d_8_w_bytes, 
+	  void* conv2d_8_b, size_t conv2d_8_b_bytes, 
+	  void* conv2d_9_w, size_t conv2d_9_w_bytes, 
+	  void* conv2d_9_b, size_t conv2d_9_b_bytes, 
+	  void* conv2d_10_w, size_t conv2d_10_w_bytes, 
+	  void* conv2d_10_b, size_t conv2d_10_b_bytes, 
+	  void* conv2d_11_w, size_t conv2d_11_w_bytes, 
+	  void* conv2d_11_b, size_t conv2d_11_b_bytes, 
+	  void* conv2d_12_w, size_t conv2d_12_w_bytes, 
+	  void* conv2d_12_b, size_t conv2d_12_b_bytes, 
+	  void* conv2d_13_w, size_t conv2d_13_w_bytes, 
+	  void* conv2d_13_b, size_t conv2d_13_b_bytes, 
+	  void* dense_1_w, size_t dense_1_w_bytes, 
+	  void* dense_1_b, size_t dense_1_b_bytes, 
+	  void* dense_2_w, size_t dense_2_w_bytes, 
+	  void* dense_2_b, size_t dense_2_b_bytes){ 
+
+
+  __visc__hint(visc::CPU_TARGET); 
+  __visc__attributes(31, input, conv2d_1_w, conv2d_1_b, conv2d_2_w, conv2d_2_b, conv2d_3_w, conv2d_3_b, conv2d_4_w, conv2d_4_b, conv2d_5_w, conv2d_5_b, conv2d_6_w, conv2d_6_b, conv2d_7_w, conv2d_7_b, conv2d_8_w, conv2d_8_b, conv2d_9_w, conv2d_9_b, conv2d_10_w, conv2d_10_b, conv2d_11_w, conv2d_11_b, conv2d_12_w, conv2d_12_b, conv2d_13_w, conv2d_13_b, dense_1_w, dense_1_b, dense_2_w, dense_2_b, 0); 
+
+
+  void* var_0 = __visc__createNodeND(0, var_0_node); 
+
+  __visc__bindIn(var_0, 0, 0, 0); 
+  __visc__bindIn(var_0, 1, 1, 0); 
+  __visc__bindIn(var_0, 2, 2, 0); 
+  __visc__bindIn(var_0, 3, 3, 0); 
+
+  void* var_1 = __visc__createNodeND(0, var_1_node); 
+
+  __visc__edge(var_0, var_1, 1, 0, 0, 0); 
+  __visc__edge(var_0, var_1, 1, 1, 1, 0); 
+  __visc__bindIn(var_1, 4, 2, 0); 
+  __visc__bindIn(var_1, 5, 3, 0); 
+
+  void* var_2 = __visc__createNodeND(0, var_2_node); 
+
+  __visc__edge(var_1, var_2, 1, 0, 0, 0); 
+  __visc__edge(var_1, var_2, 1, 1, 1, 0); 
+
+  void* var_3 = __visc__createNodeND(0, var_3_node); 
+
+  __visc__edge(var_2, var_3, 1, 0, 0, 0); 
+  __visc__edge(var_2, var_3, 1, 1, 1, 0); 
+  __visc__bindIn(var_3, 6, 2, 0); 
+  __visc__bindIn(var_3, 7, 3, 0); 
+
+  void* var_4 = __visc__createNodeND(0, var_4_node); 
+
+  __visc__edge(var_3, var_4, 1, 0, 0, 0); 
+  __visc__edge(var_3, var_4, 1, 1, 1, 0); 
+  __visc__bindIn(var_4, 8, 2, 0); 
+  __visc__bindIn(var_4, 9, 3, 0); 
+
+  void* var_5 = __visc__createNodeND(0, var_5_node); 
+
+  __visc__edge(var_4, var_5, 1, 0, 0, 0); 
+  __visc__edge(var_4, var_5, 1, 1, 1, 0); 
+
+  void* var_6 = __visc__createNodeND(0, var_6_node); 
+
+  __visc__edge(var_5, var_6, 1, 0, 0, 0); 
+  __visc__edge(var_5, var_6, 1, 1, 1, 0); 
+
+  void* var_7 = __visc__createNodeND(0, var_7_node); 
+
+  __visc__edge(var_6, var_7, 1, 0, 0, 0); 
+  __visc__edge(var_6, var_7, 1, 1, 1, 0); 
+  __visc__bindIn(var_7, 10, 2, 0); 
+  __visc__bindIn(var_7, 11, 3, 0); 
+
+  void* var_8 = __visc__createNodeND(0, var_8_node); 
+
+  __visc__edge(var_7, var_8, 1, 0, 0, 0); 
+  __visc__edge(var_7, var_8, 1, 1, 1, 0); 
+  __visc__bindIn(var_8, 12, 2, 0); 
+  __visc__bindIn(var_8, 13, 3, 0); 
+
+  void* var_9 = __visc__createNodeND(0, var_9_node); 
+
+  __visc__edge(var_8, var_9, 1, 0, 0, 0); 
+  __visc__edge(var_8, var_9, 1, 1, 1, 0); 
+
+  void* var_10 = __visc__createNodeND(0, var_10_node); 
+
+  __visc__edge(var_9, var_10, 1, 0, 0, 0); 
+  __visc__edge(var_9, var_10, 1, 1, 1, 0); 
+  __visc__bindIn(var_10, 14, 2, 0); 
+  __visc__bindIn(var_10, 15, 3, 0); 
+
+  void* var_11 = __visc__createNodeND(0, var_11_node); 
+
+  __visc__edge(var_10, var_11, 1, 0, 0, 0); 
+  __visc__edge(var_10, var_11, 1, 1, 1, 0); 
+  __visc__bindIn(var_11, 16, 2, 0); 
+  __visc__bindIn(var_11, 17, 3, 0); 
+
+  void* var_12 = __visc__createNodeND(0, var_12_node); 
+
+  __visc__edge(var_11, var_12, 1, 0, 0, 0); 
+  __visc__edge(var_11, var_12, 1, 1, 1, 0); 
+
+  void* var_13 = __visc__createNodeND(0, var_13_node); 
+
+  __visc__edge(var_12, var_13, 1, 0, 0, 0); 
+  __visc__edge(var_12, var_13, 1, 1, 1, 0); 
+
+  void* var_14 = __visc__createNodeND(0, var_14_node); 
+
+  __visc__edge(var_13, var_14, 1, 0, 0, 0); 
+  __visc__edge(var_13, var_14, 1, 1, 1, 0); 
+  __visc__bindIn(var_14, 18, 2, 0); 
+  __visc__bindIn(var_14, 19, 3, 0); 
+
+  void* var_15 = __visc__createNodeND(0, var_15_node); 
+
+  __visc__edge(var_14, var_15, 1, 0, 0, 0); 
+  __visc__edge(var_14, var_15, 1, 1, 1, 0); 
+  __visc__bindIn(var_15, 20, 2, 0); 
+  __visc__bindIn(var_15, 21, 3, 0); 
+
+  void* var_16 = __visc__createNodeND(0, var_16_node); 
+
+  __visc__edge(var_15, var_16, 1, 0, 0, 0); 
+  __visc__edge(var_15, var_16, 1, 1, 1, 0); 
+
+  void* var_17 = __visc__createNodeND(0, var_17_node); 
+
+  __visc__edge(var_16, var_17, 1, 0, 0, 0); 
+  __visc__edge(var_16, var_17, 1, 1, 1, 0); 
+  __visc__bindIn(var_17, 22, 2, 0); 
+  __visc__bindIn(var_17, 23, 3, 0); 
+
+  void* var_18 = __visc__createNodeND(0, var_18_node); 
+
+  __visc__edge(var_17, var_18, 1, 0, 0, 0); 
+  __visc__edge(var_17, var_18, 1, 1, 1, 0); 
+  __visc__bindIn(var_18, 24, 2, 0); 
+  __visc__bindIn(var_18, 25, 3, 0); 
+
+  void* var_19 = __visc__createNodeND(0, var_19_node); 
+
+  __visc__edge(var_18, var_19, 1, 0, 0, 0); 
+  __visc__edge(var_18, var_19, 1, 1, 1, 0); 
+
+  void* var_20 = __visc__createNodeND(0, var_20_node); 
+
+  __visc__edge(var_19, var_20, 1, 0, 0, 0); 
+  __visc__edge(var_19, var_20, 1, 1, 1, 0); 
+  __visc__bindIn(var_20, 26, 2, 0); 
+  __visc__bindIn(var_20, 27, 3, 0); 
+
+  void* var_21 = __visc__createNodeND(0, var_21_node); 
+
+  __visc__edge(var_20, var_21, 1, 0, 0, 0); 
+  __visc__edge(var_20, var_21, 1, 1, 1, 0); 
+  __visc__bindIn(var_21, 28, 2, 0); 
+  __visc__bindIn(var_21, 29, 3, 0); 
+
+  void* var_22 = __visc__createNodeND(0, var_22_node); 
+
+  __visc__edge(var_21, var_22, 1, 0, 0, 0); 
+  __visc__edge(var_21, var_22, 1, 1, 1, 0); 
+
+  void* var_23 = __visc__createNodeND(0, var_23_node); 
+
+  __visc__edge(var_22, var_23, 1, 0, 0, 0); 
+  __visc__edge(var_22, var_23, 1, 1, 1, 0); 
+
+  void* var_24 = __visc__createNodeND(0, var_24_node); 
+
+  __visc__edge(var_23, var_24, 1, 0, 0, 0); 
+  __visc__edge(var_23, var_24, 1, 1, 1, 0); 
+  __visc__bindIn(var_24, 30, 2, 0); 
+  __visc__bindIn(var_24, 31, 3, 0); 
+
+  void* var_25 = __visc__createNodeND(0, var_25_node); 
+
+  __visc__edge(var_24, var_25, 1, 0, 0, 0); 
+  __visc__edge(var_24, var_25, 1, 1, 1, 0); 
+  __visc__bindIn(var_25, 32, 2, 0); 
+  __visc__bindIn(var_25, 33, 3, 0); 
+
+  void* var_26 = __visc__createNodeND(0, var_26_node); 
+
+  __visc__edge(var_25, var_26, 1, 0, 0, 0); 
+  __visc__edge(var_25, var_26, 1, 1, 1, 0); 
+
+  void* var_27 = __visc__createNodeND(0, var_27_node); 
+
+  __visc__edge(var_26, var_27, 1, 0, 0, 0); 
+  __visc__edge(var_26, var_27, 1, 1, 1, 0); 
+  __visc__bindIn(var_27, 34, 2, 0); 
+  __visc__bindIn(var_27, 35, 3, 0); 
+
+  void* var_28 = __visc__createNodeND(0, var_28_node); 
+
+  __visc__edge(var_27, var_28, 1, 0, 0, 0); 
+  __visc__edge(var_27, var_28, 1, 1, 1, 0); 
+  __visc__bindIn(var_28, 36, 2, 0); 
+  __visc__bindIn(var_28, 37, 3, 0); 
+
+  void* var_29 = __visc__createNodeND(0, var_29_node); 
+
+  __visc__edge(var_28, var_29, 1, 0, 0, 0); 
+  __visc__edge(var_28, var_29, 1, 1, 1, 0); 
+
+  void* var_30 = __visc__createNodeND(0, var_30_node); 
+
+  __visc__edge(var_29, var_30, 1, 0, 0, 0); 
+  __visc__edge(var_29, var_30, 1, 1, 1, 0); 
+  __visc__bindIn(var_30, 38, 2, 0); 
+  __visc__bindIn(var_30, 39, 3, 0); 
+
+  void* var_31 = __visc__createNodeND(0, var_31_node); 
+
+  __visc__edge(var_30, var_31, 1, 0, 0, 0); 
+  __visc__edge(var_30, var_31, 1, 1, 1, 0); 
+  __visc__bindIn(var_31, 40, 2, 0); 
+  __visc__bindIn(var_31, 41, 3, 0); 
+
+  void* var_32 = __visc__createNodeND(0, var_32_node); 
+
+  __visc__edge(var_31, var_32, 1, 0, 0, 0); 
+  __visc__edge(var_31, var_32, 1, 1, 1, 0); 
+
+  void* var_33 = __visc__createNodeND(0, var_33_node); 
+
+  __visc__edge(var_32, var_33, 1, 0, 0, 0); 
+  __visc__edge(var_32, var_33, 1, 1, 1, 0); 
+
+  void* var_34 = __visc__createNodeND(0, var_34_node); 
+
+  __visc__edge(var_33, var_34, 1, 0, 0, 0); 
+  __visc__edge(var_33, var_34, 1, 1, 1, 0); 
+  __visc__bindIn(var_34, 42, 2, 0); 
+  __visc__bindIn(var_34, 43, 3, 0); 
+
+  void* var_35 = __visc__createNodeND(0, var_35_node); 
+
+  __visc__edge(var_34, var_35, 1, 0, 0, 0); 
+  __visc__edge(var_34, var_35, 1, 1, 1, 0); 
+  __visc__bindIn(var_35, 44, 2, 0); 
+  __visc__bindIn(var_35, 45, 3, 0); 
+
+  void* var_36 = __visc__createNodeND(0, var_36_node); 
+
+  __visc__edge(var_35, var_36, 1, 0, 0, 0); 
+  __visc__edge(var_35, var_36, 1, 1, 1, 0); 
+
+  void* var_37 = __visc__createNodeND(0, var_37_node); 
+
+  __visc__edge(var_36, var_37, 1, 0, 0, 0); 
+  __visc__edge(var_36, var_37, 1, 1, 1, 0); 
+  __visc__bindIn(var_37, 46, 2, 0); 
+  __visc__bindIn(var_37, 47, 3, 0); 
+
+  void* var_38 = __visc__createNodeND(0, var_38_node); 
+
+  __visc__edge(var_37, var_38, 1, 0, 0, 0); 
+  __visc__edge(var_37, var_38, 1, 1, 1, 0); 
+  __visc__bindIn(var_38, 48, 2, 0); 
+  __visc__bindIn(var_38, 49, 3, 0); 
+
+  void* var_39 = __visc__createNodeND(0, var_39_node); 
+
+  __visc__edge(var_38, var_39, 1, 0, 0, 0); 
+  __visc__edge(var_38, var_39, 1, 1, 1, 0); 
+
+  void* var_40 = __visc__createNodeND(0, var_40_node); 
+
+  __visc__edge(var_39, var_40, 1, 0, 0, 0); 
+  __visc__edge(var_39, var_40, 1, 1, 1, 0); 
+  __visc__bindIn(var_40, 50, 2, 0); 
+  __visc__bindIn(var_40, 51, 3, 0); 
+
+  void* var_41 = __visc__createNodeND(0, var_41_node); 
+
+  __visc__edge(var_40, var_41, 1, 0, 0, 0); 
+  __visc__edge(var_40, var_41, 1, 1, 1, 0); 
+  __visc__bindIn(var_41, 52, 2, 0); 
+  __visc__bindIn(var_41, 53, 3, 0); 
+
+  void* var_42 = __visc__createNodeND(0, var_42_node); 
+
+  __visc__edge(var_41, var_42, 1, 0, 0, 0); 
+  __visc__edge(var_41, var_42, 1, 1, 1, 0); 
+
+  void* var_43 = __visc__createNodeND(0, var_43_node); 
+
+  __visc__edge(var_42, var_43, 1, 0, 0, 0); 
+  __visc__edge(var_42, var_43, 1, 1, 1, 0); 
+
+  void* var_44 = __visc__createNodeND(0, var_44_node); 
+
+  __visc__edge(var_43, var_44, 1, 0, 0, 0); 
+  __visc__edge(var_43, var_44, 1, 1, 1, 0); 
+  __visc__bindIn(var_44, 54, 2, 0); 
+  __visc__bindIn(var_44, 55, 3, 0); 
+
+  void* var_45 = __visc__createNodeND(0, var_45_node); 
+
+  __visc__edge(var_44, var_45, 1, 0, 0, 0); 
+  __visc__edge(var_44, var_45, 1, 1, 1, 0); 
+  __visc__bindIn(var_45, 56, 2, 0); 
+  __visc__bindIn(var_45, 57, 3, 0); 
+
+  void* var_46 = __visc__createNodeND(0, var_46_node); 
+
+  __visc__edge(var_45, var_46, 1, 0, 0, 0); 
+  __visc__edge(var_45, var_46, 1, 1, 1, 0); 
+
+  void* var_47 = __visc__createNodeND(0, var_47_node); 
+
+  __visc__edge(var_46, var_47, 1, 0, 0, 0); 
+  __visc__edge(var_46, var_47, 1, 1, 1, 0); 
+  __visc__bindIn(var_47, 58, 2, 0); 
+  __visc__bindIn(var_47, 59, 3, 0); 
+
+  void* var_48 = __visc__createNodeND(0, var_48_node); 
+
+  __visc__edge(var_47, var_48, 1, 0, 0, 0); 
+  __visc__edge(var_47, var_48, 1, 1, 1, 0); 
+  __visc__bindIn(var_48, 60, 2, 0); 
+  __visc__bindIn(var_48, 61, 3, 0); 
+
+  void* var_49 = __visc__createNodeND(0, var_49_node); 
+
+  __visc__edge(var_48, var_49, 1, 0, 0, 0); 
+  __visc__edge(var_48, var_49, 1, 1, 1, 0); 
+
+  __visc__bindOut(var_49, 0, 0, 0); 
+  __visc__bindOut(var_49, 1, 1, 0); 
+
+}
+
+struct ret_t {
+  void* tensor; 
+  size_t bytes; 
+}; 
+
+typedef struct __attribute__((__packed__)) {
+  void* input; 
+  size_t input_bytes; 
+  void* conv2d_1_w; 
+  size_t conv2d_1_w_bytes; 
+  void* conv2d_1_b; 
+  size_t conv2d_1_b_bytes; 
+  void* conv2d_2_w; 
+  size_t conv2d_2_w_bytes; 
+  void* conv2d_2_b; 
+  size_t conv2d_2_b_bytes; 
+  void* conv2d_3_w; 
+  size_t conv2d_3_w_bytes; 
+  void* conv2d_3_b; 
+  size_t conv2d_3_b_bytes; 
+  void* conv2d_4_w; 
+  size_t conv2d_4_w_bytes; 
+  void* conv2d_4_b; 
+  size_t conv2d_4_b_bytes; 
+  void* conv2d_5_w; 
+  size_t conv2d_5_w_bytes; 
+  void* conv2d_5_b; 
+  size_t conv2d_5_b_bytes; 
+  void* conv2d_6_w; 
+  size_t conv2d_6_w_bytes; 
+  void* conv2d_6_b; 
+  size_t conv2d_6_b_bytes; 
+  void* conv2d_7_w; 
+  size_t conv2d_7_w_bytes; 
+  void* conv2d_7_b; 
+  size_t conv2d_7_b_bytes; 
+  void* conv2d_8_w; 
+  size_t conv2d_8_w_bytes; 
+  void* conv2d_8_b; 
+  size_t conv2d_8_b_bytes; 
+  void* conv2d_9_w; 
+  size_t conv2d_9_w_bytes; 
+  void* conv2d_9_b; 
+  size_t conv2d_9_b_bytes; 
+  void* conv2d_10_w; 
+  size_t conv2d_10_w_bytes; 
+  void* conv2d_10_b; 
+  size_t conv2d_10_b_bytes; 
+  void* conv2d_11_w; 
+  size_t conv2d_11_w_bytes; 
+  void* conv2d_11_b; 
+  size_t conv2d_11_b_bytes; 
+  void* conv2d_12_w; 
+  size_t conv2d_12_w_bytes; 
+  void* conv2d_12_b; 
+  size_t conv2d_12_b_bytes; 
+  void* conv2d_13_w; 
+  size_t conv2d_13_w_bytes; 
+  void* conv2d_13_b; 
+  size_t conv2d_13_b_bytes; 
+  void* dense_1_w; 
+  size_t dense_1_w_bytes; 
+  void* dense_1_b; 
+  size_t dense_1_b_bytes; 
+  void* dense_2_w; 
+  size_t dense_2_w_bytes; 
+  void* dense_2_b; 
+  size_t dense_2_b_bytes; 
+
+  struct ret_t r; 
+}
+RootIn;
+
+
+int main(){ 
+
+  std::string dir_prefix = std::string("../../../../../../projects/hpvm-tensor-rt/model_params/vgg16_cifar10_2/"); 
+  std::string input_path =  dir_prefix + std::string("input.bin"); 
+  std::string labels_path =  dir_prefix + std::string("labels.bin"); 
+  std::string conv2d_1_w_path =  dir_prefix + std::string("conv2d_1_w.bin"); 
+  void* conv2d_1_w =  readTrainedWeights(conv2d_1_w_path.c_str(), 0,64,3,3,3); 
+  std::string conv2d_1_b_path =  dir_prefix + std::string("conv2d_1_b.bin"); 
+  void* conv2d_1_b =  readTrainedWeights(conv2d_1_b_path.c_str(), 0,1,64,1,1); 
+  std::string conv2d_2_w_path =  dir_prefix + std::string("conv2d_2_w.bin"); 
+  void* conv2d_2_w =  readTrainedWeights(conv2d_2_w_path.c_str(), 0,64,64,3,3); 
+  std::string conv2d_2_b_path =  dir_prefix + std::string("conv2d_2_b.bin"); 
+  void* conv2d_2_b =  readTrainedWeights(conv2d_2_b_path.c_str(), 0,1,64,1,1); 
+  std::string conv2d_3_w_path =  dir_prefix + std::string("conv2d_3_w.bin"); 
+  void* conv2d_3_w =  readTrainedWeights(conv2d_3_w_path.c_str(), 0,128,64,3,3); 
+  std::string conv2d_3_b_path =  dir_prefix + std::string("conv2d_3_b.bin"); 
+  void* conv2d_3_b =  readTrainedWeights(conv2d_3_b_path.c_str(), 0,1,128,1,1); 
+  std::string conv2d_4_w_path =  dir_prefix + std::string("conv2d_4_w.bin"); 
+  void* conv2d_4_w =  readTrainedWeights(conv2d_4_w_path.c_str(), 0,128,128,3,3); 
+  std::string conv2d_4_b_path =  dir_prefix + std::string("conv2d_4_b.bin"); 
+  void* conv2d_4_b =  readTrainedWeights(conv2d_4_b_path.c_str(), 0,1,128,1,1); 
+  std::string conv2d_5_w_path =  dir_prefix + std::string("conv2d_5_w.bin"); 
+  void* conv2d_5_w =  readTrainedWeights(conv2d_5_w_path.c_str(), 0,256,128,3,3); 
+  std::string conv2d_5_b_path =  dir_prefix + std::string("conv2d_5_b.bin"); 
+  void* conv2d_5_b =  readTrainedWeights(conv2d_5_b_path.c_str(), 0,1,256,1,1); 
+  std::string conv2d_6_w_path =  dir_prefix + std::string("conv2d_6_w.bin"); 
+  void* conv2d_6_w =  readTrainedWeights(conv2d_6_w_path.c_str(), 0,256,256,3,3); 
+  std::string conv2d_6_b_path =  dir_prefix + std::string("conv2d_6_b.bin"); 
+  void* conv2d_6_b =  readTrainedWeights(conv2d_6_b_path.c_str(), 0,1,256,1,1); 
+  std::string conv2d_7_w_path =  dir_prefix + std::string("conv2d_7_w.bin"); 
+  void* conv2d_7_w =  readTrainedWeights(conv2d_7_w_path.c_str(), 0,256,256,3,3); 
+  std::string conv2d_7_b_path =  dir_prefix + std::string("conv2d_7_b.bin"); 
+  void* conv2d_7_b =  readTrainedWeights(conv2d_7_b_path.c_str(), 0,1,256,1,1); 
+  std::string conv2d_8_w_path =  dir_prefix + std::string("conv2d_8_w.bin"); 
+  void* conv2d_8_w =  readTrainedWeights(conv2d_8_w_path.c_str(), 0,512,256,3,3); 
+  std::string conv2d_8_b_path =  dir_prefix + std::string("conv2d_8_b.bin"); 
+  void* conv2d_8_b =  readTrainedWeights(conv2d_8_b_path.c_str(), 0,1,512,1,1); 
+  std::string conv2d_9_w_path =  dir_prefix + std::string("conv2d_9_w.bin"); 
+  void* conv2d_9_w =  readTrainedWeights(conv2d_9_w_path.c_str(), 0,512,512,3,3); 
+  std::string conv2d_9_b_path =  dir_prefix + std::string("conv2d_9_b.bin"); 
+  void* conv2d_9_b =  readTrainedWeights(conv2d_9_b_path.c_str(), 0,1,512,1,1); 
+  std::string conv2d_10_w_path =  dir_prefix + std::string("conv2d_10_w.bin"); 
+  void* conv2d_10_w =  readTrainedWeights(conv2d_10_w_path.c_str(), 0,512,512,3,3); 
+  std::string conv2d_10_b_path =  dir_prefix + std::string("conv2d_10_b.bin"); 
+  void* conv2d_10_b =  readTrainedWeights(conv2d_10_b_path.c_str(), 0,1,512,1,1); 
+  std::string conv2d_11_w_path =  dir_prefix + std::string("conv2d_11_w.bin"); 
+  void* conv2d_11_w =  readTrainedWeights(conv2d_11_w_path.c_str(), 0,512,512,3,3); 
+  std::string conv2d_11_b_path =  dir_prefix + std::string("conv2d_11_b.bin"); 
+  void* conv2d_11_b =  readTrainedWeights(conv2d_11_b_path.c_str(), 0,1,512,1,1); 
+  std::string conv2d_12_w_path =  dir_prefix + std::string("conv2d_12_w.bin"); 
+  void* conv2d_12_w =  readTrainedWeights(conv2d_12_w_path.c_str(), 0,512,512,3,3); 
+  std::string conv2d_12_b_path =  dir_prefix + std::string("conv2d_12_b.bin"); 
+  void* conv2d_12_b =  readTrainedWeights(conv2d_12_b_path.c_str(), 0,1,512,1,1); 
+  std::string conv2d_13_w_path =  dir_prefix + std::string("conv2d_13_w.bin"); 
+  void* conv2d_13_w =  readTrainedWeights(conv2d_13_w_path.c_str(), 0,512,512,3,3); 
+  std::string conv2d_13_b_path =  dir_prefix + std::string("conv2d_13_b.bin"); 
+  void* conv2d_13_b =  readTrainedWeights(conv2d_13_b_path.c_str(), 0,1,512,1,1); 
+  std::string dense_1_w_path =  dir_prefix + std::string("dense_1_w.bin"); 
+  void* dense_1_w =  readTrainedWeights(dense_1_w_path.c_str(), 0,1,1,512,512); 
+  std::string dense_1_b_path =  dir_prefix + std::string("dense_1_b.bin"); 
+  void* dense_1_b =  readTrainedWeights(dense_1_b_path.c_str(), 0,1,512,1,1); 
+  std::string dense_2_w_path =  dir_prefix + std::string("dense_2_w.bin"); 
+  void* dense_2_w =  readTrainedWeights(dense_2_w_path.c_str(), 0,1,1,512,10); 
+  std::string dense_2_b_path =  dir_prefix + std::string("dense_2_b.bin"); 
+  void* dense_2_b =  readTrainedWeights(dense_2_b_path.c_str(), 0,1,10,1,1); 
+  void* input = readTrainedWeights(input_path.c_str(), 0,2000,3,32,32); 
+  uint8_t* labels = readLabels(labels_path.c_str(),2000); 
+
+  __visc__init(); 
+  RootIn* args = static_cast<RootIn*>(malloc(sizeof(RootIn))); 
+
+  args->input = input; 
+  args->input_bytes = 0; 
+  args->conv2d_1_w = conv2d_1_w; 
+  args->conv2d_1_w_bytes = 0; 
+  args->conv2d_1_b = conv2d_1_b; 
+  args->conv2d_1_b_bytes = 0; 
+  args->conv2d_2_w = conv2d_2_w; 
+  args->conv2d_2_w_bytes = 0; 
+  args->conv2d_2_b = conv2d_2_b; 
+  args->conv2d_2_b_bytes = 0; 
+  args->conv2d_3_w = conv2d_3_w; 
+  args->conv2d_3_w_bytes = 0; 
+  args->conv2d_3_b = conv2d_3_b; 
+  args->conv2d_3_b_bytes = 0; 
+  args->conv2d_4_w = conv2d_4_w; 
+  args->conv2d_4_w_bytes = 0; 
+  args->conv2d_4_b = conv2d_4_b; 
+  args->conv2d_4_b_bytes = 0; 
+  args->conv2d_5_w = conv2d_5_w; 
+  args->conv2d_5_w_bytes = 0; 
+  args->conv2d_5_b = conv2d_5_b; 
+  args->conv2d_5_b_bytes = 0; 
+  args->conv2d_6_w = conv2d_6_w; 
+  args->conv2d_6_w_bytes = 0; 
+  args->conv2d_6_b = conv2d_6_b; 
+  args->conv2d_6_b_bytes = 0; 
+  args->conv2d_7_w = conv2d_7_w; 
+  args->conv2d_7_w_bytes = 0; 
+  args->conv2d_7_b = conv2d_7_b; 
+  args->conv2d_7_b_bytes = 0; 
+  args->conv2d_8_w = conv2d_8_w; 
+  args->conv2d_8_w_bytes = 0; 
+  args->conv2d_8_b = conv2d_8_b; 
+  args->conv2d_8_b_bytes = 0; 
+  args->conv2d_9_w = conv2d_9_w; 
+  args->conv2d_9_w_bytes = 0; 
+  args->conv2d_9_b = conv2d_9_b; 
+  args->conv2d_9_b_bytes = 0; 
+  args->conv2d_10_w = conv2d_10_w; 
+  args->conv2d_10_w_bytes = 0; 
+  args->conv2d_10_b = conv2d_10_b; 
+  args->conv2d_10_b_bytes = 0; 
+  args->conv2d_11_w = conv2d_11_w; 
+  args->conv2d_11_w_bytes = 0; 
+  args->conv2d_11_b = conv2d_11_b; 
+  args->conv2d_11_b_bytes = 0; 
+  args->conv2d_12_w = conv2d_12_w; 
+  args->conv2d_12_w_bytes = 0; 
+  args->conv2d_12_b = conv2d_12_b; 
+  args->conv2d_12_b_bytes = 0; 
+  args->conv2d_13_w = conv2d_13_w; 
+  args->conv2d_13_w_bytes = 0; 
+  args->conv2d_13_b = conv2d_13_b; 
+  args->conv2d_13_b_bytes = 0; 
+  args->dense_1_w = dense_1_w; 
+  args->dense_1_w_bytes = 0; 
+  args->dense_1_b = dense_1_b; 
+  args->dense_1_b_bytes = 0; 
+  args->dense_2_w = dense_2_w; 
+  args->dense_2_w_bytes = 0; 
+  args->dense_2_b = dense_2_b; 
+  args->dense_2_b_bytes = 0; 
+
+  void* dfg = __visc__launch(0, root, (void*) args); 
+
+  __visc__wait(dfg); 
+
+  void *result = static_cast<RootIn*>(args)->input; 
+  hpvm_request_tensor(result, 0); 
+
+  __visc__cleanup(); 
+  computeAccuracy2(labels, 2000, result); 
+  return 0; 
+
+}