diff --git a/hpvm/test/pipeline/Makefile b/hpvm/test/pipeline/Makefile
index 548949fe72aea79ef6b387154384ad4e7d3cd374..2a9521a9ea4b5a66c724ba1ca27adad6a7291764 100644
--- a/hpvm/test/pipeline/Makefile
+++ b/hpvm/test/pipeline/Makefile
@@ -26,8 +26,7 @@ INCLUDES += -I$(SRC_DIR) -I$(CAM_PIPE_SRC_DIR)
 INCLUDES += -I$(LLVM_SRC_ROOT)/include -I../include -I$(HPVM_BUILD_DIR)/include
 
 ## BEGIN HPVM MAKEFILE
-SRCDIR_OBJS= io.ll
-OBJS_SRC=src/io.cc
+SRCDIR_OBJS=
 HPVM_OBJS=main.hpvm.ll
 APP = $(EXE)
 APP_CFLAGS += $(INCLUDES) -ffast-math -O3 -fno-lax-vector-conversions -fno-vectorize -fno-slp-vectorize
diff --git a/hpvm/test/pipeline/copyToVersions.sh b/hpvm/test/pipeline/copyToVersions.sh
deleted file mode 100755
index 67551aff2f1b47fb2ad9c69be44936e8145a68da..0000000000000000000000000000000000000000
--- a/hpvm/test/pipeline/copyToVersions.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-
-declare -a versionList=("hpvmGPU" "hpvmVector" "hpvmScalar" "hpvmGPU-Scalar-MaxG" "hpvmVector-Scalar-MaxG" "hpvmGPU-Scalar-ZC" "hpvmVector-Scalar-ZC")
-declare -a fileList=("Makefile" "io.cc" "main.cc")
-
-for version in "${versionList[@]}"; do
-  echo $version
-  for filename in "${fileList[@]}"; do
-    echo cp ./src/hpvm_parallel/$filename ./src/$version/
-    cp ./src/hpvm_parallel/$filename ./src/$version/
-  done
-  echo
-done
diff --git a/hpvm/test/pipeline/gradient.hpvm.merged.experiments.notimer.ll b/hpvm/test/pipeline/gradient.hpvm.merged.experiments.notimer.ll
deleted file mode 100644
index 8056cc12eed0e4d20d45e294bf674dfc689f6bb8..0000000000000000000000000000000000000000
--- a/hpvm/test/pipeline/gradient.hpvm.merged.experiments.notimer.ll
+++ /dev/null
@@ -1,2192 +0,0 @@
-; ModuleID = 'build/Gradient_default/main.hpvm.ll'
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
-target triple = "x86_64-unknown-linux-gnu"
-
-%"class.std::ios_base::Init" = type { i8 }
-%"class.std::basic_string" = type { %"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider" }
-%"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider" = type { i8* }
-%"class.std::basic_ostream" = type { i32 (...)**, %"class.std::basic_ios" }
-%"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::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 }
-%"class.std::basic_streambuf" = type { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, %"class.std::locale" }
-%"class.std::ctype" = type { %"class.std::locale::facet", %struct.__locale_struct*, i8, i32*, i32*, i16*, i8, [256 x i8], [256 x i8], i8 }
-%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" }
-%"class.std::num_get" = type { %"class.std::locale::facet" }
-%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 }
-%"class.std::allocator" = type { i8 }
-%"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep" = type { %"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep_base" }
-%"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep_base" = type { i64, i64, i32 }
-%struct.InStruct = type <{ float*, i64, float*, i64, float*, i64, float*, i64, float*, i64, float*, i64, i32, i32 }>
-%emptyStruct = type <{}>
-%emptyStruct.23 = type <{}>
-%emptyStruct.24 = type <{}>
-%"class.cv::VideoCapture" = type { i32 (...)**, %"struct.cv::Ptr", %"struct.cv::Ptr.0" }
-%"struct.cv::Ptr" = type { %"struct.cv::detail::PtrOwner"*, %struct.CvCapture* }
-%"struct.cv::detail::PtrOwner" = type { i32 (...)**, i32 }
-%struct.CvCapture = type opaque
-%"struct.cv::Ptr.0" = type { %"struct.cv::detail::PtrOwner"*, %"class.cv::IVideoCapture"* }
-%"class.cv::IVideoCapture" = type opaque
-%"class.cv::Mat" = type { i32, i32, i32, i32, i8*, i8*, i8*, i8*, %"class.cv::MatAllocator"*, %"struct.cv::UMatData"*, %"struct.cv::MatSize", %"struct.cv::MatStep" }
-%"class.cv::MatAllocator" = type { i32 (...)** }
-%"struct.cv::UMatData" = type { %"class.cv::MatAllocator"*, %"class.cv::MatAllocator"*, i32, i32, i8*, i8*, i64, i32, i8*, i8*, i32 }
-%"struct.cv::MatSize" = type { i32* }
-%"struct.cv::MatStep" = type { i64*, [2 x i64] }
-%"class.cv::_InputArray" = type { i32, i8*, %"class.cv::Size_" }
-%"class.cv::Size_" = type { i32, i32 }
-%"class.cv::_OutputArray" = type { %"class.cv::_InputArray" }
-%struct.pb_TimerSet = type { i32, %struct.pb_async_time_marker_list*, i64, i64, [24 x %struct.pb_Timer], [24 x %struct.pb_SubTimerList*] }
-%struct.pb_async_time_marker_list = type { i8*, i32, i8*, %struct.pb_async_time_marker_list* }
-%struct.pb_Timer = type { i32, i64, i64 }
-%struct.pb_SubTimerList = type { %struct.pb_SubTimer*, %struct.pb_SubTimer* }
-%struct.pb_SubTimer = type { i8*, %struct.pb_Timer, %struct.pb_SubTimer* }
-%"class.cv::String" = type { i8*, i64 }
-%struct.pb_Parameters = type { i8*, i8** }
-%horizontal.vertical.ty = type <{ i32, i32 }>
-%WrapperHorizontal.WrapperVertical.ty = type <{ i32, i32 }>
-
-@_ZStL8__ioinit = internal global %"class.std::ios_base::Init" zeroinitializer, align 1
-@__dso_handle = external unnamed_addr global i8
-@input_window = global %"class.std::basic_string" zeroinitializer, align 8
-@.str = private unnamed_addr constant [27 x i8] c"GPU Pipeline - Input Video\00", align 1
-@output_window = global %"class.std::basic_string" zeroinitializer, align 8
-@.str3 = private unnamed_addr constant [28 x i8] c"GPU Pipeline - Edge Mapping\00", align 1
-@_ZSt4cout = external global %"class.std::basic_ostream"
-@.str4 = private unnamed_addr constant [13 x i8] c"Using OpenCV\00", align 1
-@.str5 = private unnamed_addr constant [10 x i8] c"3.0.0-dev\00", align 1
-@.str6 = private unnamed_addr constant [2 x i8] c"\0A\00", align 1
-@stderr = external global %struct._IO_FILE*
-@.str7 = private unnamed_addr constant [32 x i8] c"Expecting input image filename\0A\00", align 1
-@.str8 = private unnamed_addr constant [21 x i8] c"Reading video file: \00", align 1
-@.str9 = private unnamed_addr constant [26 x i8] c"Could not open video file\00", align 1
-@.str10 = private unnamed_addr constant [20 x i8] c"Number of frames = \00", align 1
-@.str11 = private unnamed_addr constant [19 x i8] c"Image dimension = \00", align 1
-@.str12 = private unnamed_addr constant [50 x i8] c"Expecting contiguous storage of image in memory!\0A\00", align 1
-@.str13 = private unnamed_addr constant [81 x i8] c"src.isContinuous() && Gx.isContinuous() && Gy.isContinuous() && G.isContinuous()\00", align 1
-@.str14 = private unnamed_addr constant [21 x i8] c"src/Gradient/main.cc\00", align 1
-@__PRETTY_FUNCTION__.main = private unnamed_addr constant [23 x i8] c"int main(int, char **)\00", align 1
-@.str15 = private unnamed_addr constant [39 x i8] c"src.size[0]*src.size[1] % block_x == 0\00", align 1
-@.str16 = private unnamed_addr constant [2 x i8] c"[\00", align 1
-@.str17 = private unnamed_addr constant [4 x i8] c" x \00", align 1
-@.str18 = private unnamed_addr constant [2 x i8] c"]\00", align 1
-@_ZNSs4_Rep20_S_empty_rep_storageE = external global [0 x i64]
-@llvm.global_ctors = appending global [1 x { i32, void ()* }] [{ i32, void ()* } { i32 65535, void ()* @_GLOBAL__I_a }]
-
-declare void @_ZNSt8ios_base4InitC1Ev(%"class.std::ios_base::Init"*) #0
-
-declare void @_ZNSt8ios_base4InitD1Ev(%"class.std::ios_base::Init"*) #0
-
-; Function Attrs: nounwind
-declare i32 @__cxa_atexit(void (i8*)*, i8*, i8*) #1
-
-declare void @_ZNSsC1EPKcRKSaIcE(%"class.std::basic_string"*, i8*, %"class.std::allocator"*) #0
-
-; Function Attrs: nounwind uwtable
-define available_externally void @_ZNSsD1Ev(%"class.std::basic_string"* nocapture %this) unnamed_addr #2 align 2 {
-entry:
-  %ref.tmp.i = alloca %"class.std::allocator", align 1
-  %0 = getelementptr inbounds %"class.std::allocator"* %ref.tmp.i, i64 0, i32 0
-  call void @llvm.lifetime.start(i64 1, i8* %0) #1
-  %_M_p.i.i.i = getelementptr inbounds %"class.std::basic_string"* %this, i64 0, i32 0, i32 0
-  %1 = load i8** %_M_p.i.i.i, align 8, !tbaa !5
-  %arrayidx.i.i = getelementptr inbounds i8* %1, i64 -24
-  %2 = bitcast i8* %arrayidx.i.i to %"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep"*
-  %cmp.i.i = icmp eq i8* %arrayidx.i.i, bitcast ([0 x i64]* @_ZNSs4_Rep20_S_empty_rep_storageE to i8*)
-  br i1 %cmp.i.i, label %_ZNSsD2Ev.exit, label %if.then.i.i, !prof !8
-
-if.then.i.i:                                      ; preds = %entry
-  %_M_refcount.i.i = getelementptr inbounds i8* %1, i64 -8
-  %3 = bitcast i8* %_M_refcount.i.i to i32*
-  br i1 icmp ne (i8* bitcast (i32 (i64)* @pthread_cancel to i8*), i8* null), label %if.then.i.i.i, label %if.else.i.i.i
-
-if.then.i.i.i:                                    ; preds = %if.then.i.i
-  %4 = atomicrmw add i32* %3, i32 -1 seq_cst
-  br label %_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i
-
-if.else.i.i.i:                                    ; preds = %if.then.i.i
-  %5 = load i32* %3, align 4, !tbaa !9
-  %add.i.i.i.i = add nsw i32 %5, -1
-  store i32 %add.i.i.i.i, i32* %3, align 4, !tbaa !9
-  br label %_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i
-
-_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i: ; preds = %if.else.i.i.i, %if.then.i.i.i
-  %retval.0.i.i.i = phi i32 [ %4, %if.then.i.i.i ], [ %5, %if.else.i.i.i ]
-  %cmp3.i.i = icmp slt i32 %retval.0.i.i.i, 1
-  br i1 %cmp3.i.i, label %if.then4.i.i, label %_ZNSsD2Ev.exit
-
-if.then4.i.i:                                     ; preds = %_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i
-  call void @_ZNSs4_Rep10_M_destroyERKSaIcE(%"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep"* %2, %"class.std::allocator"* %ref.tmp.i) #1
-  br label %_ZNSsD2Ev.exit
-
-_ZNSsD2Ev.exit:                                   ; preds = %if.then4.i.i, %_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i, %entry
-  call void @llvm.lifetime.end(i64 1, i8* %0) #1
-  ret void
-}
-
-; Function Attrs: nounwind uwtable
-define void @packData(%struct.InStruct* nocapture %args, float* %I, i64 %bytesI, float* %Sx, i64 %bytesSx, float* %Sy, i64 %bytesSy, float* %Gx, i64 %bytesGx, float* %Gy, i64 %bytesGy, float* %G, i64 %bytesG, i32 %m, i32 %n) #2 {
-entry:
-  %I1 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 0
-  store float* %I, float** %I1, align 1, !tbaa !5
-  %bytesI2 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 1
-  store i64 %bytesI, i64* %bytesI2, align 1, !tbaa !10
-  %Sx3 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 2
-  store float* %Sx, float** %Sx3, align 1, !tbaa !5
-  %bytesSx4 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 3
-  store i64 %bytesSx, i64* %bytesSx4, align 1, !tbaa !10
-  %Sy5 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 4
-  store float* %Sy, float** %Sy5, align 1, !tbaa !5
-  %bytesSy6 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 5
-  store i64 %bytesSy, i64* %bytesSy6, align 1, !tbaa !10
-  %Gx7 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 6
-  store float* %Gx, float** %Gx7, align 1, !tbaa !5
-  %bytesGx8 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 7
-  store i64 %bytesGx, i64* %bytesGx8, align 1, !tbaa !10
-  %Gy9 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 8
-  store float* %Gy, float** %Gy9, align 1, !tbaa !5
-  %bytesGy10 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 9
-  store i64 %bytesGy, i64* %bytesGy10, align 1, !tbaa !10
-  %G11 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 10
-  store float* %G, float** %G11, align 1, !tbaa !5
-  %bytesG12 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 11
-  store i64 %bytesG, i64* %bytesG12, align 1, !tbaa !10
-  %m13 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 12
-  store i32 %m, i32* %m13, align 1, !tbaa !9
-  %n14 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 13
-  store i32 %n, i32* %n14, align 1, !tbaa !9
-  ret void
-}
-
-; Function Attrs: nounwind uwtable
-define %emptyStruct @squareRoot(float* nocapture in %Gx, i64 %bytesGx, float* nocapture in %Gy, i64 %bytesGy, float* nocapture out %G, i64 %bytesG, i32 %m, i32 %n, i32 %dummyH, i32 %dummyV) #2 {
-entry:
-  %call3 = tail call i8* @llvm.hpvm.getNode()
-  %call14 = tail call i32 @llvm.hpvm.getNodeInstanceID.x(i8* %call3)
-  %call25 = tail call i32 @llvm.hpvm.getNodeInstanceID.y(i8* %call3)
-  %cmp = icmp slt i32 %call14, %n
-  %cmp3 = icmp slt i32 %call25, %m
-  %or.cond = and i1 %cmp, %cmp3
-  br i1 %or.cond, label %if.then, label %if.end
-
-if.then:                                          ; preds = %entry
-  %mul = mul nsw i32 %call25, %n
-  %add = add nsw i32 %mul, %call14
-  %idxprom = sext i32 %add to i64
-  %arrayidx = getelementptr inbounds float* %Gx, i64 %idxprom
-  %0 = load float* %arrayidx, align 4, !tbaa !11
-  %mul6 = fmul fast float %0, %0
-  %arrayidx8 = getelementptr inbounds float* %Gy, i64 %idxprom
-  %1 = load float* %arrayidx8, align 4, !tbaa !11
-  %mul11 = fmul fast float %1, %1
-  %add12 = fadd fast float %mul6, %mul11
-  %call136 = tail call float @llvm.sqrt.f32(float %add12)
-  %arrayidx15 = getelementptr inbounds float* %G, i64 %idxprom
-  store float %call136, float* %arrayidx15, align 4, !tbaa !11
-  br label %if.end
-
-if.end:                                           ; preds = %if.then, %entry
-  ret %emptyStruct undef
-}
-
-; Function Attrs: nounwind uwtable
-define %emptyStruct.23 @WrapperSquareRoot(float* nocapture in %Gx, i64 %bytesGx, float* nocapture in %Gy, i64 %bytesGy, float* nocapture out %G, i64 %bytesG, i32 %m, i32 %n, i32 %dummyH, i32 %dummyV) #2 {
-entry:
-  %squareRoot.node = tail call i8* @llvm.hpvm.createNode2D(i8* bitcast (%emptyStruct (float*, i64, float*, i64, float*, i64, i32, i32, i32, i32)* @squareRoot to i8*), i32 %m, i32 %n)
-  tail call void @llvm.hpvm.bind.input(i8* %squareRoot.node, i32 0, i32 0, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %squareRoot.node, i32 1, i32 1, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %squareRoot.node, i32 2, i32 2, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %squareRoot.node, i32 3, i32 3, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %squareRoot.node, i32 4, i32 4, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %squareRoot.node, i32 5, i32 5, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %squareRoot.node, i32 6, i32 6, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %squareRoot.node, i32 7, i32 7, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %squareRoot.node, i32 8, i32 8, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %squareRoot.node, i32 9, i32 9, i1 false)
-  ret %emptyStruct.23 undef
-}
-
-; Function Attrs: nounwind uwtable
-define %emptyStruct.24 @Gradient(float* nocapture in %Is, i64 %bytesIs, float* nocapture in %Sx, i64 %bytesSx, float* nocapture in %Sy, i64 %bytesSy, float* nocapture out %Gx, i64 %bytesGx, float* nocapture out %Gy, i64 %bytesGy, float* nocapture out %G, i64 %bytesG, i32 %m, i32 %n) #2 {
-entry:
-  %WrapperHorizontal_WrapperVertical.node = tail call i8* @llvm.hpvm.createNode(i8* bitcast (%WrapperHorizontal.WrapperVertical.ty (float*, i64, float*, i64, float*, i64, i32, i32, float*, i64, float*, i64, float*, i64, i32, i32)* @WrapperHorizontal_WrapperVertical to i8*))
-  %WrapperSquareRoot.node = tail call i8* @llvm.hpvm.createNode(i8* bitcast (%emptyStruct.23 (float*, i64, float*, i64, float*, i64, i32, i32, i32, i32)* @WrapperSquareRoot to i8*))
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperHorizontal_WrapperVertical.node, i32 0, i32 0, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperHorizontal_WrapperVertical.node, i32 1, i32 1, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperHorizontal_WrapperVertical.node, i32 2, i32 2, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperHorizontal_WrapperVertical.node, i32 3, i32 3, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperHorizontal_WrapperVertical.node, i32 6, i32 4, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperHorizontal_WrapperVertical.node, i32 7, i32 5, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperHorizontal_WrapperVertical.node, i32 12, i32 6, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperHorizontal_WrapperVertical.node, i32 13, i32 7, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperHorizontal_WrapperVertical.node, i32 0, i32 8, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperHorizontal_WrapperVertical.node, i32 1, i32 9, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperHorizontal_WrapperVertical.node, i32 4, i32 10, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperHorizontal_WrapperVertical.node, i32 5, i32 11, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperHorizontal_WrapperVertical.node, i32 8, i32 12, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperHorizontal_WrapperVertical.node, i32 9, i32 13, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperHorizontal_WrapperVertical.node, i32 12, i32 14, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperHorizontal_WrapperVertical.node, i32 13, i32 15, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperSquareRoot.node, i32 6, i32 0, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperSquareRoot.node, i32 7, i32 1, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperSquareRoot.node, i32 8, i32 2, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperSquareRoot.node, i32 9, i32 3, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperSquareRoot.node, i32 10, i32 4, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperSquareRoot.node, i32 11, i32 5, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperSquareRoot.node, i32 12, i32 6, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperSquareRoot.node, i32 13, i32 7, i1 false)
-  %output.repl = tail call i8* @llvm.hpvm.createEdge(i8* %WrapperHorizontal_WrapperVertical.node, i8* %WrapperSquareRoot.node, i1 false, i32 0, i32 8, i1 false)
-  %output1.repl = tail call i8* @llvm.hpvm.createEdge(i8* %WrapperHorizontal_WrapperVertical.node, i8* %WrapperSquareRoot.node, i1 false, i32 1, i32 9, i1 false)
-  ret %emptyStruct.24 undef
-}
-
-; Function Attrs: nounwind uwtable
-define void @_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE(%"class.cv::VideoCapture"* %VC, %"class.cv::Mat"* %F) #2 {
-entry:
-  %ref.tmp = alloca %"class.cv::_InputArray", align 8
-  %ref.tmp2 = alloca %"class.cv::_OutputArray", align 8
-  %ref.tmp3 = alloca %"class.cv::_OutputArray", align 8
-  %0 = bitcast %"class.cv::VideoCapture"* %VC to %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)***
-  %vtable = load %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)*** %0, align 8, !tbaa !12
-  %vfn = getelementptr inbounds %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)** %vtable, i64 8
-  %1 = load %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)** %vfn, align 8
-  %call = call %"class.cv::VideoCapture"* %1(%"class.cv::VideoCapture"* %VC, %"class.cv::Mat"* %F) #1
-  %flags.i = getelementptr inbounds %"class.cv::Mat"* %F, i64 0, i32 0
-  %2 = load i32* %flags.i, align 4, !tbaa !9
-  %shr2.i = and i32 %2, 4088
-  %cmp = icmp eq i32 %shr2.i, 16
-  br i1 %cmp, label %if.then, label %entry.if.end_crit_edge
-
-entry.if.end_crit_edge:                           ; preds = %entry
-  %.pre = bitcast %"class.cv::Mat"* %F to i8*
-  br label %if.end
-
-if.then:                                          ; preds = %entry
-  %width.i.i.i.i = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp, i64 0, i32 2, i32 0
-  store i32 0, i32* %width.i.i.i.i, align 8, !tbaa !9
-  %height.i.i.i.i = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp, i64 0, i32 2, i32 1
-  store i32 0, i32* %height.i.i.i.i, align 4, !tbaa !9
-  %3 = bitcast %"class.cv::Mat"* %F to i8*
-  %flags.i.i.i = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp, i64 0, i32 0
-  store i32 16842752, i32* %flags.i.i.i, align 8, !tbaa !9
-  %obj.i.i.i = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp, i64 0, i32 1
-  store i8* %3, i8** %obj.i.i.i, align 8, !tbaa !5
-  %flags.i.i.i.i9 = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp2, i64 0, i32 0, i32 0
-  %obj.i.i.i.i10 = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp2, i64 0, i32 0, i32 1
-  %4 = bitcast i8** %obj.i.i.i.i10 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %4, i8 0, i64 16, i32 8, i1 false) #1
-  store i32 33619968, i32* %flags.i.i.i.i9, align 8, !tbaa !9
-  store i8* %3, i8** %obj.i.i.i.i10, align 8, !tbaa !5
-  call void @_ZN2cv8cvtColorERKNS_11_InputArrayERKNS_12_OutputArrayEii(%"class.cv::_InputArray"* %ref.tmp, %"class.cv::_OutputArray"* %ref.tmp2, i32 6, i32 0) #1
-  br label %if.end
-
-if.end:                                           ; preds = %if.then, %entry.if.end_crit_edge
-  %.pre-phi = phi i8* [ %.pre, %entry.if.end_crit_edge ], [ %3, %if.then ]
-  %flags.i.i.i.i = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp3, i64 0, i32 0, i32 0
-  %obj.i.i.i.i = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp3, i64 0, i32 0, i32 1
-  %5 = bitcast i8** %obj.i.i.i.i to i8*
-  call void @llvm.memset.p0i8.i64(i8* %5, i8 0, i64 16, i32 8, i1 false) #1
-  store i32 33619968, i32* %flags.i.i.i.i, align 8, !tbaa !9
-  store i8* %.pre-phi, i8** %obj.i.i.i.i, align 8, !tbaa !5
-  call void @_ZNK2cv3Mat9convertToERKNS_12_OutputArrayEidd(%"class.cv::Mat"* %F, %"class.cv::_OutputArray"* %ref.tmp3, i32 5, double 0x3F70101010101010, double 0.000000e+00) #1
-  ret void
-}
-
-declare void @_ZN2cv8cvtColorERKNS_11_InputArrayERKNS_12_OutputArrayEii(%"class.cv::_InputArray"*, %"class.cv::_OutputArray"*, i32, i32) #0
-
-declare void @_ZNK2cv3Mat9convertToERKNS_12_OutputArrayEidd(%"class.cv::Mat"*, %"class.cv::_OutputArray"*, i32, double, double) #0
-
-; Function Attrs: nounwind uwtable
-define i32 @main(i32 %argc, i8** %argv) #2 {
-entry:
-  %ref.tmp.i314 = alloca %"class.cv::_InputArray", align 8
-  %ref.tmp2.i315 = alloca %"class.cv::_OutputArray", align 8
-  %ref.tmp3.i316 = alloca %"class.cv::_OutputArray", align 8
-  %sz.i.i.i = alloca [2 x i32], align 4
-  %ref.tmp.i = alloca %"class.cv::_InputArray", align 8
-  %ref.tmp2.i = alloca %"class.cv::_OutputArray", align 8
-  %ref.tmp3.i = alloca %"class.cv::_OutputArray", align 8
-  %argc.addr = alloca i32, align 4
-  %timers = alloca %struct.pb_TimerSet, align 8
-  %cap = alloca %"class.cv::VideoCapture", align 8
-  %ref.tmp = alloca %"class.cv::String", align 8
-  %ref.tmp24 = alloca %"class.cv::String", align 8
-  %ref.tmp25 = alloca %"class.cv::String", align 8
-  %ref.tmp26 = alloca %"class.cv::String", align 8
-  %ref.tmp27 = alloca %"class.cv::String", align 8
-  %src = alloca %"class.cv::Mat", align 8
-  %Gx = alloca %"class.cv::Mat", align 8
-  %Gy = alloca %"class.cv::Mat", align 8
-  %G = alloca %"class.cv::Mat", align 8
-  %ref.tmp36 = alloca %"class.cv::Mat", align 8
-  %ref.tmp42 = alloca %"class.cv::Mat", align 8
-  %ref.tmp48 = alloca %"class.cv::Mat", align 8
-  %Sx = alloca [9 x float], align 16
-  %Sy = alloca [9 x float], align 16
-  %in = alloca %"class.cv::Mat", align 8
-  %out = alloca %"class.cv::Mat", align 8
-  %ref.tmp67 = alloca %"class.cv::VideoCapture", align 8
-  %ref.tmp68 = alloca %"class.cv::String", align 8
-  store i32 %argc, i32* %argc.addr, align 4, !tbaa !9
-  %0 = bitcast %struct.pb_TimerSet* %timers to i8*
-  call void @llvm.lifetime.start(i64 800, i8* %0) #1
-  %call1.i = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([13 x i8]* @.str4, i64 0, i64 0), i64 12) #1
-  %call1.i128 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([10 x i8]* @.str5, i64 0, i64 0), i64 9) #1
-  %call1.i130 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([2 x i8]* @.str6, i64 0, i64 0), i64 1) #1
-  %call3 = call %struct.pb_Parameters* @pb_ReadParameters(i32* %argc.addr, i8** %argv) #1
-  %inpFiles = getelementptr inbounds %struct.pb_Parameters* %call3, i64 0, i32 1
-  %1 = load i8*** %inpFiles, align 8, !tbaa !5
-  %2 = load i8** %1, align 8, !tbaa !5
-  %cmp = icmp eq i8* %2, null
-  br i1 %cmp, label %if.then, label %lor.lhs.false
-
-lor.lhs.false:                                    ; preds = %entry
-  %arrayidx5 = getelementptr inbounds i8** %1, i64 1
-  %3 = load i8** %arrayidx5, align 8, !tbaa !5
-  %cmp6 = icmp eq i8* %3, null
-  br i1 %cmp6, label %if.end, label %if.then
-
-if.then:                                          ; preds = %lor.lhs.false, %entry
-  %4 = load %struct._IO_FILE** @stderr, align 8, !tbaa !5
-  %5 = call i64 @fwrite(i8* getelementptr inbounds ([32 x i8]* @.str7, i64 0, i64 0), i64 31, i64 1, %struct._IO_FILE* %4)
-  call void @exit(i32 -1) #9
-  unreachable
-
-if.end:                                           ; preds = %lor.lhs.false
-  %call1.i132 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([21 x i8]* @.str8, i64 0, i64 0), i64 20) #1
-  %6 = load i8*** %inpFiles, align 8, !tbaa !5
-  %7 = load i8** %6, align 8, !tbaa !5
-  %tobool.i = icmp eq i8* %7, null
-  br i1 %tobool.i, label %if.then.i, label %if.else.i
-
-if.then.i:                                        ; preds = %if.end
-  %vtable.i = load i8** bitcast (%"class.std::basic_ostream"* @_ZSt4cout to i8**), align 8, !tbaa !12
-  %vbase.offset.ptr.i = getelementptr i8* %vtable.i, i64 -24
-  %8 = bitcast i8* %vbase.offset.ptr.i to i64*
-  %vbase.offset.i = load i64* %8, align 8
-  %add.ptr.i = getelementptr inbounds i8* bitcast (%"class.std::basic_ostream"* @_ZSt4cout to i8*), i64 %vbase.offset.i
-  %9 = bitcast i8* %add.ptr.i to %"class.std::basic_ios"*
-  %add.ptr.sum.i = add i64 %vbase.offset.i, 32
-  %_M_streambuf_state.i.i.i = getelementptr inbounds i8* bitcast (%"class.std::basic_ostream"* @_ZSt4cout to i8*), i64 %add.ptr.sum.i
-  %10 = bitcast i8* %_M_streambuf_state.i.i.i to i32*
-  %11 = load i32* %10, align 4, !tbaa !13
-  %or.i.i.i = or i32 %11, 1
-  call void @_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate(%"class.std::basic_ios"* %9, i32 %or.i.i.i) #1
-  br label %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit
-
-if.else.i:                                        ; preds = %if.end
-  %call.i.i133 = call i64 @strlen(i8* %7) #1
-  %call1.i134 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* %7, i64 %call.i.i133) #1
-  br label %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit
-
-_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit: ; preds = %if.else.i, %if.then.i
-  %call1.i136 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([2 x i8]* @.str6, i64 0, i64 0), i64 1) #1
-  %12 = bitcast %"class.cv::VideoCapture"* %cap to i8*
-  call void @llvm.lifetime.start(i64 40, i8* %12) #1
-  %13 = load i8*** %inpFiles, align 8, !tbaa !5
-  %14 = load i8** %13, align 8, !tbaa !5
-  %tobool.i.i = icmp eq i8* %14, null
-  %15 = bitcast %"class.cv::String"* %ref.tmp to i8*
-  call void @llvm.memset.p0i8.i64(i8* %15, i8 0, i64 16, i32 8, i1 false) #1
-  br i1 %tobool.i.i, label %_ZN2cv6StringC1EPKc.exit, label %if.end.i.i
-
-if.end.i.i:                                       ; preds = %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit
-  %call.i.i138 = call i64 @strlen(i8* %14) #8
-  %call2.i.i = call i8* @_ZN2cv6String8allocateEm(%"class.cv::String"* %ref.tmp, i64 %call.i.i138) #1
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %call2.i.i, i8* %14, i64 %call.i.i138, i32 1, i1 false) #1
-  br label %_ZN2cv6StringC1EPKc.exit
-
-_ZN2cv6StringC1EPKc.exit:                         ; preds = %if.end.i.i, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit
-  call void @_ZN2cv12VideoCaptureC1ERKNS_6StringE(%"class.cv::VideoCapture"* %cap, %"class.cv::String"* %ref.tmp) #1
-  call void @_ZN2cv6String10deallocateEv(%"class.cv::String"* %ref.tmp) #1
-  %call15 = call zeroext i1 @_ZNK2cv12VideoCapture8isOpenedEv(%"class.cv::VideoCapture"* %cap) #1
-  br i1 %call15, label %if.end19, label %if.then16
-
-if.then16:                                        ; preds = %_ZN2cv6StringC1EPKc.exit
-  %call1.i140 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([26 x i8]* @.str9, i64 0, i64 0), i64 25) #1
-  %call1.i143 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([2 x i8]* @.str6, i64 0, i64 0), i64 1) #1
-  br label %cleanup
-
-if.end19:                                         ; preds = %_ZN2cv6StringC1EPKc.exit
-  %call20 = call double @_ZNK2cv12VideoCapture3getEi(%"class.cv::VideoCapture"* %cap, i32 7) #1
-  %conv = fptosi double %call20 to i32
-  %call1.i146 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([20 x i8]* @.str10, i64 0, i64 0), i64 19) #1
-  %call22 = call %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"* @_ZSt4cout, i32 %conv) #1
-  %call1.i149 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* %call22, i8* getelementptr inbounds ([2 x i8]* @.str6, i64 0, i64 0), i64 1) #1
-  %16 = bitcast %"class.cv::String"* %ref.tmp24 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %16, i8 0, i64 16, i32 8, i1 false) #1
-  %17 = load i8** getelementptr inbounds (%"class.std::basic_string"* @input_window, i64 0, i32 0, i32 0), align 8, !tbaa !5
-  %arrayidx.i.i.i.i.i = getelementptr inbounds i8* %17, i64 -24
-  %_M_length.i.i.i.i = bitcast i8* %arrayidx.i.i.i.i.i to i64*
-  %18 = load i64* %_M_length.i.i.i.i, align 8, !tbaa !10
-  %cmp.i.i.i = icmp eq i64 %18, 0
-  br i1 %cmp.i.i.i, label %_ZN2cv6StringC1ERKSs.exit, label %if.then.i.i
-
-if.then.i.i:                                      ; preds = %if.end19
-  %call3.i.i = call i8* @_ZN2cv6String8allocateEm(%"class.cv::String"* %ref.tmp24, i64 %18) #1
-  %19 = load i8** getelementptr inbounds (%"class.std::basic_string"* @input_window, i64 0, i32 0, i32 0), align 8, !tbaa !5
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %call3.i.i, i8* %19, i64 %18, i32 1, i1 false) #1
-  br label %_ZN2cv6StringC1ERKSs.exit
-
-_ZN2cv6StringC1ERKSs.exit:                        ; preds = %if.then.i.i, %if.end19
-  call void @_ZN2cv11namedWindowERKNS_6StringEi(%"class.cv::String"* %ref.tmp24, i32 1) #1
-  call void @_ZN2cv6String10deallocateEv(%"class.cv::String"* %ref.tmp24) #1
-  %20 = bitcast %"class.cv::String"* %ref.tmp25 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %20, i8 0, i64 16, i32 8, i1 false) #1
-  %21 = load i8** getelementptr inbounds (%"class.std::basic_string"* @output_window, i64 0, i32 0, i32 0), align 8, !tbaa !5
-  %arrayidx.i.i.i.i.i151 = getelementptr inbounds i8* %21, i64 -24
-  %_M_length.i.i.i.i152 = bitcast i8* %arrayidx.i.i.i.i.i151 to i64*
-  %22 = load i64* %_M_length.i.i.i.i152, align 8, !tbaa !10
-  %cmp.i.i.i153 = icmp eq i64 %22, 0
-  br i1 %cmp.i.i.i153, label %_ZN2cv6StringC1ERKSs.exit156, label %if.then.i.i155
-
-if.then.i.i155:                                   ; preds = %_ZN2cv6StringC1ERKSs.exit
-  %call3.i.i154 = call i8* @_ZN2cv6String8allocateEm(%"class.cv::String"* %ref.tmp25, i64 %22) #1
-  %23 = load i8** getelementptr inbounds (%"class.std::basic_string"* @output_window, i64 0, i32 0, i32 0), align 8, !tbaa !5
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %call3.i.i154, i8* %23, i64 %22, i32 1, i1 false) #1
-  br label %_ZN2cv6StringC1ERKSs.exit156
-
-_ZN2cv6StringC1ERKSs.exit156:                     ; preds = %if.then.i.i155, %_ZN2cv6StringC1ERKSs.exit
-  call void @_ZN2cv11namedWindowERKNS_6StringEi(%"class.cv::String"* %ref.tmp25, i32 1) #1
-  call void @_ZN2cv6String10deallocateEv(%"class.cv::String"* %ref.tmp25) #1
-  %24 = bitcast %"class.cv::String"* %ref.tmp26 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %24, i8 0, i64 16, i32 8, i1 false) #1
-  %25 = load i8** getelementptr inbounds (%"class.std::basic_string"* @input_window, i64 0, i32 0, i32 0), align 8, !tbaa !5
-  %arrayidx.i.i.i.i.i157 = getelementptr inbounds i8* %25, i64 -24
-  %_M_length.i.i.i.i158 = bitcast i8* %arrayidx.i.i.i.i.i157 to i64*
-  %26 = load i64* %_M_length.i.i.i.i158, align 8, !tbaa !10
-  %cmp.i.i.i159 = icmp eq i64 %26, 0
-  br i1 %cmp.i.i.i159, label %_ZN2cv6StringC1ERKSs.exit162, label %if.then.i.i161
-
-if.then.i.i161:                                   ; preds = %_ZN2cv6StringC1ERKSs.exit156
-  %call3.i.i160 = call i8* @_ZN2cv6String8allocateEm(%"class.cv::String"* %ref.tmp26, i64 %26) #1
-  %27 = load i8** getelementptr inbounds (%"class.std::basic_string"* @input_window, i64 0, i32 0, i32 0), align 8, !tbaa !5
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %call3.i.i160, i8* %27, i64 %26, i32 1, i1 false) #1
-  br label %_ZN2cv6StringC1ERKSs.exit162
-
-_ZN2cv6StringC1ERKSs.exit162:                     ; preds = %if.then.i.i161, %_ZN2cv6StringC1ERKSs.exit156
-  call void @_ZN2cv10moveWindowERKNS_6StringEii(%"class.cv::String"* %ref.tmp26, i32 0, i32 0) #1
-  call void @_ZN2cv6String10deallocateEv(%"class.cv::String"* %ref.tmp26) #1
-  %28 = bitcast %"class.cv::String"* %ref.tmp27 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %28, i8 0, i64 16, i32 8, i1 false) #1
-  %29 = load i8** getelementptr inbounds (%"class.std::basic_string"* @output_window, i64 0, i32 0, i32 0), align 8, !tbaa !5
-  %arrayidx.i.i.i.i.i163 = getelementptr inbounds i8* %29, i64 -24
-  %_M_length.i.i.i.i164 = bitcast i8* %arrayidx.i.i.i.i.i163 to i64*
-  %30 = load i64* %_M_length.i.i.i.i164, align 8, !tbaa !10
-  %cmp.i.i.i165 = icmp eq i64 %30, 0
-  br i1 %cmp.i.i.i165, label %_ZN2cv6StringC1ERKSs.exit168, label %if.then.i.i167
-
-if.then.i.i167:                                   ; preds = %_ZN2cv6StringC1ERKSs.exit162
-  %call3.i.i166 = call i8* @_ZN2cv6String8allocateEm(%"class.cv::String"* %ref.tmp27, i64 %30) #1
-  %31 = load i8** getelementptr inbounds (%"class.std::basic_string"* @output_window, i64 0, i32 0, i32 0), align 8, !tbaa !5
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %call3.i.i166, i8* %31, i64 %30, i32 1, i1 false) #1
-  br label %_ZN2cv6StringC1ERKSs.exit168
-
-_ZN2cv6StringC1ERKSs.exit168:                     ; preds = %if.then.i.i167, %_ZN2cv6StringC1ERKSs.exit162
-  call void @_ZN2cv10moveWindowERKNS_6StringEii(%"class.cv::String"* %ref.tmp27, i32 0, i32 540) #1
-  call void @_ZN2cv6String10deallocateEv(%"class.cv::String"* %ref.tmp27) #1
-  %32 = bitcast %"class.cv::Mat"* %src to i8*
-  call void @llvm.lifetime.start(i64 96, i8* %32) #1
-  %flags.i.i = getelementptr inbounds %"class.cv::Mat"* %src, i64 0, i32 0
-  store i32 1124007936, i32* %flags.i.i, align 8, !tbaa !9
-  %dims.i.i = getelementptr inbounds %"class.cv::Mat"* %src, i64 0, i32 1
-  %rows.i.i = getelementptr inbounds %"class.cv::Mat"* %src, i64 0, i32 2
-  %p.i.i.i.i = getelementptr inbounds %"class.cv::Mat"* %src, i64 0, i32 10, i32 0
-  %33 = bitcast i32* %dims.i.i to i8*
-  call void @llvm.memset.p0i8.i64(i8* %33, i8 0, i64 60, i32 4, i1 false) #1
-  store i32* %rows.i.i, i32** %p.i.i.i.i, align 8, !tbaa !5
-  %arraydecay.i.i.i.i = getelementptr inbounds %"class.cv::Mat"* %src, i64 0, i32 11, i32 1, i64 0
-  %p.i.i3.i.i = getelementptr inbounds %"class.cv::Mat"* %src, i64 0, i32 11, i32 0
-  store i64* %arraydecay.i.i.i.i, i64** %p.i.i3.i.i, align 8, !tbaa !5
-  %34 = bitcast i64* %arraydecay.i.i.i.i to i8*
-  call void @llvm.memset.p0i8.i64(i8* %34, i8 0, i64 16, i32 8, i1 false) #1
-  %35 = bitcast %"class.cv::Mat"* %Gx to i8*
-  call void @llvm.lifetime.start(i64 96, i8* %35) #1
-  %flags.i.i169 = getelementptr inbounds %"class.cv::Mat"* %Gx, i64 0, i32 0
-  store i32 1124007936, i32* %flags.i.i169, align 8, !tbaa !9
-  %dims.i.i170 = getelementptr inbounds %"class.cv::Mat"* %Gx, i64 0, i32 1
-  %rows.i.i171 = getelementptr inbounds %"class.cv::Mat"* %Gx, i64 0, i32 2
-  %p.i.i.i.i172 = getelementptr inbounds %"class.cv::Mat"* %Gx, i64 0, i32 10, i32 0
-  %36 = bitcast i32* %dims.i.i170 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %36, i8 0, i64 60, i32 4, i1 false) #1
-  store i32* %rows.i.i171, i32** %p.i.i.i.i172, align 8, !tbaa !5
-  %arraydecay.i.i.i.i173 = getelementptr inbounds %"class.cv::Mat"* %Gx, i64 0, i32 11, i32 1, i64 0
-  %p.i.i3.i.i174 = getelementptr inbounds %"class.cv::Mat"* %Gx, i64 0, i32 11, i32 0
-  store i64* %arraydecay.i.i.i.i173, i64** %p.i.i3.i.i174, align 8, !tbaa !5
-  %37 = bitcast i64* %arraydecay.i.i.i.i173 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %37, i8 0, i64 16, i32 8, i1 false) #1
-  %38 = bitcast %"class.cv::Mat"* %Gy to i8*
-  call void @llvm.lifetime.start(i64 96, i8* %38) #1
-  %flags.i.i175 = getelementptr inbounds %"class.cv::Mat"* %Gy, i64 0, i32 0
-  store i32 1124007936, i32* %flags.i.i175, align 8, !tbaa !9
-  %dims.i.i176 = getelementptr inbounds %"class.cv::Mat"* %Gy, i64 0, i32 1
-  %rows.i.i177 = getelementptr inbounds %"class.cv::Mat"* %Gy, i64 0, i32 2
-  %p.i.i.i.i178 = getelementptr inbounds %"class.cv::Mat"* %Gy, i64 0, i32 10, i32 0
-  %39 = bitcast i32* %dims.i.i176 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %39, i8 0, i64 60, i32 4, i1 false) #1
-  store i32* %rows.i.i177, i32** %p.i.i.i.i178, align 8, !tbaa !5
-  %arraydecay.i.i.i.i179 = getelementptr inbounds %"class.cv::Mat"* %Gy, i64 0, i32 11, i32 1, i64 0
-  %p.i.i3.i.i180 = getelementptr inbounds %"class.cv::Mat"* %Gy, i64 0, i32 11, i32 0
-  store i64* %arraydecay.i.i.i.i179, i64** %p.i.i3.i.i180, align 8, !tbaa !5
-  %40 = bitcast i64* %arraydecay.i.i.i.i179 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %40, i8 0, i64 16, i32 8, i1 false) #1
-  %41 = bitcast %"class.cv::Mat"* %G to i8*
-  call void @llvm.lifetime.start(i64 96, i8* %41) #1
-  %flags.i.i181 = getelementptr inbounds %"class.cv::Mat"* %G, i64 0, i32 0
-  store i32 1124007936, i32* %flags.i.i181, align 8, !tbaa !9
-  %dims.i.i182 = getelementptr inbounds %"class.cv::Mat"* %G, i64 0, i32 1
-  %rows.i.i183 = getelementptr inbounds %"class.cv::Mat"* %G, i64 0, i32 2
-  %p.i.i.i.i184 = getelementptr inbounds %"class.cv::Mat"* %G, i64 0, i32 10, i32 0
-  %42 = bitcast i32* %dims.i.i182 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %42, i8 0, i64 60, i32 4, i1 false) #1
-  store i32* %rows.i.i183, i32** %p.i.i.i.i184, align 8, !tbaa !5
-  %arraydecay.i.i.i.i185 = getelementptr inbounds %"class.cv::Mat"* %G, i64 0, i32 11, i32 1, i64 0
-  %p.i.i3.i.i186 = getelementptr inbounds %"class.cv::Mat"* %G, i64 0, i32 11, i32 0
-  store i64* %arraydecay.i.i.i.i185, i64** %p.i.i3.i.i186, align 8, !tbaa !5
-  %43 = bitcast i64* %arraydecay.i.i.i.i185 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %43, i8 0, i64 16, i32 8, i1 false) #1
-  %44 = bitcast %"class.cv::_InputArray"* %ref.tmp.i to i8*
-  call void @llvm.lifetime.start(i64 24, i8* %44) #1
-  %45 = bitcast %"class.cv::_OutputArray"* %ref.tmp2.i to i8*
-  call void @llvm.lifetime.start(i64 24, i8* %45) #1
-  %46 = bitcast %"class.cv::_OutputArray"* %ref.tmp3.i to i8*
-  call void @llvm.lifetime.start(i64 24, i8* %46) #1
-  %47 = bitcast %"class.cv::VideoCapture"* %cap to %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)***
-  %vtable.i187 = load %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)*** %47, align 8, !tbaa !12
-  %vfn.i = getelementptr inbounds %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)** %vtable.i187, i64 8
-  %48 = load %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)** %vfn.i, align 8
-  %call.i = call %"class.cv::VideoCapture"* %48(%"class.cv::VideoCapture"* %cap, %"class.cv::Mat"* %src) #1
-  %49 = load i32* %flags.i.i, align 8, !tbaa !9
-  %shr2.i.i = and i32 %49, 4088
-  %cmp.i = icmp eq i32 %shr2.i.i, 16
-  br i1 %cmp.i, label %if.then.i189, label %_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit
-
-if.then.i189:                                     ; preds = %_ZN2cv6StringC1ERKSs.exit168
-  %width.i.i.i.i.i = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp.i, i64 0, i32 2, i32 0
-  store i32 0, i32* %width.i.i.i.i.i, align 8, !tbaa !9
-  %height.i.i.i.i.i = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp.i, i64 0, i32 2, i32 1
-  store i32 0, i32* %height.i.i.i.i.i, align 4, !tbaa !9
-  %flags.i.i.i.i = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp.i, i64 0, i32 0
-  store i32 16842752, i32* %flags.i.i.i.i, align 8, !tbaa !9
-  %obj.i.i.i.i = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp.i, i64 0, i32 1
-  store i8* %32, i8** %obj.i.i.i.i, align 8, !tbaa !5
-  %flags.i.i.i.i9.i = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp2.i, i64 0, i32 0, i32 0
-  %obj.i.i.i.i10.i = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp2.i, i64 0, i32 0, i32 1
-  %50 = bitcast i8** %obj.i.i.i.i10.i to i8*
-  call void @llvm.memset.p0i8.i64(i8* %50, i8 0, i64 16, i32 8, i1 false) #1
-  store i32 33619968, i32* %flags.i.i.i.i9.i, align 8, !tbaa !9
-  store i8* %32, i8** %obj.i.i.i.i10.i, align 8, !tbaa !5
-  call void @_ZN2cv8cvtColorERKNS_11_InputArrayERKNS_12_OutputArrayEii(%"class.cv::_InputArray"* %ref.tmp.i, %"class.cv::_OutputArray"* %ref.tmp2.i, i32 6, i32 0) #1
-  br label %_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit
-
-_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit: ; preds = %if.then.i189, %_ZN2cv6StringC1ERKSs.exit168
-  %flags.i.i.i.i.i = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp3.i, i64 0, i32 0, i32 0
-  %obj.i.i.i.i.i = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp3.i, i64 0, i32 0, i32 1
-  %51 = bitcast i8** %obj.i.i.i.i.i to i8*
-  call void @llvm.memset.p0i8.i64(i8* %51, i8 0, i64 16, i32 8, i1 false) #1
-  store i32 33619968, i32* %flags.i.i.i.i.i, align 8, !tbaa !9
-  store i8* %32, i8** %obj.i.i.i.i.i, align 8, !tbaa !5
-  call void @_ZNK2cv3Mat9convertToERKNS_12_OutputArrayEidd(%"class.cv::Mat"* %src, %"class.cv::_OutputArray"* %ref.tmp3.i, i32 5, double 0x3F70101010101010, double 0.000000e+00) #1
-  call void @llvm.lifetime.end(i64 24, i8* %44) #1
-  call void @llvm.lifetime.end(i64 24, i8* %45) #1
-  call void @llvm.lifetime.end(i64 24, i8* %46) #1
-  %call1.i191 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([19 x i8]* @.str11, i64 0, i64 0), i64 18) #1
-  %52 = load i32** %p.i.i.i.i, align 8, !tbaa !5
-  %arrayidx.i = getelementptr inbounds i32* %52, i64 1
-  %53 = load i32* %arrayidx.i, align 4, !tbaa !9
-  %54 = load i32* %52, align 4, !tbaa !9
-  %call1.i.i = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([2 x i8]* @.str16, i64 0, i64 0), i64 1) #1
-  %call1.i193 = call %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"* @_ZSt4cout, i32 %53) #1
-  %call1.i7.i = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* %call1.i193, i8* getelementptr inbounds ([4 x i8]* @.str17, i64 0, i64 0), i64 3) #1
-  %call3.i = call %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"* %call1.i193, i32 %54) #1
-  %call1.i9.i = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* %call3.i, i8* getelementptr inbounds ([2 x i8]* @.str18, i64 0, i64 0), i64 1) #1
-  %call1.i195 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* %call3.i, i8* getelementptr inbounds ([2 x i8]* @.str6, i64 0, i64 0), i64 1) #1
-  %55 = load i32* %flags.i.i, align 8, !tbaa !9
-  %and.i = and i32 %55, 16384
-  %cmp.i197 = icmp eq i32 %and.i, 0
-  br i1 %cmp.i197, label %if.then33, label %if.end35
-
-if.then33:                                        ; preds = %_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit
-  %call1.i199 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([50 x i8]* @.str12, i64 0, i64 0), i64 49) #1
-  call void @exit(i32 -1) #9
-  unreachable
-
-if.end35:                                         ; preds = %_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit
-  %56 = load i32** %p.i.i.i.i, align 8, !tbaa !5
-  %57 = load i32* %56, align 4, !tbaa !9
-  %arrayidx.i203 = getelementptr inbounds i32* %56, i64 1
-  %58 = load i32* %arrayidx.i203, align 4, !tbaa !9
-  %flags.i.i204 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp36, i64 0, i32 0
-  store i32 1124007936, i32* %flags.i.i204, align 8, !tbaa !9
-  %dims.i.i205 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp36, i64 0, i32 1
-  %rows.i.i206 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp36, i64 0, i32 2
-  %p.i.i.i.i207 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp36, i64 0, i32 10, i32 0
-  %59 = bitcast i32* %dims.i.i205 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %59, i8 0, i64 60, i32 4, i1 false) #1
-  store i32* %rows.i.i206, i32** %p.i.i.i.i207, align 8, !tbaa !5
-  %arraydecay.i.i.i.i208 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp36, i64 0, i32 11, i32 1, i64 0
-  %p.i.i3.i.i209 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp36, i64 0, i32 11, i32 0
-  store i64* %arraydecay.i.i.i.i208, i64** %p.i.i3.i.i209, align 8, !tbaa !5
-  %60 = bitcast i64* %arraydecay.i.i.i.i208 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %60, i8 0, i64 16, i32 8, i1 false) #1
-  %61 = bitcast [2 x i32]* %sz.i.i.i to i8*
-  call void @llvm.lifetime.start(i64 8, i8* %61) #1
-  %arrayinit.begin.i.i.i = getelementptr inbounds [2 x i32]* %sz.i.i.i, i64 0, i64 0
-  store i32 %57, i32* %arrayinit.begin.i.i.i, align 4, !tbaa !9
-  %arrayinit.element.i.i.i = getelementptr inbounds [2 x i32]* %sz.i.i.i, i64 0, i64 1
-  store i32 %58, i32* %arrayinit.element.i.i.i, align 4, !tbaa !9
-  call void @_ZN2cv3Mat6createEiPKii(%"class.cv::Mat"* %ref.tmp36, i32 2, i32* %arrayinit.begin.i.i.i, i32 5) #1
-  call void @llvm.lifetime.end(i64 8, i8* %61) #1
-  %call41 = call %"class.cv::Mat"* @_ZN2cv3MataSERKS0_(%"class.cv::Mat"* %Gx, %"class.cv::Mat"* %ref.tmp36)
-  %u.i.i.i = getelementptr inbounds %"class.cv::Mat"* %ref.tmp36, i64 0, i32 9
-  %62 = load %"struct.cv::UMatData"** %u.i.i.i, align 8, !tbaa !5
-  %tobool.i.i.i = icmp eq %"struct.cv::UMatData"* %62, null
-  br i1 %tobool.i.i.i, label %if.end.i.i.i, label %land.lhs.true.i.i.i
-
-land.lhs.true.i.i.i:                              ; preds = %if.end35
-  %refcount.i.i.i = getelementptr inbounds %"struct.cv::UMatData"* %62, i64 0, i32 3
-  %63 = atomicrmw add i32* %refcount.i.i.i, i32 -1 acq_rel
-  %cmp.i.i.i210 = icmp eq i32 %63, 1
-  br i1 %cmp.i.i.i210, label %if.then.i.i.i, label %if.end.i.i.i
-
-if.then.i.i.i:                                    ; preds = %land.lhs.true.i.i.i
-  call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %ref.tmp36) #1
-  br label %if.end.i.i.i
-
-if.end.i.i.i:                                     ; preds = %if.then.i.i.i, %land.lhs.true.i.i.i, %if.end35
-  store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i, align 8, !tbaa !5
-  %data.i.i.i = getelementptr inbounds %"class.cv::Mat"* %ref.tmp36, i64 0, i32 4
-  %64 = bitcast i8** %data.i.i.i to i8*
-  call void @llvm.memset.p0i8.i64(i8* %64, i8 0, i64 32, i32 8, i1 false) #1
-  %65 = load i32* %dims.i.i205, align 4, !tbaa !9
-  %cmp47.i.i.i = icmp sgt i32 %65, 0
-  br i1 %cmp47.i.i.i, label %for.body.lr.ph.i.i.i, label %_ZN2cv3Mat7releaseEv.exit.i.i
-
-for.body.lr.ph.i.i.i:                             ; preds = %if.end.i.i.i
-  %66 = load i32** %p.i.i.i.i207, align 8, !tbaa !5
-  br label %for.body.i.i.i
-
-for.body.i.i.i:                                   ; preds = %for.body.i.i.i, %for.body.lr.ph.i.i.i
-  %indvars.iv.i.i.i = phi i64 [ 0, %for.body.lr.ph.i.i.i ], [ %indvars.iv.next.i.i.i, %for.body.i.i.i ]
-  %arrayidx.i.i.i = getelementptr inbounds i32* %66, i64 %indvars.iv.i.i.i
-  store i32 0, i32* %arrayidx.i.i.i, align 4, !tbaa !9
-  %indvars.iv.next.i.i.i = add i64 %indvars.iv.i.i.i, 1
-  %67 = load i32* %dims.i.i205, align 4, !tbaa !9
-  %68 = trunc i64 %indvars.iv.next.i.i.i to i32
-  %cmp4.i.i.i = icmp slt i32 %68, %67
-  br i1 %cmp4.i.i.i, label %for.body.i.i.i, label %_ZN2cv3Mat7releaseEv.exit.i.i
-
-_ZN2cv3Mat7releaseEv.exit.i.i:                    ; preds = %for.body.i.i.i, %if.end.i.i.i
-  %69 = load i64** %p.i.i3.i.i209, align 8, !tbaa !5
-  %cmp.i.i = icmp eq i64* %69, %arraydecay.i.i.i.i208
-  br i1 %cmp.i.i, label %_ZN2cv3MatD1Ev.exit, label %if.then.i.i211
-
-if.then.i.i211:                                   ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i
-  %70 = bitcast i64* %69 to i8*
-  call void @_ZN2cv8fastFreeEPv(i8* %70) #1
-  br label %_ZN2cv3MatD1Ev.exit
-
-_ZN2cv3MatD1Ev.exit:                              ; preds = %if.then.i.i211, %_ZN2cv3Mat7releaseEv.exit.i.i
-  %71 = load i32** %p.i.i.i.i, align 8, !tbaa !5
-  %72 = load i32* %71, align 4, !tbaa !9
-  %arrayidx.i214 = getelementptr inbounds i32* %71, i64 1
-  %73 = load i32* %arrayidx.i214, align 4, !tbaa !9
-  %flags.i.i216 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp42, i64 0, i32 0
-  store i32 1124007936, i32* %flags.i.i216, align 8, !tbaa !9
-  %dims.i.i217 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp42, i64 0, i32 1
-  %rows.i.i218 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp42, i64 0, i32 2
-  %p.i.i.i.i219 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp42, i64 0, i32 10, i32 0
-  %74 = bitcast i32* %dims.i.i217 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %74, i8 0, i64 60, i32 4, i1 false) #1
-  store i32* %rows.i.i218, i32** %p.i.i.i.i219, align 8, !tbaa !5
-  %arraydecay.i.i.i.i220 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp42, i64 0, i32 11, i32 1, i64 0
-  %p.i.i3.i.i221 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp42, i64 0, i32 11, i32 0
-  store i64* %arraydecay.i.i.i.i220, i64** %p.i.i3.i.i221, align 8, !tbaa !5
-  %75 = bitcast i64* %arraydecay.i.i.i.i220 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %75, i8 0, i64 16, i32 8, i1 false) #1
-  call void @llvm.lifetime.start(i64 8, i8* %61) #1
-  store i32 %72, i32* %arrayinit.begin.i.i.i, align 4, !tbaa !9
-  store i32 %73, i32* %arrayinit.element.i.i.i, align 4, !tbaa !9
-  call void @_ZN2cv3Mat6createEiPKii(%"class.cv::Mat"* %ref.tmp42, i32 2, i32* %arrayinit.begin.i.i.i, i32 5) #1
-  call void @llvm.lifetime.end(i64 8, i8* %61) #1
-  %call47 = call %"class.cv::Mat"* @_ZN2cv3MataSERKS0_(%"class.cv::Mat"* %Gy, %"class.cv::Mat"* %ref.tmp42)
-  %u.i.i.i224 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp42, i64 0, i32 9
-  %76 = load %"struct.cv::UMatData"** %u.i.i.i224, align 8, !tbaa !5
-  %tobool.i.i.i225 = icmp eq %"struct.cv::UMatData"* %76, null
-  br i1 %tobool.i.i.i225, label %if.end.i.i.i233, label %land.lhs.true.i.i.i228
-
-land.lhs.true.i.i.i228:                           ; preds = %_ZN2cv3MatD1Ev.exit
-  %refcount.i.i.i226 = getelementptr inbounds %"struct.cv::UMatData"* %76, i64 0, i32 3
-  %77 = atomicrmw add i32* %refcount.i.i.i226, i32 -1 acq_rel
-  %cmp.i.i.i227 = icmp eq i32 %77, 1
-  br i1 %cmp.i.i.i227, label %if.then.i.i.i229, label %if.end.i.i.i233
-
-if.then.i.i.i229:                                 ; preds = %land.lhs.true.i.i.i228
-  call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %ref.tmp42) #1
-  br label %if.end.i.i.i233
-
-if.end.i.i.i233:                                  ; preds = %if.then.i.i.i229, %land.lhs.true.i.i.i228, %_ZN2cv3MatD1Ev.exit
-  store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i224, align 8, !tbaa !5
-  %data.i.i.i230 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp42, i64 0, i32 4
-  %78 = bitcast i8** %data.i.i.i230 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %78, i8 0, i64 32, i32 8, i1 false) #1
-  %79 = load i32* %dims.i.i217, align 4, !tbaa !9
-  %cmp47.i.i.i232 = icmp sgt i32 %79, 0
-  br i1 %cmp47.i.i.i232, label %for.body.lr.ph.i.i.i235, label %_ZN2cv3Mat7releaseEv.exit.i.i244
-
-for.body.lr.ph.i.i.i235:                          ; preds = %if.end.i.i.i233
-  %80 = load i32** %p.i.i.i.i219, align 8, !tbaa !5
-  br label %for.body.i.i.i240
-
-for.body.i.i.i240:                                ; preds = %for.body.i.i.i240, %for.body.lr.ph.i.i.i235
-  %indvars.iv.i.i.i236 = phi i64 [ 0, %for.body.lr.ph.i.i.i235 ], [ %indvars.iv.next.i.i.i238, %for.body.i.i.i240 ]
-  %arrayidx.i.i.i237 = getelementptr inbounds i32* %80, i64 %indvars.iv.i.i.i236
-  store i32 0, i32* %arrayidx.i.i.i237, align 4, !tbaa !9
-  %indvars.iv.next.i.i.i238 = add i64 %indvars.iv.i.i.i236, 1
-  %81 = load i32* %dims.i.i217, align 4, !tbaa !9
-  %82 = trunc i64 %indvars.iv.next.i.i.i238 to i32
-  %cmp4.i.i.i239 = icmp slt i32 %82, %81
-  br i1 %cmp4.i.i.i239, label %for.body.i.i.i240, label %_ZN2cv3Mat7releaseEv.exit.i.i244
-
-_ZN2cv3Mat7releaseEv.exit.i.i244:                 ; preds = %for.body.i.i.i240, %if.end.i.i.i233
-  %83 = load i64** %p.i.i3.i.i221, align 8, !tbaa !5
-  %cmp.i.i243 = icmp eq i64* %83, %arraydecay.i.i.i.i220
-  br i1 %cmp.i.i243, label %_ZN2cv3MatD1Ev.exit246, label %if.then.i.i245
-
-if.then.i.i245:                                   ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i244
-  %84 = bitcast i64* %83 to i8*
-  call void @_ZN2cv8fastFreeEPv(i8* %84) #1
-  br label %_ZN2cv3MatD1Ev.exit246
-
-_ZN2cv3MatD1Ev.exit246:                           ; preds = %if.then.i.i245, %_ZN2cv3Mat7releaseEv.exit.i.i244
-  %85 = load i32** %p.i.i.i.i, align 8, !tbaa !5
-  %86 = load i32* %85, align 4, !tbaa !9
-  %arrayidx.i249 = getelementptr inbounds i32* %85, i64 1
-  %87 = load i32* %arrayidx.i249, align 4, !tbaa !9
-  %flags.i.i251 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp48, i64 0, i32 0
-  store i32 1124007936, i32* %flags.i.i251, align 8, !tbaa !9
-  %dims.i.i252 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp48, i64 0, i32 1
-  %rows.i.i253 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp48, i64 0, i32 2
-  %p.i.i.i.i254 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp48, i64 0, i32 10, i32 0
-  %88 = bitcast i32* %dims.i.i252 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %88, i8 0, i64 60, i32 4, i1 false) #1
-  store i32* %rows.i.i253, i32** %p.i.i.i.i254, align 8, !tbaa !5
-  %arraydecay.i.i.i.i255 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp48, i64 0, i32 11, i32 1, i64 0
-  %p.i.i3.i.i256 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp48, i64 0, i32 11, i32 0
-  store i64* %arraydecay.i.i.i.i255, i64** %p.i.i3.i.i256, align 8, !tbaa !5
-  %89 = bitcast i64* %arraydecay.i.i.i.i255 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %89, i8 0, i64 16, i32 8, i1 false) #1
-  call void @llvm.lifetime.start(i64 8, i8* %61) #1
-  store i32 %86, i32* %arrayinit.begin.i.i.i, align 4, !tbaa !9
-  store i32 %87, i32* %arrayinit.element.i.i.i, align 4, !tbaa !9
-  call void @_ZN2cv3Mat6createEiPKii(%"class.cv::Mat"* %ref.tmp48, i32 2, i32* %arrayinit.begin.i.i.i, i32 5) #1
-  call void @llvm.lifetime.end(i64 8, i8* %61) #1
-  %call53 = call %"class.cv::Mat"* @_ZN2cv3MataSERKS0_(%"class.cv::Mat"* %G, %"class.cv::Mat"* %ref.tmp48)
-  %u.i.i.i259 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp48, i64 0, i32 9
-  %90 = load %"struct.cv::UMatData"** %u.i.i.i259, align 8, !tbaa !5
-  %tobool.i.i.i260 = icmp eq %"struct.cv::UMatData"* %90, null
-  br i1 %tobool.i.i.i260, label %if.end.i.i.i268, label %land.lhs.true.i.i.i263
-
-land.lhs.true.i.i.i263:                           ; preds = %_ZN2cv3MatD1Ev.exit246
-  %refcount.i.i.i261 = getelementptr inbounds %"struct.cv::UMatData"* %90, i64 0, i32 3
-  %91 = atomicrmw add i32* %refcount.i.i.i261, i32 -1 acq_rel
-  %cmp.i.i.i262 = icmp eq i32 %91, 1
-  br i1 %cmp.i.i.i262, label %if.then.i.i.i264, label %if.end.i.i.i268
-
-if.then.i.i.i264:                                 ; preds = %land.lhs.true.i.i.i263
-  call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %ref.tmp48) #1
-  br label %if.end.i.i.i268
-
-if.end.i.i.i268:                                  ; preds = %if.then.i.i.i264, %land.lhs.true.i.i.i263, %_ZN2cv3MatD1Ev.exit246
-  store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i259, align 8, !tbaa !5
-  %data.i.i.i265 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp48, i64 0, i32 4
-  %92 = bitcast i8** %data.i.i.i265 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %92, i8 0, i64 32, i32 8, i1 false) #1
-  %93 = load i32* %dims.i.i252, align 4, !tbaa !9
-  %cmp47.i.i.i267 = icmp sgt i32 %93, 0
-  br i1 %cmp47.i.i.i267, label %for.body.lr.ph.i.i.i270, label %_ZN2cv3Mat7releaseEv.exit.i.i279
-
-for.body.lr.ph.i.i.i270:                          ; preds = %if.end.i.i.i268
-  %94 = load i32** %p.i.i.i.i254, align 8, !tbaa !5
-  br label %for.body.i.i.i275
-
-for.body.i.i.i275:                                ; preds = %for.body.i.i.i275, %for.body.lr.ph.i.i.i270
-  %indvars.iv.i.i.i271 = phi i64 [ 0, %for.body.lr.ph.i.i.i270 ], [ %indvars.iv.next.i.i.i273, %for.body.i.i.i275 ]
-  %arrayidx.i.i.i272 = getelementptr inbounds i32* %94, i64 %indvars.iv.i.i.i271
-  store i32 0, i32* %arrayidx.i.i.i272, align 4, !tbaa !9
-  %indvars.iv.next.i.i.i273 = add i64 %indvars.iv.i.i.i271, 1
-  %95 = load i32* %dims.i.i252, align 4, !tbaa !9
-  %96 = trunc i64 %indvars.iv.next.i.i.i273 to i32
-  %cmp4.i.i.i274 = icmp slt i32 %96, %95
-  br i1 %cmp4.i.i.i274, label %for.body.i.i.i275, label %_ZN2cv3Mat7releaseEv.exit.i.i279
-
-_ZN2cv3Mat7releaseEv.exit.i.i279:                 ; preds = %for.body.i.i.i275, %if.end.i.i.i268
-  %97 = load i64** %p.i.i3.i.i256, align 8, !tbaa !5
-  %cmp.i.i278 = icmp eq i64* %97, %arraydecay.i.i.i.i255
-  br i1 %cmp.i.i278, label %_ZN2cv3MatD1Ev.exit281, label %if.then.i.i280
-
-if.then.i.i280:                                   ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i279
-  %98 = bitcast i64* %97 to i8*
-  call void @_ZN2cv8fastFreeEPv(i8* %98) #1
-  br label %_ZN2cv3MatD1Ev.exit281
-
-_ZN2cv3MatD1Ev.exit281:                           ; preds = %if.then.i.i280, %_ZN2cv3Mat7releaseEv.exit.i.i279
-  %99 = load i32* %flags.i.i, align 8, !tbaa !9
-  %and.i283 = and i32 %99, 16384
-  %cmp.i284 = icmp eq i32 %and.i283, 0
-  br i1 %cmp.i284, label %cond.false, label %land.lhs.true
-
-land.lhs.true:                                    ; preds = %_ZN2cv3MatD1Ev.exit281
-  %100 = load i32* %flags.i.i169, align 8, !tbaa !9
-  %and.i286 = and i32 %100, 16384
-  %cmp.i287 = icmp eq i32 %and.i286, 0
-  br i1 %cmp.i287, label %cond.false, label %land.lhs.true56
-
-land.lhs.true56:                                  ; preds = %land.lhs.true
-  %101 = load i32* %flags.i.i175, align 8, !tbaa !9
-  %and.i289 = and i32 %101, 16384
-  %cmp.i290 = icmp eq i32 %and.i289, 0
-  br i1 %cmp.i290, label %cond.false, label %land.lhs.true58
-
-land.lhs.true58:                                  ; preds = %land.lhs.true56
-  %102 = load i32* %flags.i.i181, align 8, !tbaa !9
-  %and.i292 = and i32 %102, 16384
-  %cmp.i293 = icmp eq i32 %and.i292, 0
-  br i1 %cmp.i293, label %cond.false, label %cond.end
-
-cond.false:                                       ; preds = %land.lhs.true58, %land.lhs.true56, %land.lhs.true, %_ZN2cv3MatD1Ev.exit281
-  call void @__assert_fail(i8* getelementptr inbounds ([81 x i8]* @.str13, i64 0, i64 0), i8* getelementptr inbounds ([21 x i8]* @.str14, i64 0, i64 0), i32 447, i8* getelementptr inbounds ([23 x i8]* @__PRETTY_FUNCTION__.main, i64 0, i64 0)) #9
-  unreachable
-
-cond.end:                                         ; preds = %land.lhs.true58
-  call void @pb_InitializeTimerSet(%struct.pb_TimerSet* %timers) #1
-  call void @llvm.hpvm.init()
-  %103 = load i32** %p.i.i.i.i, align 8, !tbaa !5
-  %104 = load i32* %103, align 4, !tbaa !9
-  %arrayidx.i296 = getelementptr inbounds i32* %103, i64 1
-  %105 = load i32* %arrayidx.i296, align 4, !tbaa !9
-  %mul = mul nsw i32 %105, %104
-  %conv64 = sext i32 %mul to i64
-  %mul65 = shl nsw i64 %conv64, 2
-  %106 = bitcast [9 x float]* %Sx to i8*
-  call void @llvm.lifetime.start(i64 36, i8* %106) #1
-  call void @llvm.memset.p0i8.i64(i8* %106, i8 0, i64 32, i32 16, i1 false)
-  %107 = getelementptr [9 x float]* %Sx, i64 0, i64 0
-  store float -1.000000e+00, float* %107, align 16
-  %108 = getelementptr [9 x float]* %Sx, i64 0, i64 2
-  store float 1.000000e+00, float* %108, align 8
-  %109 = getelementptr [9 x float]* %Sx, i64 0, i64 3
-  store float -2.000000e+00, float* %109, align 4
-  %110 = getelementptr [9 x float]* %Sx, i64 0, i64 5
-  store float 2.000000e+00, float* %110, align 4
-  %111 = getelementptr [9 x float]* %Sx, i64 0, i64 6
-  store float -1.000000e+00, float* %111, align 8
-  %112 = getelementptr [9 x float]* %Sx, i64 0, i64 8
-  store float 1.000000e+00, float* %112, align 16
-  %113 = bitcast [9 x float]* %Sy to i8*
-  call void @llvm.lifetime.start(i64 36, i8* %113) #1
-  call void @llvm.memset.p0i8.i64(i8* %113, i8 0, i64 32, i32 16, i1 false)
-  %114 = getelementptr [9 x float]* %Sy, i64 0, i64 0
-  store float -1.000000e+00, float* %114, align 16
-  %115 = getelementptr [9 x float]* %Sy, i64 0, i64 1
-  store float -2.000000e+00, float* %115, align 4
-  %116 = getelementptr [9 x float]* %Sy, i64 0, i64 2
-  store float -1.000000e+00, float* %116, align 8
-  %117 = getelementptr [9 x float]* %Sy, i64 0, i64 6
-  store float 1.000000e+00, float* %117, align 8
-  %118 = getelementptr [9 x float]* %Sy, i64 0, i64 7
-  store float 2.000000e+00, float* %118, align 4
-  %119 = getelementptr [9 x float]* %Sy, i64 0, i64 8
-  store float 1.000000e+00, float* %119, align 16
-  %120 = bitcast %"class.cv::Mat"* %in to i8*
-  call void @llvm.lifetime.start(i64 96, i8* %120) #1
-  %flags.i.i297 = getelementptr inbounds %"class.cv::Mat"* %in, i64 0, i32 0
-  store i32 1124007936, i32* %flags.i.i297, align 8, !tbaa !9
-  %dims.i.i298 = getelementptr inbounds %"class.cv::Mat"* %in, i64 0, i32 1
-  %rows.i.i299 = getelementptr inbounds %"class.cv::Mat"* %in, i64 0, i32 2
-  %p.i.i.i.i300 = getelementptr inbounds %"class.cv::Mat"* %in, i64 0, i32 10, i32 0
-  %121 = bitcast i32* %dims.i.i298 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %121, i8 0, i64 60, i32 4, i1 false) #1
-  store i32* %rows.i.i299, i32** %p.i.i.i.i300, align 8, !tbaa !5
-  %arraydecay.i.i.i.i301 = getelementptr inbounds %"class.cv::Mat"* %in, i64 0, i32 11, i32 1, i64 0
-  %p.i.i3.i.i302 = getelementptr inbounds %"class.cv::Mat"* %in, i64 0, i32 11, i32 0
-  store i64* %arraydecay.i.i.i.i301, i64** %p.i.i3.i.i302, align 8, !tbaa !5
-  %122 = bitcast i64* %arraydecay.i.i.i.i301 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %122, i8 0, i64 16, i32 8, i1 false) #1
-  %123 = bitcast %"class.cv::Mat"* %out to i8*
-  call void @llvm.lifetime.start(i64 96, i8* %123) #1
-  %flags.i.i303 = getelementptr inbounds %"class.cv::Mat"* %out, i64 0, i32 0
-  store i32 1124007936, i32* %flags.i.i303, align 8, !tbaa !9
-  %dims.i.i304 = getelementptr inbounds %"class.cv::Mat"* %out, i64 0, i32 1
-  %rows.i.i305 = getelementptr inbounds %"class.cv::Mat"* %out, i64 0, i32 2
-  %p.i.i.i.i306 = getelementptr inbounds %"class.cv::Mat"* %out, i64 0, i32 10, i32 0
-  %124 = bitcast i32* %dims.i.i304 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %124, i8 0, i64 60, i32 4, i1 false) #1
-  store i32* %rows.i.i305, i32** %p.i.i.i.i306, align 8, !tbaa !5
-  %arraydecay.i.i.i.i307 = getelementptr inbounds %"class.cv::Mat"* %out, i64 0, i32 11, i32 1, i64 0
-  %p.i.i3.i.i308 = getelementptr inbounds %"class.cv::Mat"* %out, i64 0, i32 11, i32 0
-  store i64* %arraydecay.i.i.i.i307, i64** %p.i.i3.i.i308, align 8, !tbaa !5
-  %125 = bitcast i64* %arraydecay.i.i.i.i307 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %125, i8 0, i64 16, i32 8, i1 false) #1
-  %call66 = call noalias i8* @malloc(i64 104) #1
-  %126 = load i8*** %inpFiles, align 8, !tbaa !5
-  %127 = load i8** %126, align 8, !tbaa !5
-  %tobool.i.i309 = icmp eq i8* %127, null
-  %128 = bitcast %"class.cv::String"* %ref.tmp68 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %128, i8 0, i64 16, i32 8, i1 false) #1
-  br i1 %tobool.i.i309, label %_ZN2cv6StringC1EPKc.exit313, label %if.end.i.i312
-
-if.end.i.i312:                                    ; preds = %cond.end
-  %call.i.i310 = call i64 @strlen(i8* %127) #8
-  %call2.i.i311 = call i8* @_ZN2cv6String8allocateEm(%"class.cv::String"* %ref.tmp68, i64 %call.i.i310) #1
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %call2.i.i311, i8* %127, i64 %call.i.i310, i32 1, i1 false) #1
-  br label %_ZN2cv6StringC1EPKc.exit313
-
-_ZN2cv6StringC1EPKc.exit313:                      ; preds = %if.end.i.i312, %cond.end
-  call void @_ZN2cv12VideoCaptureC1ERKNS_6StringE(%"class.cv::VideoCapture"* %ref.tmp67, %"class.cv::String"* %ref.tmp68) #1
-  %owner2.i.i.i.i = getelementptr inbounds %"class.cv::VideoCapture"* %ref.tmp67, i64 0, i32 1, i32 0
-  %129 = load %"struct.cv::detail::PtrOwner"** %owner2.i.i.i.i, align 8, !tbaa !5
-  %stored3.i.i.i.i = getelementptr inbounds %"class.cv::VideoCapture"* %ref.tmp67, i64 0, i32 1, i32 1
-  %130 = load %struct.CvCapture** %stored3.i.i.i.i, align 8, !tbaa !5
-  %tobool.i.i.i.i = icmp eq %"struct.cv::detail::PtrOwner"* %129, null
-  br i1 %tobool.i.i.i.i, label %_ZN2cv3PtrI9CvCaptureEC1ERKS2_.exit.i.i, label %if.then.i.i.i.i
-
-if.then.i.i.i.i:                                  ; preds = %_ZN2cv6StringC1EPKc.exit313
-  %refCount.i.i.i.i.i = getelementptr inbounds %"struct.cv::detail::PtrOwner"* %129, i64 0, i32 1
-  %131 = atomicrmw add i32* %refCount.i.i.i.i.i, i32 1 acq_rel
-  br label %_ZN2cv3PtrI9CvCaptureEC1ERKS2_.exit.i.i
-
-_ZN2cv3PtrI9CvCaptureEC1ERKS2_.exit.i.i:          ; preds = %if.then.i.i.i.i, %_ZN2cv6StringC1EPKc.exit313
-  %owner2.i.i.i = getelementptr inbounds %"class.cv::VideoCapture"* %cap, i64 0, i32 1, i32 0
-  %132 = load %"struct.cv::detail::PtrOwner"** %owner2.i.i.i, align 8, !tbaa !5
-  store %"struct.cv::detail::PtrOwner"* %129, %"struct.cv::detail::PtrOwner"** %owner2.i.i.i, align 8, !tbaa !5
-  %stored3.i.i.i = getelementptr inbounds %"class.cv::VideoCapture"* %cap, i64 0, i32 1, i32 1
-  store %struct.CvCapture* %130, %struct.CvCapture** %stored3.i.i.i, align 8, !tbaa !5
-  %tobool.i.i.i.i.i = icmp eq %"struct.cv::detail::PtrOwner"* %132, null
-  br i1 %tobool.i.i.i.i.i, label %_ZN2cv3PtrI9CvCaptureEaSERKS2_.exit.i, label %if.then.i.i.i.i.i
-
-if.then.i.i.i.i.i:                                ; preds = %_ZN2cv3PtrI9CvCaptureEC1ERKS2_.exit.i.i
-  %refCount.i.i.i.i.i.i = getelementptr inbounds %"struct.cv::detail::PtrOwner"* %132, i64 0, i32 1
-  %133 = atomicrmw add i32* %refCount.i.i.i.i.i.i, i32 -1 acq_rel
-  %cmp.i.i.i.i.i.i = icmp eq i32 %133, 1
-  br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %_ZN2cv3PtrI9CvCaptureEaSERKS2_.exit.i
-
-if.then.i.i.i.i.i.i:                              ; preds = %if.then.i.i.i.i.i
-  %134 = bitcast %"struct.cv::detail::PtrOwner"* %132 to void (%"struct.cv::detail::PtrOwner"*)***
-  %vtable.i.i.i.i.i.i = load void (%"struct.cv::detail::PtrOwner"*)*** %134, align 8, !tbaa !12
-  %vfn.i.i.i.i.i.i = getelementptr inbounds void (%"struct.cv::detail::PtrOwner"*)** %vtable.i.i.i.i.i.i, i64 2
-  %135 = load void (%"struct.cv::detail::PtrOwner"*)** %vfn.i.i.i.i.i.i, align 8
-  call void %135(%"struct.cv::detail::PtrOwner"* %132) #1
-  br label %_ZN2cv3PtrI9CvCaptureEaSERKS2_.exit.i
-
-_ZN2cv3PtrI9CvCaptureEaSERKS2_.exit.i:            ; preds = %if.then.i.i.i.i.i.i, %if.then.i.i.i.i.i, %_ZN2cv3PtrI9CvCaptureEC1ERKS2_.exit.i.i
-  %owner2.i.i.i6.i = getelementptr inbounds %"class.cv::VideoCapture"* %ref.tmp67, i64 0, i32 2, i32 0
-  %136 = load %"struct.cv::detail::PtrOwner"** %owner2.i.i.i6.i, align 8, !tbaa !5
-  %stored3.i.i.i7.i = getelementptr inbounds %"class.cv::VideoCapture"* %ref.tmp67, i64 0, i32 2, i32 1
-  %137 = load %"class.cv::IVideoCapture"** %stored3.i.i.i7.i, align 8, !tbaa !5
-  %tobool.i.i.i8.i = icmp eq %"struct.cv::detail::PtrOwner"* %136, null
-  br i1 %tobool.i.i.i8.i, label %_ZN2cv3PtrINS_13IVideoCaptureEEC1ERKS2_.exit.i.i, label %if.then.i.i.i10.i
-
-if.then.i.i.i10.i:                                ; preds = %_ZN2cv3PtrI9CvCaptureEaSERKS2_.exit.i
-  %refCount.i.i.i.i9.i = getelementptr inbounds %"struct.cv::detail::PtrOwner"* %136, i64 0, i32 1
-  %138 = atomicrmw add i32* %refCount.i.i.i.i9.i, i32 1 acq_rel
-  br label %_ZN2cv3PtrINS_13IVideoCaptureEEC1ERKS2_.exit.i.i
-
-_ZN2cv3PtrINS_13IVideoCaptureEEC1ERKS2_.exit.i.i: ; preds = %if.then.i.i.i10.i, %_ZN2cv3PtrI9CvCaptureEaSERKS2_.exit.i
-  %owner2.i.i11.i = getelementptr inbounds %"class.cv::VideoCapture"* %cap, i64 0, i32 2, i32 0
-  %139 = load %"struct.cv::detail::PtrOwner"** %owner2.i.i11.i, align 8, !tbaa !5
-  store %"struct.cv::detail::PtrOwner"* %136, %"struct.cv::detail::PtrOwner"** %owner2.i.i11.i, align 8, !tbaa !5
-  %stored3.i.i12.i = getelementptr inbounds %"class.cv::VideoCapture"* %cap, i64 0, i32 2, i32 1
-  store %"class.cv::IVideoCapture"* %137, %"class.cv::IVideoCapture"** %stored3.i.i12.i, align 8, !tbaa !5
-  %tobool.i.i.i.i13.i = icmp eq %"struct.cv::detail::PtrOwner"* %139, null
-  br i1 %tobool.i.i.i.i13.i, label %_ZN2cv12VideoCaptureaSERKS0_.exit, label %if.then.i.i.i.i16.i
-
-if.then.i.i.i.i16.i:                              ; preds = %_ZN2cv3PtrINS_13IVideoCaptureEEC1ERKS2_.exit.i.i
-  %refCount.i.i.i.i.i14.i = getelementptr inbounds %"struct.cv::detail::PtrOwner"* %139, i64 0, i32 1
-  %140 = atomicrmw add i32* %refCount.i.i.i.i.i14.i, i32 -1 acq_rel
-  %cmp.i.i.i.i.i15.i = icmp eq i32 %140, 1
-  br i1 %cmp.i.i.i.i.i15.i, label %if.then.i.i.i.i.i19.i, label %_ZN2cv12VideoCaptureaSERKS0_.exit
-
-if.then.i.i.i.i.i19.i:                            ; preds = %if.then.i.i.i.i16.i
-  %141 = bitcast %"struct.cv::detail::PtrOwner"* %139 to void (%"struct.cv::detail::PtrOwner"*)***
-  %vtable.i.i.i.i.i17.i = load void (%"struct.cv::detail::PtrOwner"*)*** %141, align 8, !tbaa !12
-  %vfn.i.i.i.i.i18.i = getelementptr inbounds void (%"struct.cv::detail::PtrOwner"*)** %vtable.i.i.i.i.i17.i, i64 2
-  %142 = load void (%"struct.cv::detail::PtrOwner"*)** %vfn.i.i.i.i.i18.i, align 8
-  call void %142(%"struct.cv::detail::PtrOwner"* %139) #1
-  br label %_ZN2cv12VideoCaptureaSERKS0_.exit
-
-_ZN2cv12VideoCaptureaSERKS0_.exit:                ; preds = %if.then.i.i.i.i.i19.i, %if.then.i.i.i.i16.i, %_ZN2cv3PtrINS_13IVideoCaptureEEC1ERKS2_.exit.i.i
-  call void @_ZN2cv12VideoCaptureD1Ev(%"class.cv::VideoCapture"* %ref.tmp67) #1
-  call void @_ZN2cv6String10deallocateEv(%"class.cv::String"* %ref.tmp68) #1
-  %143 = bitcast %"class.cv::_InputArray"* %ref.tmp.i314 to i8*
-  call void @llvm.lifetime.start(i64 24, i8* %143) #1
-  %144 = bitcast %"class.cv::_OutputArray"* %ref.tmp2.i315 to i8*
-  call void @llvm.lifetime.start(i64 24, i8* %144) #1
-  %145 = bitcast %"class.cv::_OutputArray"* %ref.tmp3.i316 to i8*
-  call void @llvm.lifetime.start(i64 24, i8* %145) #1
-  %vtable.i317 = load %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)*** %47, align 8, !tbaa !12
-  %vfn.i318 = getelementptr inbounds %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)** %vtable.i317, i64 8
-  %146 = load %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)** %vfn.i318, align 8
-  %call.i319 = call %"class.cv::VideoCapture"* %146(%"class.cv::VideoCapture"* %cap, %"class.cv::Mat"* %src) #1
-  %147 = load i32* %flags.i.i, align 8, !tbaa !9
-  %shr2.i.i321 = and i32 %147, 4088
-  %cmp.i322 = icmp eq i32 %shr2.i.i321, 16
-  br i1 %cmp.i322, label %if.then.i331, label %_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit335
-
-if.then.i331:                                     ; preds = %_ZN2cv12VideoCaptureaSERKS0_.exit
-  %width.i.i.i.i.i325 = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp.i314, i64 0, i32 2, i32 0
-  store i32 0, i32* %width.i.i.i.i.i325, align 8, !tbaa !9
-  %height.i.i.i.i.i326 = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp.i314, i64 0, i32 2, i32 1
-  store i32 0, i32* %height.i.i.i.i.i326, align 4, !tbaa !9
-  %flags.i.i.i.i327 = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp.i314, i64 0, i32 0
-  store i32 16842752, i32* %flags.i.i.i.i327, align 8, !tbaa !9
-  %obj.i.i.i.i328 = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp.i314, i64 0, i32 1
-  store i8* %32, i8** %obj.i.i.i.i328, align 8, !tbaa !5
-  %flags.i.i.i.i9.i329 = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp2.i315, i64 0, i32 0, i32 0
-  %obj.i.i.i.i10.i330 = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp2.i315, i64 0, i32 0, i32 1
-  %148 = bitcast i8** %obj.i.i.i.i10.i330 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %148, i8 0, i64 16, i32 8, i1 false) #1
-  store i32 33619968, i32* %flags.i.i.i.i9.i329, align 8, !tbaa !9
-  store i8* %32, i8** %obj.i.i.i.i10.i330, align 8, !tbaa !5
-  call void @_ZN2cv8cvtColorERKNS_11_InputArrayERKNS_12_OutputArrayEii(%"class.cv::_InputArray"* %ref.tmp.i314, %"class.cv::_OutputArray"* %ref.tmp2.i315, i32 6, i32 0) #1
-  br label %_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit335
-
-_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit335: ; preds = %if.then.i331, %_ZN2cv12VideoCaptureaSERKS0_.exit
-  %flags.i.i.i.i.i333 = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp3.i316, i64 0, i32 0, i32 0
-  %obj.i.i.i.i.i334 = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp3.i316, i64 0, i32 0, i32 1
-  %149 = bitcast i8** %obj.i.i.i.i.i334 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %149, i8 0, i64 16, i32 8, i1 false) #1
-  store i32 33619968, i32* %flags.i.i.i.i.i333, align 8, !tbaa !9
-  store i8* %32, i8** %obj.i.i.i.i.i334, align 8, !tbaa !5
-  call void @_ZNK2cv3Mat9convertToERKNS_12_OutputArrayEidd(%"class.cv::Mat"* %src, %"class.cv::_OutputArray"* %ref.tmp3.i316, i32 5, double 0x3F70101010101010, double 0.000000e+00) #1
-  call void @llvm.lifetime.end(i64 24, i8* %143) #1
-  call void @llvm.lifetime.end(i64 24, i8* %144) #1
-  call void @llvm.lifetime.end(i64 24, i8* %145) #1
-  %data = getelementptr inbounds %"class.cv::Mat"* %src, i64 0, i32 4
-  %150 = load i8** %data, align 8, !tbaa !5
-  %151 = bitcast i8* %150 to float*
-  %data73 = getelementptr inbounds %"class.cv::Mat"* %Gx, i64 0, i32 4
-  %152 = load i8** %data73, align 8, !tbaa !5
-  %153 = bitcast i8* %152 to float*
-  %data74 = getelementptr inbounds %"class.cv::Mat"* %Gy, i64 0, i32 4
-  %154 = load i8** %data74, align 8, !tbaa !5
-  %155 = bitcast i8* %154 to float*
-  %data75 = getelementptr inbounds %"class.cv::Mat"* %G, i64 0, i32 4
-  %156 = load i8** %data75, align 8, !tbaa !5
-  %157 = bitcast i8* %156 to float*
-  %158 = load i32** %p.i.i.i.i, align 8, !tbaa !5
-  %159 = load i32* %158, align 4, !tbaa !9
-  %arrayidx.i338 = getelementptr inbounds i32* %158, i64 1
-  %160 = load i32* %arrayidx.i338, align 4, !tbaa !9
-  %I1.i = bitcast i8* %call66 to float**
-  store float* %151, float** %I1.i, align 1, !tbaa !5
-  %bytesI2.i = getelementptr inbounds i8* %call66, i64 8
-  %161 = bitcast i8* %bytesI2.i to i64*
-  store i64 %mul65, i64* %161, align 1, !tbaa !10
-  %Sx3.i = getelementptr inbounds i8* %call66, i64 16
-  %162 = bitcast i8* %Sx3.i to float**
-  store float* %107, float** %162, align 1, !tbaa !5
-  %bytesSx4.i = getelementptr inbounds i8* %call66, i64 24
-  %163 = bitcast i8* %bytesSx4.i to i64*
-  store i64 36, i64* %163, align 1, !tbaa !10
-  %Sy5.i = getelementptr inbounds i8* %call66, i64 32
-  %164 = bitcast i8* %Sy5.i to float**
-  store float* %114, float** %164, align 1, !tbaa !5
-  %bytesSy6.i = getelementptr inbounds i8* %call66, i64 40
-  %165 = bitcast i8* %bytesSy6.i to i64*
-  store i64 36, i64* %165, align 1, !tbaa !10
-  %Gx7.i = getelementptr inbounds i8* %call66, i64 48
-  %166 = bitcast i8* %Gx7.i to float**
-  store float* %153, float** %166, align 1, !tbaa !5
-  %bytesGx8.i = getelementptr inbounds i8* %call66, i64 56
-  %167 = bitcast i8* %bytesGx8.i to i64*
-  store i64 %mul65, i64* %167, align 1, !tbaa !10
-  %Gy9.i = getelementptr inbounds i8* %call66, i64 64
-  %168 = bitcast i8* %Gy9.i to float**
-  store float* %155, float** %168, align 1, !tbaa !5
-  %bytesGy10.i = getelementptr inbounds i8* %call66, i64 72
-  %169 = bitcast i8* %bytesGy10.i to i64*
-  store i64 %mul65, i64* %169, align 1, !tbaa !10
-  %G11.i = getelementptr inbounds i8* %call66, i64 80
-  %170 = bitcast i8* %G11.i to float**
-  store float* %157, float** %170, align 1, !tbaa !5
-  %bytesG12.i = getelementptr inbounds i8* %call66, i64 88
-  %171 = bitcast i8* %bytesG12.i to i64*
-  store i64 %mul65, i64* %171, align 1, !tbaa !10
-  %m13.i = getelementptr inbounds i8* %call66, i64 96
-  %172 = bitcast i8* %m13.i to i32*
-  store i32 %159, i32* %172, align 1, !tbaa !9
-  %n14.i = getelementptr inbounds i8* %call66, i64 100
-  %173 = bitcast i8* %n14.i to i32*
-  store i32 %160, i32* %173, align 1, !tbaa !9
-  %174 = load i32* %158, align 4, !tbaa !9
-  %175 = load i32* %arrayidx.i338, align 4, !tbaa !9
-  %mul84 = mul nsw i32 %175, %174
-  %rem126 = and i32 %mul84, 255
-  %cmp85 = icmp eq i32 %rem126, 0
-  br i1 %cmp85, label %cond.end88, label %cond.false87
-
-cond.false87:                                     ; preds = %_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit335
-  call void @__assert_fail(i8* getelementptr inbounds ([39 x i8]* @.str15, i64 0, i64 0), i8* getelementptr inbounds ([21 x i8]* @.str14, i64 0, i64 0), i32 494, i8* getelementptr inbounds ([23 x i8]* @__PRETTY_FUNCTION__.main, i64 0, i64 0)) #9
-  unreachable
-
-cond.end88:                                       ; preds = %_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit335
-  call void @llvm_hpvm_track_mem(i8* %150, i64 %mul65) #1
-  call void @llvm_hpvm_track_mem(i8* %106, i64 36) #1
-  call void @llvm_hpvm_track_mem(i8* %113, i64 36) #1
-  %176 = load i8** %data73, align 8, !tbaa !5
-  call void @llvm_hpvm_track_mem(i8* %176, i64 %mul65) #1
-  %177 = load i8** %data74, align 8, !tbaa !5
-  call void @llvm_hpvm_track_mem(i8* %177, i64 %mul65) #1
-  %178 = load i8** %data75, align 8, !tbaa !5
-  call void @llvm_hpvm_track_mem(i8* %178, i64 %mul65) #1
-  %179 = load i8** %data, align 8, !tbaa !5
-  %180 = bitcast i8* %179 to float*
-  store float* %180, float** %I1.i, align 1, !tbaa !5
-  call void @pb_SwitchToTimer(%struct.pb_TimerSet* %timers, i32 21) #1
-  br label %for.body
-
-for.body:                                         ; preds = %for.body, %cond.end88
-  %j.0480 = phi i32 [ 0, %cond.end88 ], [ %inc, %for.body ]
-  %graphID = call i8* @llvm.hpvm.launch(i8* bitcast (%emptyStruct.24 (float*, i64, float*, i64, float*, i64, float*, i64, float*, i64, float*, i64, i32, i32)* @Gradient to i8*), i8* %call66, i1 false)
-  call void @llvm.hpvm.wait(i8* %graphID)
-  %inc = add i32 %j.0480, 1
-  %exitcond = icmp eq i32 %inc, 2994
-  br i1 %exitcond, label %for.end, label %for.body
-
-for.end:                                          ; preds = %for.body
-  call void @pb_SwitchToTimer(%struct.pb_TimerSet* %timers, i32 0) #1
-  %181 = load i8** %data75, align 8, !tbaa !5
-  call void @llvm_hpvm_request_mem(i8* %181, i64 %mul65) #1
-  %182 = load i8** %data, align 8, !tbaa !5
-  call void @llvm_hpvm_untrack_mem(i8* %182) #1
-  call void @llvm_hpvm_untrack_mem(i8* %106) #1
-  call void @llvm_hpvm_untrack_mem(i8* %113) #1
-  %183 = load i8** %data73, align 8, !tbaa !5
-  call void @llvm_hpvm_untrack_mem(i8* %183) #1
-  %184 = load i8** %data74, align 8, !tbaa !5
-  call void @llvm_hpvm_untrack_mem(i8* %184) #1
-  %185 = load i8** %data75, align 8, !tbaa !5
-  call void @llvm_hpvm_untrack_mem(i8* %185) #1
-  call void @pb_PrintTimerSet(%struct.pb_TimerSet* %timers) #1
-  call void @llvm.hpvm.cleanup()
-  call void @pb_FreeParameters(%struct.pb_Parameters* %call3) #1
-  %u.i.i.i342 = getelementptr inbounds %"class.cv::Mat"* %out, i64 0, i32 9
-  %186 = load %"struct.cv::UMatData"** %u.i.i.i342, align 8, !tbaa !5
-  %tobool.i.i.i343 = icmp eq %"struct.cv::UMatData"* %186, null
-  br i1 %tobool.i.i.i343, label %if.end.i.i.i351, label %land.lhs.true.i.i.i346
-
-land.lhs.true.i.i.i346:                           ; preds = %for.end
-  %refcount.i.i.i344 = getelementptr inbounds %"struct.cv::UMatData"* %186, i64 0, i32 3
-  %187 = atomicrmw add i32* %refcount.i.i.i344, i32 -1 acq_rel
-  %cmp.i.i.i345 = icmp eq i32 %187, 1
-  br i1 %cmp.i.i.i345, label %if.then.i.i.i347, label %if.end.i.i.i351
-
-if.then.i.i.i347:                                 ; preds = %land.lhs.true.i.i.i346
-  call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %out) #1
-  br label %if.end.i.i.i351
-
-if.end.i.i.i351:                                  ; preds = %if.then.i.i.i347, %land.lhs.true.i.i.i346, %for.end
-  store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i342, align 8, !tbaa !5
-  %data.i.i.i348 = getelementptr inbounds %"class.cv::Mat"* %out, i64 0, i32 4
-  %188 = bitcast i8** %data.i.i.i348 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %188, i8 0, i64 32, i32 8, i1 false) #1
-  %189 = load i32* %dims.i.i304, align 4, !tbaa !9
-  %cmp47.i.i.i350 = icmp sgt i32 %189, 0
-  br i1 %cmp47.i.i.i350, label %for.body.lr.ph.i.i.i353, label %_ZN2cv3Mat7releaseEv.exit.i.i362
-
-for.body.lr.ph.i.i.i353:                          ; preds = %if.end.i.i.i351
-  %190 = load i32** %p.i.i.i.i306, align 8, !tbaa !5
-  br label %for.body.i.i.i358
-
-for.body.i.i.i358:                                ; preds = %for.body.i.i.i358, %for.body.lr.ph.i.i.i353
-  %indvars.iv.i.i.i354 = phi i64 [ 0, %for.body.lr.ph.i.i.i353 ], [ %indvars.iv.next.i.i.i356, %for.body.i.i.i358 ]
-  %arrayidx.i.i.i355 = getelementptr inbounds i32* %190, i64 %indvars.iv.i.i.i354
-  store i32 0, i32* %arrayidx.i.i.i355, align 4, !tbaa !9
-  %indvars.iv.next.i.i.i356 = add i64 %indvars.iv.i.i.i354, 1
-  %191 = load i32* %dims.i.i304, align 4, !tbaa !9
-  %192 = trunc i64 %indvars.iv.next.i.i.i356 to i32
-  %cmp4.i.i.i357 = icmp slt i32 %192, %191
-  br i1 %cmp4.i.i.i357, label %for.body.i.i.i358, label %_ZN2cv3Mat7releaseEv.exit.i.i362
-
-_ZN2cv3Mat7releaseEv.exit.i.i362:                 ; preds = %for.body.i.i.i358, %if.end.i.i.i351
-  %193 = load i64** %p.i.i3.i.i308, align 8, !tbaa !5
-  %cmp.i.i361 = icmp eq i64* %193, %arraydecay.i.i.i.i307
-  br i1 %cmp.i.i361, label %_ZN2cv3MatD1Ev.exit364, label %if.then.i.i363
-
-if.then.i.i363:                                   ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i362
-  %194 = bitcast i64* %193 to i8*
-  call void @_ZN2cv8fastFreeEPv(i8* %194) #1
-  br label %_ZN2cv3MatD1Ev.exit364
-
-_ZN2cv3MatD1Ev.exit364:                           ; preds = %if.then.i.i363, %_ZN2cv3Mat7releaseEv.exit.i.i362
-  call void @llvm.lifetime.end(i64 96, i8* %123) #1
-  %u.i.i.i365 = getelementptr inbounds %"class.cv::Mat"* %in, i64 0, i32 9
-  %195 = load %"struct.cv::UMatData"** %u.i.i.i365, align 8, !tbaa !5
-  %tobool.i.i.i366 = icmp eq %"struct.cv::UMatData"* %195, null
-  br i1 %tobool.i.i.i366, label %if.end.i.i.i374, label %land.lhs.true.i.i.i369
-
-land.lhs.true.i.i.i369:                           ; preds = %_ZN2cv3MatD1Ev.exit364
-  %refcount.i.i.i367 = getelementptr inbounds %"struct.cv::UMatData"* %195, i64 0, i32 3
-  %196 = atomicrmw add i32* %refcount.i.i.i367, i32 -1 acq_rel
-  %cmp.i.i.i368 = icmp eq i32 %196, 1
-  br i1 %cmp.i.i.i368, label %if.then.i.i.i370, label %if.end.i.i.i374
-
-if.then.i.i.i370:                                 ; preds = %land.lhs.true.i.i.i369
-  call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %in) #1
-  br label %if.end.i.i.i374
-
-if.end.i.i.i374:                                  ; preds = %if.then.i.i.i370, %land.lhs.true.i.i.i369, %_ZN2cv3MatD1Ev.exit364
-  store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i365, align 8, !tbaa !5
-  %data.i.i.i371 = getelementptr inbounds %"class.cv::Mat"* %in, i64 0, i32 4
-  %197 = bitcast i8** %data.i.i.i371 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %197, i8 0, i64 32, i32 8, i1 false) #1
-  %198 = load i32* %dims.i.i298, align 4, !tbaa !9
-  %cmp47.i.i.i373 = icmp sgt i32 %198, 0
-  br i1 %cmp47.i.i.i373, label %for.body.lr.ph.i.i.i376, label %_ZN2cv3Mat7releaseEv.exit.i.i385
-
-for.body.lr.ph.i.i.i376:                          ; preds = %if.end.i.i.i374
-  %199 = load i32** %p.i.i.i.i300, align 8, !tbaa !5
-  br label %for.body.i.i.i381
-
-for.body.i.i.i381:                                ; preds = %for.body.i.i.i381, %for.body.lr.ph.i.i.i376
-  %indvars.iv.i.i.i377 = phi i64 [ 0, %for.body.lr.ph.i.i.i376 ], [ %indvars.iv.next.i.i.i379, %for.body.i.i.i381 ]
-  %arrayidx.i.i.i378 = getelementptr inbounds i32* %199, i64 %indvars.iv.i.i.i377
-  store i32 0, i32* %arrayidx.i.i.i378, align 4, !tbaa !9
-  %indvars.iv.next.i.i.i379 = add i64 %indvars.iv.i.i.i377, 1
-  %200 = load i32* %dims.i.i298, align 4, !tbaa !9
-  %201 = trunc i64 %indvars.iv.next.i.i.i379 to i32
-  %cmp4.i.i.i380 = icmp slt i32 %201, %200
-  br i1 %cmp4.i.i.i380, label %for.body.i.i.i381, label %_ZN2cv3Mat7releaseEv.exit.i.i385
-
-_ZN2cv3Mat7releaseEv.exit.i.i385:                 ; preds = %for.body.i.i.i381, %if.end.i.i.i374
-  %202 = load i64** %p.i.i3.i.i302, align 8, !tbaa !5
-  %cmp.i.i384 = icmp eq i64* %202, %arraydecay.i.i.i.i301
-  br i1 %cmp.i.i384, label %_ZN2cv3MatD1Ev.exit387, label %if.then.i.i386
-
-if.then.i.i386:                                   ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i385
-  %203 = bitcast i64* %202 to i8*
-  call void @_ZN2cv8fastFreeEPv(i8* %203) #1
-  br label %_ZN2cv3MatD1Ev.exit387
-
-_ZN2cv3MatD1Ev.exit387:                           ; preds = %if.then.i.i386, %_ZN2cv3Mat7releaseEv.exit.i.i385
-  call void @llvm.lifetime.end(i64 96, i8* %120) #1
-  call void @llvm.lifetime.end(i64 36, i8* %113) #1
-  call void @llvm.lifetime.end(i64 36, i8* %106) #1
-  %u.i.i.i388 = getelementptr inbounds %"class.cv::Mat"* %G, i64 0, i32 9
-  %204 = load %"struct.cv::UMatData"** %u.i.i.i388, align 8, !tbaa !5
-  %tobool.i.i.i389 = icmp eq %"struct.cv::UMatData"* %204, null
-  br i1 %tobool.i.i.i389, label %if.end.i.i.i397, label %land.lhs.true.i.i.i392
-
-land.lhs.true.i.i.i392:                           ; preds = %_ZN2cv3MatD1Ev.exit387
-  %refcount.i.i.i390 = getelementptr inbounds %"struct.cv::UMatData"* %204, i64 0, i32 3
-  %205 = atomicrmw add i32* %refcount.i.i.i390, i32 -1 acq_rel
-  %cmp.i.i.i391 = icmp eq i32 %205, 1
-  br i1 %cmp.i.i.i391, label %if.then.i.i.i393, label %if.end.i.i.i397
-
-if.then.i.i.i393:                                 ; preds = %land.lhs.true.i.i.i392
-  call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %G) #1
-  br label %if.end.i.i.i397
-
-if.end.i.i.i397:                                  ; preds = %if.then.i.i.i393, %land.lhs.true.i.i.i392, %_ZN2cv3MatD1Ev.exit387
-  store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i388, align 8, !tbaa !5
-  %206 = bitcast i8** %data75 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %206, i8 0, i64 32, i32 8, i1 false) #1
-  %207 = load i32* %dims.i.i182, align 4, !tbaa !9
-  %cmp47.i.i.i396 = icmp sgt i32 %207, 0
-  br i1 %cmp47.i.i.i396, label %for.body.lr.ph.i.i.i399, label %_ZN2cv3Mat7releaseEv.exit.i.i408
-
-for.body.lr.ph.i.i.i399:                          ; preds = %if.end.i.i.i397
-  %208 = load i32** %p.i.i.i.i184, align 8, !tbaa !5
-  br label %for.body.i.i.i404
-
-for.body.i.i.i404:                                ; preds = %for.body.i.i.i404, %for.body.lr.ph.i.i.i399
-  %indvars.iv.i.i.i400 = phi i64 [ 0, %for.body.lr.ph.i.i.i399 ], [ %indvars.iv.next.i.i.i402, %for.body.i.i.i404 ]
-  %arrayidx.i.i.i401 = getelementptr inbounds i32* %208, i64 %indvars.iv.i.i.i400
-  store i32 0, i32* %arrayidx.i.i.i401, align 4, !tbaa !9
-  %indvars.iv.next.i.i.i402 = add i64 %indvars.iv.i.i.i400, 1
-  %209 = load i32* %dims.i.i182, align 4, !tbaa !9
-  %210 = trunc i64 %indvars.iv.next.i.i.i402 to i32
-  %cmp4.i.i.i403 = icmp slt i32 %210, %209
-  br i1 %cmp4.i.i.i403, label %for.body.i.i.i404, label %_ZN2cv3Mat7releaseEv.exit.i.i408
-
-_ZN2cv3Mat7releaseEv.exit.i.i408:                 ; preds = %for.body.i.i.i404, %if.end.i.i.i397
-  %211 = load i64** %p.i.i3.i.i186, align 8, !tbaa !5
-  %cmp.i.i407 = icmp eq i64* %211, %arraydecay.i.i.i.i185
-  br i1 %cmp.i.i407, label %_ZN2cv3MatD1Ev.exit410, label %if.then.i.i409
-
-if.then.i.i409:                                   ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i408
-  %212 = bitcast i64* %211 to i8*
-  call void @_ZN2cv8fastFreeEPv(i8* %212) #1
-  br label %_ZN2cv3MatD1Ev.exit410
-
-_ZN2cv3MatD1Ev.exit410:                           ; preds = %if.then.i.i409, %_ZN2cv3Mat7releaseEv.exit.i.i408
-  call void @llvm.lifetime.end(i64 96, i8* %41) #1
-  %u.i.i.i411 = getelementptr inbounds %"class.cv::Mat"* %Gy, i64 0, i32 9
-  %213 = load %"struct.cv::UMatData"** %u.i.i.i411, align 8, !tbaa !5
-  %tobool.i.i.i412 = icmp eq %"struct.cv::UMatData"* %213, null
-  br i1 %tobool.i.i.i412, label %if.end.i.i.i420, label %land.lhs.true.i.i.i415
-
-land.lhs.true.i.i.i415:                           ; preds = %_ZN2cv3MatD1Ev.exit410
-  %refcount.i.i.i413 = getelementptr inbounds %"struct.cv::UMatData"* %213, i64 0, i32 3
-  %214 = atomicrmw add i32* %refcount.i.i.i413, i32 -1 acq_rel
-  %cmp.i.i.i414 = icmp eq i32 %214, 1
-  br i1 %cmp.i.i.i414, label %if.then.i.i.i416, label %if.end.i.i.i420
-
-if.then.i.i.i416:                                 ; preds = %land.lhs.true.i.i.i415
-  call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %Gy) #1
-  br label %if.end.i.i.i420
-
-if.end.i.i.i420:                                  ; preds = %if.then.i.i.i416, %land.lhs.true.i.i.i415, %_ZN2cv3MatD1Ev.exit410
-  store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i411, align 8, !tbaa !5
-  %215 = bitcast i8** %data74 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %215, i8 0, i64 32, i32 8, i1 false) #1
-  %216 = load i32* %dims.i.i176, align 4, !tbaa !9
-  %cmp47.i.i.i419 = icmp sgt i32 %216, 0
-  br i1 %cmp47.i.i.i419, label %for.body.lr.ph.i.i.i422, label %_ZN2cv3Mat7releaseEv.exit.i.i431
-
-for.body.lr.ph.i.i.i422:                          ; preds = %if.end.i.i.i420
-  %217 = load i32** %p.i.i.i.i178, align 8, !tbaa !5
-  br label %for.body.i.i.i427
-
-for.body.i.i.i427:                                ; preds = %for.body.i.i.i427, %for.body.lr.ph.i.i.i422
-  %indvars.iv.i.i.i423 = phi i64 [ 0, %for.body.lr.ph.i.i.i422 ], [ %indvars.iv.next.i.i.i425, %for.body.i.i.i427 ]
-  %arrayidx.i.i.i424 = getelementptr inbounds i32* %217, i64 %indvars.iv.i.i.i423
-  store i32 0, i32* %arrayidx.i.i.i424, align 4, !tbaa !9
-  %indvars.iv.next.i.i.i425 = add i64 %indvars.iv.i.i.i423, 1
-  %218 = load i32* %dims.i.i176, align 4, !tbaa !9
-  %219 = trunc i64 %indvars.iv.next.i.i.i425 to i32
-  %cmp4.i.i.i426 = icmp slt i32 %219, %218
-  br i1 %cmp4.i.i.i426, label %for.body.i.i.i427, label %_ZN2cv3Mat7releaseEv.exit.i.i431
-
-_ZN2cv3Mat7releaseEv.exit.i.i431:                 ; preds = %for.body.i.i.i427, %if.end.i.i.i420
-  %220 = load i64** %p.i.i3.i.i180, align 8, !tbaa !5
-  %cmp.i.i430 = icmp eq i64* %220, %arraydecay.i.i.i.i179
-  br i1 %cmp.i.i430, label %_ZN2cv3MatD1Ev.exit433, label %if.then.i.i432
-
-if.then.i.i432:                                   ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i431
-  %221 = bitcast i64* %220 to i8*
-  call void @_ZN2cv8fastFreeEPv(i8* %221) #1
-  br label %_ZN2cv3MatD1Ev.exit433
-
-_ZN2cv3MatD1Ev.exit433:                           ; preds = %if.then.i.i432, %_ZN2cv3Mat7releaseEv.exit.i.i431
-  call void @llvm.lifetime.end(i64 96, i8* %38) #1
-  %u.i.i.i434 = getelementptr inbounds %"class.cv::Mat"* %Gx, i64 0, i32 9
-  %222 = load %"struct.cv::UMatData"** %u.i.i.i434, align 8, !tbaa !5
-  %tobool.i.i.i435 = icmp eq %"struct.cv::UMatData"* %222, null
-  br i1 %tobool.i.i.i435, label %if.end.i.i.i443, label %land.lhs.true.i.i.i438
-
-land.lhs.true.i.i.i438:                           ; preds = %_ZN2cv3MatD1Ev.exit433
-  %refcount.i.i.i436 = getelementptr inbounds %"struct.cv::UMatData"* %222, i64 0, i32 3
-  %223 = atomicrmw add i32* %refcount.i.i.i436, i32 -1 acq_rel
-  %cmp.i.i.i437 = icmp eq i32 %223, 1
-  br i1 %cmp.i.i.i437, label %if.then.i.i.i439, label %if.end.i.i.i443
-
-if.then.i.i.i439:                                 ; preds = %land.lhs.true.i.i.i438
-  call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %Gx) #1
-  br label %if.end.i.i.i443
-
-if.end.i.i.i443:                                  ; preds = %if.then.i.i.i439, %land.lhs.true.i.i.i438, %_ZN2cv3MatD1Ev.exit433
-  store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i434, align 8, !tbaa !5
-  %224 = bitcast i8** %data73 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %224, i8 0, i64 32, i32 8, i1 false) #1
-  %225 = load i32* %dims.i.i170, align 4, !tbaa !9
-  %cmp47.i.i.i442 = icmp sgt i32 %225, 0
-  br i1 %cmp47.i.i.i442, label %for.body.lr.ph.i.i.i445, label %_ZN2cv3Mat7releaseEv.exit.i.i454
-
-for.body.lr.ph.i.i.i445:                          ; preds = %if.end.i.i.i443
-  %226 = load i32** %p.i.i.i.i172, align 8, !tbaa !5
-  br label %for.body.i.i.i450
-
-for.body.i.i.i450:                                ; preds = %for.body.i.i.i450, %for.body.lr.ph.i.i.i445
-  %indvars.iv.i.i.i446 = phi i64 [ 0, %for.body.lr.ph.i.i.i445 ], [ %indvars.iv.next.i.i.i448, %for.body.i.i.i450 ]
-  %arrayidx.i.i.i447 = getelementptr inbounds i32* %226, i64 %indvars.iv.i.i.i446
-  store i32 0, i32* %arrayidx.i.i.i447, align 4, !tbaa !9
-  %indvars.iv.next.i.i.i448 = add i64 %indvars.iv.i.i.i446, 1
-  %227 = load i32* %dims.i.i170, align 4, !tbaa !9
-  %228 = trunc i64 %indvars.iv.next.i.i.i448 to i32
-  %cmp4.i.i.i449 = icmp slt i32 %228, %227
-  br i1 %cmp4.i.i.i449, label %for.body.i.i.i450, label %_ZN2cv3Mat7releaseEv.exit.i.i454
-
-_ZN2cv3Mat7releaseEv.exit.i.i454:                 ; preds = %for.body.i.i.i450, %if.end.i.i.i443
-  %229 = load i64** %p.i.i3.i.i174, align 8, !tbaa !5
-  %cmp.i.i453 = icmp eq i64* %229, %arraydecay.i.i.i.i173
-  br i1 %cmp.i.i453, label %_ZN2cv3MatD1Ev.exit456, label %if.then.i.i455
-
-if.then.i.i455:                                   ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i454
-  %230 = bitcast i64* %229 to i8*
-  call void @_ZN2cv8fastFreeEPv(i8* %230) #1
-  br label %_ZN2cv3MatD1Ev.exit456
-
-_ZN2cv3MatD1Ev.exit456:                           ; preds = %if.then.i.i455, %_ZN2cv3Mat7releaseEv.exit.i.i454
-  call void @llvm.lifetime.end(i64 96, i8* %35) #1
-  %u.i.i.i457 = getelementptr inbounds %"class.cv::Mat"* %src, i64 0, i32 9
-  %231 = load %"struct.cv::UMatData"** %u.i.i.i457, align 8, !tbaa !5
-  %tobool.i.i.i458 = icmp eq %"struct.cv::UMatData"* %231, null
-  br i1 %tobool.i.i.i458, label %if.end.i.i.i466, label %land.lhs.true.i.i.i461
-
-land.lhs.true.i.i.i461:                           ; preds = %_ZN2cv3MatD1Ev.exit456
-  %refcount.i.i.i459 = getelementptr inbounds %"struct.cv::UMatData"* %231, i64 0, i32 3
-  %232 = atomicrmw add i32* %refcount.i.i.i459, i32 -1 acq_rel
-  %cmp.i.i.i460 = icmp eq i32 %232, 1
-  br i1 %cmp.i.i.i460, label %if.then.i.i.i462, label %if.end.i.i.i466
-
-if.then.i.i.i462:                                 ; preds = %land.lhs.true.i.i.i461
-  call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %src) #1
-  br label %if.end.i.i.i466
-
-if.end.i.i.i466:                                  ; preds = %if.then.i.i.i462, %land.lhs.true.i.i.i461, %_ZN2cv3MatD1Ev.exit456
-  store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i457, align 8, !tbaa !5
-  %233 = bitcast i8** %data to i8*
-  call void @llvm.memset.p0i8.i64(i8* %233, i8 0, i64 32, i32 8, i1 false) #1
-  %234 = load i32* %dims.i.i, align 4, !tbaa !9
-  %cmp47.i.i.i465 = icmp sgt i32 %234, 0
-  br i1 %cmp47.i.i.i465, label %for.body.lr.ph.i.i.i468, label %_ZN2cv3Mat7releaseEv.exit.i.i477
-
-for.body.lr.ph.i.i.i468:                          ; preds = %if.end.i.i.i466
-  %235 = load i32** %p.i.i.i.i, align 8, !tbaa !5
-  br label %for.body.i.i.i473
-
-for.body.i.i.i473:                                ; preds = %for.body.i.i.i473, %for.body.lr.ph.i.i.i468
-  %indvars.iv.i.i.i469 = phi i64 [ 0, %for.body.lr.ph.i.i.i468 ], [ %indvars.iv.next.i.i.i471, %for.body.i.i.i473 ]
-  %arrayidx.i.i.i470 = getelementptr inbounds i32* %235, i64 %indvars.iv.i.i.i469
-  store i32 0, i32* %arrayidx.i.i.i470, align 4, !tbaa !9
-  %indvars.iv.next.i.i.i471 = add i64 %indvars.iv.i.i.i469, 1
-  %236 = load i32* %dims.i.i, align 4, !tbaa !9
-  %237 = trunc i64 %indvars.iv.next.i.i.i471 to i32
-  %cmp4.i.i.i472 = icmp slt i32 %237, %236
-  br i1 %cmp4.i.i.i472, label %for.body.i.i.i473, label %_ZN2cv3Mat7releaseEv.exit.i.i477
-
-_ZN2cv3Mat7releaseEv.exit.i.i477:                 ; preds = %for.body.i.i.i473, %if.end.i.i.i466
-  %238 = load i64** %p.i.i3.i.i, align 8, !tbaa !5
-  %cmp.i.i476 = icmp eq i64* %238, %arraydecay.i.i.i.i
-  br i1 %cmp.i.i476, label %cleanup, label %if.then.i.i478
-
-if.then.i.i478:                                   ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i477
-  %239 = bitcast i64* %238 to i8*
-  call void @_ZN2cv8fastFreeEPv(i8* %239) #1
-  br label %cleanup
-
-cleanup:                                          ; preds = %if.then.i.i478, %_ZN2cv3Mat7releaseEv.exit.i.i477, %if.then16
-  %retval.0 = phi i32 [ -1, %if.then16 ], [ 0, %_ZN2cv3Mat7releaseEv.exit.i.i477 ], [ 0, %if.then.i.i478 ]
-  call void @_ZN2cv12VideoCaptureD1Ev(%"class.cv::VideoCapture"* %cap) #1
-  call void @llvm.lifetime.end(i64 40, i8* %12) #1
-  call void @llvm.lifetime.end(i64 800, i8* %0) #1
-  ret i32 %retval.0
-}
-
-; Function Attrs: nounwind
-declare void @llvm.lifetime.start(i64, i8* nocapture) #1
-
-declare %struct.pb_Parameters* @pb_ReadParameters(i32*, i8**) #0
-
-; Function Attrs: noreturn nounwind
-declare void @exit(i32) #3
-
-declare void @_ZN2cv12VideoCaptureC1ERKNS_6StringE(%"class.cv::VideoCapture"*, %"class.cv::String"*) #0
-
-declare zeroext i1 @_ZNK2cv12VideoCapture8isOpenedEv(%"class.cv::VideoCapture"*) #0
-
-declare double @_ZNK2cv12VideoCapture3getEi(%"class.cv::VideoCapture"*, i32) #0
-
-declare %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"*, i32) #0
-
-declare void @_ZN2cv11namedWindowERKNS_6StringEi(%"class.cv::String"*, i32) #0
-
-declare void @_ZN2cv10moveWindowERKNS_6StringEii(%"class.cv::String"*, i32, i32) #0
-
-; Function Attrs: inlinehint nounwind uwtable
-define linkonce_odr %"class.cv::Mat"* @_ZN2cv3MataSERKS0_(%"class.cv::Mat"* %this, %"class.cv::Mat"* %m) #4 align 2 {
-entry:
-  %cmp = icmp eq %"class.cv::Mat"* %this, %m
-  br i1 %cmp, label %if.end27, label %if.then
-
-if.then:                                          ; preds = %entry
-  %u = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 9
-  %0 = load %"struct.cv::UMatData"** %u, align 8, !tbaa !5
-  %tobool = icmp eq %"struct.cv::UMatData"* %0, null
-  br i1 %tobool, label %if.end, label %if.then2
-
-if.then2:                                         ; preds = %if.then
-  %refcount = getelementptr inbounds %"struct.cv::UMatData"* %0, i64 0, i32 3
-  %1 = atomicrmw add i32* %refcount, i32 1 acq_rel
-  br label %if.end
-
-if.end:                                           ; preds = %if.then2, %if.then
-  %u.i = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 9
-  %2 = load %"struct.cv::UMatData"** %u.i, align 8, !tbaa !5
-  %tobool.i = icmp eq %"struct.cv::UMatData"* %2, null
-  br i1 %tobool.i, label %if.end.i, label %land.lhs.true.i
-
-land.lhs.true.i:                                  ; preds = %if.end
-  %refcount.i = getelementptr inbounds %"struct.cv::UMatData"* %2, i64 0, i32 3
-  %3 = atomicrmw add i32* %refcount.i, i32 -1 acq_rel
-  %cmp.i = icmp eq i32 %3, 1
-  br i1 %cmp.i, label %if.then.i, label %if.end.i
-
-if.then.i:                                        ; preds = %land.lhs.true.i
-  tail call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %this) #1
-  br label %if.end.i
-
-if.end.i:                                         ; preds = %if.then.i, %land.lhs.true.i, %if.end
-  store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i, align 8, !tbaa !5
-  %data.i = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 4
-  %dims.i = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 1
-  %4 = bitcast i8** %data.i to i8*
-  tail call void @llvm.memset.p0i8.i64(i8* %4, i8 0, i64 32, i32 8, i1 false) #1
-  %5 = load i32* %dims.i, align 4, !tbaa !9
-  %cmp47.i = icmp sgt i32 %5, 0
-  br i1 %cmp47.i, label %for.body.lr.ph.i, label %_ZN2cv3Mat7releaseEv.exit.thread
-
-_ZN2cv3Mat7releaseEv.exit.thread:                 ; preds = %if.end.i
-  %flags50 = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 0
-  %6 = load i32* %flags50, align 4, !tbaa !9
-  %flags451 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 0
-  store i32 %6, i32* %flags451, align 4, !tbaa !9
-  br label %land.lhs.true
-
-for.body.lr.ph.i:                                 ; preds = %if.end.i
-  %p.i = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 10, i32 0
-  %7 = load i32** %p.i, align 8, !tbaa !5
-  br label %for.body.i
-
-for.body.i:                                       ; preds = %for.body.i, %for.body.lr.ph.i
-  %indvars.iv.i = phi i64 [ 0, %for.body.lr.ph.i ], [ %indvars.iv.next.i, %for.body.i ]
-  %arrayidx.i = getelementptr inbounds i32* %7, i64 %indvars.iv.i
-  store i32 0, i32* %arrayidx.i, align 4, !tbaa !9
-  %indvars.iv.next.i = add i64 %indvars.iv.i, 1
-  %8 = load i32* %dims.i, align 4, !tbaa !9
-  %9 = trunc i64 %indvars.iv.next.i to i32
-  %cmp4.i = icmp slt i32 %9, %8
-  br i1 %cmp4.i, label %for.body.i, label %_ZN2cv3Mat7releaseEv.exit
-
-_ZN2cv3Mat7releaseEv.exit:                        ; preds = %for.body.i
-  %flags = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 0
-  %10 = load i32* %flags, align 4, !tbaa !9
-  %flags4 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 0
-  store i32 %10, i32* %flags4, align 4, !tbaa !9
-  %cmp5 = icmp slt i32 %8, 3
-  br i1 %cmp5, label %land.lhs.true, label %if.else
-
-land.lhs.true:                                    ; preds = %_ZN2cv3Mat7releaseEv.exit, %_ZN2cv3Mat7releaseEv.exit.thread
-  %dims6 = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 1
-  %11 = load i32* %dims6, align 4, !tbaa !9
-  %cmp7 = icmp slt i32 %11, 3
-  br i1 %cmp7, label %if.then8, label %if.else
-
-if.then8:                                         ; preds = %land.lhs.true
-  store i32 %11, i32* %dims.i, align 4, !tbaa !9
-  %rows = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 2
-  %12 = load i32* %rows, align 4, !tbaa !9
-  %rows11 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 2
-  store i32 %12, i32* %rows11, align 4, !tbaa !9
-  %cols = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 3
-  %13 = load i32* %cols, align 4, !tbaa !9
-  %cols12 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 3
-  store i32 %13, i32* %cols12, align 4, !tbaa !9
-  %p.i44 = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 11, i32 0
-  %14 = load i64** %p.i44, align 8, !tbaa !5
-  %15 = load i64* %14, align 8, !tbaa !10
-  %p.i49 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 11, i32 0
-  %16 = load i64** %p.i49, align 8, !tbaa !5
-  store i64 %15, i64* %16, align 8, !tbaa !10
-  %arrayidx.i48 = getelementptr inbounds i64* %14, i64 1
-  %17 = load i64* %arrayidx.i48, align 8, !tbaa !10
-  %arrayidx.i46 = getelementptr inbounds i64* %16, i64 1
-  store i64 %17, i64* %arrayidx.i46, align 8, !tbaa !10
-  br label %if.end19
-
-if.else:                                          ; preds = %land.lhs.true, %_ZN2cv3Mat7releaseEv.exit
-  tail call void @_ZN2cv3Mat8copySizeERKS0_(%"class.cv::Mat"* %this, %"class.cv::Mat"* %m) #1
-  br label %if.end19
-
-if.end19:                                         ; preds = %if.else, %if.then8
-  %data = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 4
-  %18 = load i8** %data, align 8, !tbaa !5
-  store i8* %18, i8** %data.i, align 8, !tbaa !5
-  %datastart = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 5
-  %19 = load i8** %datastart, align 8, !tbaa !5
-  %datastart21 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 5
-  store i8* %19, i8** %datastart21, align 8, !tbaa !5
-  %dataend = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 6
-  %20 = load i8** %dataend, align 8, !tbaa !5
-  %dataend22 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 6
-  store i8* %20, i8** %dataend22, align 8, !tbaa !5
-  %datalimit = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 7
-  %21 = load i8** %datalimit, align 8, !tbaa !5
-  %datalimit23 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 7
-  store i8* %21, i8** %datalimit23, align 8, !tbaa !5
-  %allocator = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 8
-  %22 = load %"class.cv::MatAllocator"** %allocator, align 8, !tbaa !5
-  %allocator24 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 8
-  store %"class.cv::MatAllocator"* %22, %"class.cv::MatAllocator"** %allocator24, align 8, !tbaa !5
-  %23 = load %"struct.cv::UMatData"** %u, align 8, !tbaa !5
-  store %"struct.cv::UMatData"* %23, %"struct.cv::UMatData"** %u.i, align 8, !tbaa !5
-  br label %if.end27
-
-if.end27:                                         ; preds = %if.end19, %entry
-  ret %"class.cv::Mat"* %this
-}
-
-; Function Attrs: noreturn nounwind
-declare void @__assert_fail(i8*, i8*, i32, i8*) #3
-
-declare void @pb_InitializeTimerSet(%struct.pb_TimerSet*) #0
-
-; Function Attrs: nounwind
-declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) #1
-
-; Function Attrs: nounwind
-declare noalias i8* @malloc(i64) #5
-
-declare void @_ZN2cv12VideoCaptureD1Ev(%"class.cv::VideoCapture"*) #0
-
-declare void @llvm_hpvm_track_mem(i8*, i64) #0
-
-declare void @pb_SwitchToTimer(%struct.pb_TimerSet*, i32) #0
-
-declare void @llvm_hpvm_request_mem(i8*, i64) #0
-
-declare void @llvm_hpvm_untrack_mem(i8*) #0
-
-declare void @pb_PrintTimerSet(%struct.pb_TimerSet*) #0
-
-declare void @pb_FreeParameters(%struct.pb_Parameters*) #0
-
-; Function Attrs: nounwind
-declare void @llvm.lifetime.end(i64, i8* nocapture) #1
-
-declare %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"*, i8*, i64) #0
-
-; Function Attrs: nounwind readonly
-declare i64 @strlen(i8* nocapture) #6
-
-declare void @_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate(%"class.std::basic_ios"*, i32) #0
-
-; Function Attrs: nounwind
-declare void @_ZNSs4_Rep10_M_destroyERKSaIcE(%"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep"*, %"class.std::allocator"*) #5
-
-declare extern_weak i32 @pthread_cancel(i64) #0
-
-declare void @_ZN2cv8fastFreeEPv(i8*) #0
-
-declare void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"*) #0
-
-declare void @_ZN2cv3Mat6createEiPKii(%"class.cv::Mat"*, i32, i32*, i32) #0
-
-declare void @_ZN2cv3Mat8copySizeERKS0_(%"class.cv::Mat"*, %"class.cv::Mat"*) #0
-
-declare i8* @_ZN2cv6String8allocateEm(%"class.cv::String"*, i64) #0
-
-; Function Attrs: nounwind
-declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32, i1) #1
-
-declare void @_ZN2cv6String10deallocateEv(%"class.cv::String"*) #0
-
-; Function Attrs: nounwind
-define internal void @_GLOBAL__I_a() #1 section ".text.startup" {
-entry:
-  %ref.tmp.i1 = alloca %"class.std::allocator", align 1
-  %ref.tmp.i = alloca %"class.std::allocator", align 1
-  call void @_ZNSt8ios_base4InitC1Ev(%"class.std::ios_base::Init"* @_ZStL8__ioinit) #1
-  %0 = call i32 @__cxa_atexit(void (i8*)* bitcast (void (%"class.std::ios_base::Init"*)* @_ZNSt8ios_base4InitD1Ev to void (i8*)*), i8* getelementptr inbounds (%"class.std::ios_base::Init"* @_ZStL8__ioinit, i64 0, i32 0), i8* @__dso_handle) #1
-  %1 = getelementptr inbounds %"class.std::allocator"* %ref.tmp.i, i64 0, i32 0
-  call void @llvm.lifetime.start(i64 1, i8* %1) #1
-  call void @_ZNSsC1EPKcRKSaIcE(%"class.std::basic_string"* @input_window, i8* getelementptr inbounds ([27 x i8]* @.str, i64 0, i64 0), %"class.std::allocator"* %ref.tmp.i) #1
-  %2 = call i32 @__cxa_atexit(void (i8*)* bitcast (void (%"class.std::basic_string"*)* @_ZNSsD1Ev to void (i8*)*), i8* bitcast (%"class.std::basic_string"* @input_window to i8*), i8* @__dso_handle) #1
-  call void @llvm.lifetime.end(i64 1, i8* %1) #1
-  %3 = getelementptr inbounds %"class.std::allocator"* %ref.tmp.i1, i64 0, i32 0
-  call void @llvm.lifetime.start(i64 1, i8* %3) #1
-  call void @_ZNSsC1EPKcRKSaIcE(%"class.std::basic_string"* @output_window, i8* getelementptr inbounds ([28 x i8]* @.str3, i64 0, i64 0), %"class.std::allocator"* %ref.tmp.i1) #1
-  %4 = call i32 @__cxa_atexit(void (i8*)* bitcast (void (%"class.std::basic_string"*)* @_ZNSsD1Ev to void (i8*)*), i8* bitcast (%"class.std::basic_string"* @output_window to i8*), i8* @__dso_handle) #1
-  call void @llvm.lifetime.end(i64 1, i8* %3) #1
-  ret void
-}
-
-; Function Attrs: nounwind
-declare i64 @fwrite(i8* nocapture, i64, i64, %struct._IO_FILE* nocapture) #1
-
-; Function Attrs: nounwind readnone
-declare i8* @llvm.hpvm.getNode() #7
-
-; Function Attrs: nounwind readnone
-declare i32 @llvm.hpvm.getNodeInstanceID.x(i8*) #7
-
-; Function Attrs: nounwind readnone
-declare i32 @llvm.hpvm.getNodeInstanceID.y(i8*) #7
-
-; Function Attrs: nounwind
-declare i8* @llvm.hpvm.createNode2D(i8*, i32, i32) #1
-
-; Function Attrs: nounwind
-declare void @llvm.hpvm.bind.input(i8*, i32, i32, i1) #1
-
-; Function Attrs: nounwind
-declare void @llvm.hpvm.bind.output(i8*, i32, i32, i1) #1
-
-; Function Attrs: nounwind readonly
-declare float @llvm.sqrt.f32(float) #8
-
-; Function Attrs: nounwind
-declare i8* @llvm.hpvm.createNode(i8*) #1
-
-; Function Attrs: nounwind
-declare i8* @llvm.hpvm.createEdge(i8*, i8*, i1, i32, i32, i1) #1
-
-; Function Attrs: nounwind
-declare void @llvm.hpvm.init() #1
-
-; Function Attrs: nounwind
-declare i8* @llvm.hpvm.launch(i8*, i8*, i1) #1
-
-; Function Attrs: nounwind
-declare void @llvm.hpvm.wait(i8*) #1
-
-; Function Attrs: nounwind
-declare void @llvm.hpvm.cleanup() #1
-
-; Function Attrs: nounwind
-define %horizontal.vertical.ty @horizontal_vertical(float* nocapture in %n1_Is, i64 %n1_bytesIs, float* nocapture in %n1_Sx, i64 %n1_bytesSx, float* nocapture out %n1_Gx, i64 %n1_bytesGx, i32 %n1_m, i32 %n1_n, float* nocapture in %n2_Is, i64 %n2_bytesIs, float* nocapture in %n2_Sy, i64 %n2_bytesSy, float* nocapture out %n2_Gy, i64 %n2_bytesGy, i32 %n2_m, i32 %n2_n) #1 {
-entry:
-  %call3.i = tail call i8* @llvm.hpvm.getNode() #1
-  %call14.i = tail call i32 @llvm.hpvm.getNodeInstanceID.x(i8* %call3.i) #1
-  %call25.i = tail call i32 @llvm.hpvm.getNodeInstanceID.y(i8* %call3.i) #1
-  %mul.i = mul nsw i32 %call25.i, %n1_n
-  %add.i = add nsw i32 %mul.i, %call14.i
-  %cmp.i = icmp slt i32 %call14.i, %n1_n
-  %cmp3.i = icmp slt i32 %call25.i, %n1_m
-  %or.cond.i = and i1 %cmp.i, %cmp3.i
-  br i1 %or.cond.i, label %for.cond.preheader.i, label %horizontal.exit
-
-for.cond.preheader.i:                             ; preds = %entry
-  %sub34.i = add i32 %n1_n, -1
-  %sub38.i = sub i32 %sub34.i, %call14.i
-  %sub.i = add nsw i32 %n1_m, -1
-  %mul19.i = mul nsw i32 %sub.i, %n1_n
-  %add20.i = add nsw i32 %call14.i, %mul19.i
-  %0 = zext i32 %call25.i to i64
-  %loadOffset.0.us.us.i = add i32 %call14.i, -1
-  %cmp28.us.us.i = icmp slt i32 %loadOffset.0.us.us.i, 0
-  %cmp28.us.us.1.i = icmp slt i32 %call14.i, 0
-  %1 = add i32 %call14.i, 1
-  %cmp28.us.us.2.i = icmp slt i32 %1, 0
-  %cmp35.us.us.2.i = icmp sgt i32 %1, %sub34.i
-  %sub40.us.us.2.loadOffset.0.us.us.2.i = select i1 %cmp35.us.us.2.i, i32 %sub34.i, i32 %1
-  %phitmp162.i = sext i32 %sub40.us.us.2.loadOffset.0.us.us.2.i to i64
-  %cmp35.us.us.1.i = icmp sgt i32 %call14.i, %sub34.i
-  %sub40.us.us.1.call1.i = select i1 %cmp35.us.us.1.i, i32 %sub34.i, i32 %call14.i
-  %phitmp161.i = sext i32 %sub40.us.us.1.call1.i to i64
-  %cmp35.us.us.i = icmp sgt i32 %loadOffset.0.us.us.i, %sub34.i
-  %sub40.us.us.loadOffset.0.us.us.i = select i1 %cmp35.us.us.i, i32 %sub34.i, i32 %loadOffset.0.us.us.i
-  %phitmp160.i = sext i32 %sub40.us.us.loadOffset.0.us.us.i to i64
-  %loadOffset.0.us108.2.i = add nsw i32 %add20.i, 1
-  %sub40.us116.2.i = add i32 %sub34.i, %mul19.i
-  %sub40.us116.2.loadOffset.0.us108.2.i = select i1 %cmp35.us.us.2.i, i32 %sub40.us116.2.i, i32 %loadOffset.0.us108.2.i
-  %sub40.us116.1.add20.i = select i1 %cmp35.us.us.1.i, i32 %sub40.us116.2.i, i32 %add20.i
-  %loadOffset.0.us108.i = add nsw i32 %add20.i, -1
-  %sub40.us116.loadOffset.0.us108.i = select i1 %cmp35.us.us.i, i32 %sub40.us116.2.i, i32 %loadOffset.0.us108.i
-  %sub40.1.i = select i1 %cmp35.us.us.1.i, i32 %sub38.i, i32 0
-  br label %for.cond5.preheader.i
-
-for.cond5.preheader.i:                            ; preds = %for.inc51.i, %for.cond.preheader.i
-  %indvars.iv152.i = phi i64 [ -1, %for.cond.preheader.i ], [ %indvars.iv.next153.i, %for.inc51.i ]
-  %Val.0130.i = phi float [ 0.000000e+00, %for.cond.preheader.i ], [ %Val.1.lcssa.i, %for.inc51.i ]
-  %2 = add nsw i64 %indvars.iv152.i, %0
-  %3 = trunc i64 %2 to i32
-  %cmp12.i = icmp slt i32 %3, 0
-  %4 = mul i64 %indvars.iv152.i, 3
-  %5 = add i64 %4, 4
-  %6 = trunc i64 %indvars.iv152.i to i32
-  %mul8.i = mul nsw i32 %6, %n1_n
-  %add9.i = add nsw i32 %mul8.i, %add.i
-  br i1 %cmp12.i, label %for.cond5.preheader.split.us.i, label %for.cond5.preheader.for.cond5.preheader.split_crit_edge.i
-
-for.cond5.preheader.for.cond5.preheader.split_crit_edge.i: ; preds = %for.cond5.preheader.i
-  %cmp16.i = icmp sgt i32 %3, %sub.i
-  br i1 %cmp16.i, label %if.end26.us106.i, label %if.end26.i
-
-for.cond5.preheader.split.us.i:                   ; preds = %for.cond5.preheader.i
-  %.phitmp160.i = select i1 %cmp28.us.us.i, i64 0, i64 %phitmp160.i
-  %arrayidx.us.us.i = getelementptr inbounds float* %n1_Is, i64 %.phitmp160.i
-  %7 = load float* %arrayidx.us.us.i, align 4, !tbaa !11
-  %8 = add i64 %4, 3
-  %arrayidx48.us.us.i = getelementptr inbounds float* %n1_Sx, i64 %8
-  %9 = load float* %arrayidx48.us.us.i, align 4, !tbaa !11
-  %mul49.us.us.i = fmul fast float %7, %9
-  %add50.us.us.i = fadd fast float %Val.0130.i, %mul49.us.us.i
-  %loadOffset.1.us.us.1.i = select i1 %cmp28.us.us.1.i, i64 0, i64 %phitmp161.i
-  %arrayidx.us.us.1.i = getelementptr inbounds float* %n1_Is, i64 %loadOffset.1.us.us.1.i
-  %10 = load float* %arrayidx.us.us.1.i, align 4, !tbaa !11
-  %arrayidx48.us.us.1.i = getelementptr inbounds float* %n1_Sx, i64 %5
-  %11 = load float* %arrayidx48.us.us.1.i, align 4, !tbaa !11
-  %mul49.us.us.1.i = fmul fast float %10, %11
-  %add50.us.us.1.i = fadd fast float %add50.us.us.i, %mul49.us.us.1.i
-  %.phitmp162.i75 = select i1 %cmp28.us.us.2.i, i64 0, i64 %phitmp162.i
-  %arrayidx.us.us.2.i = getelementptr inbounds float* %n1_Is, i64 %.phitmp162.i75
-  %12 = load float* %arrayidx.us.us.2.i, align 4, !tbaa !11
-  %13 = add i64 %4, 5
-  %arrayidx48.us.us.2.i = getelementptr inbounds float* %n1_Sx, i64 %13
-  %14 = load float* %arrayidx48.us.us.2.i, align 4, !tbaa !11
-  %mul49.us.us.2.i = fmul fast float %12, %14
-  %add50.us.us.2.i = fadd fast float %add50.us.us.1.i, %mul49.us.us.2.i
-  br label %for.inc51.i
-
-if.end26.us106.i:                                 ; preds = %for.cond5.preheader.for.cond5.preheader.split_crit_edge.i
-  %mul19.i.sub40.us116.loadOffset.0.us108.i = select i1 %cmp28.us.us.i, i32 %mul19.i, i32 %sub40.us116.loadOffset.0.us108.i
-  %idxprom.us121.i = sext i32 %mul19.i.sub40.us116.loadOffset.0.us108.i to i64
-  %arrayidx.us122.i = getelementptr inbounds float* %n1_Is, i64 %idxprom.us121.i
-  %15 = load float* %arrayidx.us122.i, align 4, !tbaa !11
-  %16 = add i64 %4, 3
-  %arrayidx48.us125.i = getelementptr inbounds float* %n1_Sx, i64 %16
-  %17 = load float* %arrayidx48.us125.i, align 4, !tbaa !11
-  %mul49.us126.i = fmul fast float %15, %17
-  %add50.us127.i = fadd fast float %Val.0130.i, %mul49.us126.i
-  %loadOffset.1.us120.1.i = select i1 %cmp28.us.us.1.i, i32 %mul19.i, i32 %sub40.us116.1.add20.i
-  %idxprom.us121.1.i = sext i32 %loadOffset.1.us120.1.i to i64
-  %arrayidx.us122.1.i = getelementptr inbounds float* %n1_Is, i64 %idxprom.us121.1.i
-  %18 = load float* %arrayidx.us122.1.i, align 4, !tbaa !11
-  %arrayidx48.us125.1.i = getelementptr inbounds float* %n1_Sx, i64 %5
-  %19 = load float* %arrayidx48.us125.1.i, align 4, !tbaa !11
-  %mul49.us126.1.i = fmul fast float %18, %19
-  %add50.us127.1.i = fadd fast float %add50.us127.i, %mul49.us126.1.i
-  %mul19.i.sub40.us116.2.loadOffset.0.us108.2.i = select i1 %cmp28.us.us.2.i, i32 %mul19.i, i32 %sub40.us116.2.loadOffset.0.us108.2.i
-  %idxprom.us121.2.i = sext i32 %mul19.i.sub40.us116.2.loadOffset.0.us108.2.i to i64
-  %arrayidx.us122.2.i = getelementptr inbounds float* %n1_Is, i64 %idxprom.us121.2.i
-  %20 = load float* %arrayidx.us122.2.i, align 4, !tbaa !11
-  %21 = add i64 %4, 5
-  %arrayidx48.us125.2.i = getelementptr inbounds float* %n1_Sx, i64 %21
-  %22 = load float* %arrayidx48.us125.2.i, align 4, !tbaa !11
-  %mul49.us126.2.i = fmul fast float %20, %22
-  %add50.us127.2.i = fadd fast float %add50.us127.1.i, %mul49.us126.2.i
-  br label %for.inc51.i
-
-if.end26.i:                                       ; preds = %for.cond5.preheader.for.cond5.preheader.split_crit_edge.i
-  %loadOffset.0.i = add nsw i32 %add9.i, -1
-  br i1 %cmp28.us.us.i, label %if.then29.i, label %if.else32.i
-
-if.then29.i:                                      ; preds = %if.end26.i
-  %sub31.i = sub nsw i32 %loadOffset.0.i, %loadOffset.0.us.us.i
-  br label %if.end26.1.i
-
-if.else32.i:                                      ; preds = %if.end26.i
-  %sub40.i = add i32 %add9.i, %sub38.i
-  %sub40.loadOffset.0.i = select i1 %cmp35.us.us.i, i32 %sub40.i, i32 %loadOffset.0.i
-  br label %if.end26.1.i
-
-for.inc51.i:                                      ; preds = %for.cond5.preheader.split.us.i, %if.end26.us106.i, %if.end42.2.i
-  %Val.1.lcssa.i = phi float [ %add50.2.i, %if.end42.2.i ], [ %add50.us127.2.i, %if.end26.us106.i ], [ %add50.us.us.2.i, %for.cond5.preheader.split.us.i ]
-  %indvars.iv.next153.i = add i64 %indvars.iv152.i, 1
-  %lftr.wideiv70 = trunc i64 %indvars.iv.next153.i to i32
-  %exitcond71 = icmp eq i32 %lftr.wideiv70, 2
-  br i1 %exitcond71, label %horizontal.exit, label %for.cond5.preheader.i
-
-if.end26.1.i:                                     ; preds = %if.else32.i, %if.then29.i
-  %loadOffset.1.i = phi i32 [ %sub31.i, %if.then29.i ], [ %sub40.loadOffset.0.i, %if.else32.i ]
-  %idxprom.i = sext i32 %loadOffset.1.i to i64
-  %arrayidx.i = getelementptr inbounds float* %n1_Is, i64 %idxprom.i
-  %23 = load float* %arrayidx.i, align 4, !tbaa !11
-  %24 = add i64 %4, 3
-  %arrayidx48.i = getelementptr inbounds float* %n1_Sx, i64 %24
-  %25 = load float* %arrayidx48.i, align 4, !tbaa !11
-  %mul49.i = fmul fast float %23, %25
-  %add50.i = fadd fast float %Val.0130.i, %mul49.i
-  %26 = sub i32 0, %call14.i
-  %loadOffset.1.1.i.p = select i1 %cmp28.us.us.1.i, i32 %26, i32 %sub40.1.i
-  %loadOffset.1.1.i = add i32 %add9.i, %loadOffset.1.1.i.p
-  %idxprom.1.i = sext i32 %loadOffset.1.1.i to i64
-  %arrayidx.1.i = getelementptr inbounds float* %n1_Is, i64 %idxprom.1.i
-  %27 = load float* %arrayidx.1.i, align 4, !tbaa !11
-  %arrayidx48.1.i = getelementptr inbounds float* %n1_Sx, i64 %5
-  %28 = load float* %arrayidx48.1.i, align 4, !tbaa !11
-  %mul49.1.i = fmul fast float %27, %28
-  %add50.1.i = fadd fast float %add50.i, %mul49.1.i
-  %loadOffset.0.2.i = add nsw i32 %add9.i, 1
-  br i1 %cmp28.us.us.2.i, label %if.then29.2.i, label %if.else32.2.i
-
-if.else32.2.i:                                    ; preds = %if.end26.1.i
-  %sub40.2.i = add i32 %add9.i, %sub38.i
-  %sub40.2.loadOffset.0.2.i = select i1 %cmp35.us.us.2.i, i32 %sub40.2.i, i32 %loadOffset.0.2.i
-  br label %if.end42.2.i
-
-if.then29.2.i:                                    ; preds = %if.end26.1.i
-  %sub31.2.i = sub nsw i32 %loadOffset.0.2.i, %1
-  br label %if.end42.2.i
-
-if.end42.2.i:                                     ; preds = %if.then29.2.i, %if.else32.2.i
-  %loadOffset.1.2.i = phi i32 [ %sub31.2.i, %if.then29.2.i ], [ %sub40.2.loadOffset.0.2.i, %if.else32.2.i ]
-  %idxprom.2.i = sext i32 %loadOffset.1.2.i to i64
-  %arrayidx.2.i = getelementptr inbounds float* %n1_Is, i64 %idxprom.2.i
-  %29 = load float* %arrayidx.2.i, align 4, !tbaa !11
-  %30 = add i64 %4, 5
-  %arrayidx48.2.i = getelementptr inbounds float* %n1_Sx, i64 %30
-  %31 = load float* %arrayidx48.2.i, align 4, !tbaa !11
-  %mul49.2.i = fmul fast float %29, %31
-  %add50.2.i = fadd fast float %add50.1.i, %mul49.2.i
-  br label %for.inc51.i
-
-horizontal.exit:                                  ; preds = %for.inc51.i, %entry
-  %Val.2.i = phi float [ 0.000000e+00, %entry ], [ %Val.1.lcssa.i, %for.inc51.i ]
-  %idxprom55.i = sext i32 %add.i to i64
-  %arrayidx56.i = getelementptr inbounds float* %n1_Gx, i64 %idxprom55.i
-  store float %Val.2.i, float* %arrayidx56.i, align 4, !tbaa !11
-  %mul.i4 = mul nsw i32 %call25.i, %n2_n
-  %add.i5 = add nsw i32 %mul.i4, %call14.i
-  %cmp.i6 = icmp slt i32 %call14.i, %n2_n
-  %cmp3.i7 = icmp slt i32 %call25.i, %n2_m
-  %or.cond.i8 = and i1 %cmp.i6, %cmp3.i7
-  br i1 %or.cond.i8, label %for.cond.preheader.i14, label %vertical.exit
-
-for.cond.preheader.i14:                           ; preds = %horizontal.exit
-  %sub34.i9 = add i32 %n2_n, -1
-  %sub38.i10 = sub i32 %sub34.i9, %call14.i
-  %sub.i11 = add nsw i32 %n2_m, -1
-  %mul19.i12 = mul nsw i32 %sub.i11, %n2_n
-  %add20.i13 = add nsw i32 %call14.i, %mul19.i12
-  %32 = zext i32 %call25.i to i64
-  %33 = add i32 %call14.i, -1
-  %cmp28.i21 = icmp slt i32 %33, 0
-  %cmp28.1.i39 = icmp slt i32 %call14.i, 0
-  %34 = add i32 %call14.i, 1
-  %cmp28.2.i53 = icmp slt i32 %34, 0
-  %cmp35.2.i55 = icmp sgt i32 %34, %sub34.i9
-  %cmp35.1.i41 = icmp sgt i32 %call14.i, %sub34.i9
-  %sub40.1.i42 = select i1 %cmp35.1.i41, i32 %sub38.i10, i32 0
-  %cmp35.i25 = icmp sgt i32 %33, %sub34.i9
-  br i1 %cmp28.i21, label %for.cond5.preheader.i19.us, label %for.cond5.preheader.i19
-
-for.cond5.preheader.i19.us:                       ; preds = %for.cond.preheader.i14, %if.end42.2.i67.us
-  %indvars.iv105.i.us = phi i64 [ %indvars.iv.next106.i.us, %if.end42.2.i67.us ], [ -1, %for.cond.preheader.i14 ]
-  %Val.0101.i.us = phi float [ %add50.2.i66.us, %if.end42.2.i67.us ], [ 0.000000e+00, %for.cond.preheader.i14 ]
-  %35 = add nsw i64 %indvars.iv105.i.us, %32
-  %36 = trunc i64 %35 to i32
-  %cmp12.i15.us = icmp slt i32 %36, 0
-  %37 = mul i64 %indvars.iv105.i.us, 3
-  %38 = add i64 %37, 4
-  %39 = trunc i64 %indvars.iv105.i.us to i32
-  %mul8.i16.us = mul nsw i32 %39, %n2_n
-  %add9.i17.us = add nsw i32 %mul8.i16.us, %add.i5
-  %cmp16.i18.us = icmp sgt i32 %36, %sub.i11
-  br i1 %cmp12.i15.us, label %if.end42.i.us, label %if.else.i.us
-
-if.else.i.us:                                     ; preds = %for.cond5.preheader.i19.us
-  %add20.add9.i.us = select i1 %cmp16.i18.us, i32 %add20.i13, i32 %add9.i17.us
-  br label %if.end42.i.us
-
-if.end42.i.us:                                    ; preds = %if.else.i.us, %for.cond5.preheader.i19.us
-  %call1.pn.i.us = phi i32 [ %call14.i, %for.cond5.preheader.i19.us ], [ %add20.add9.i.us, %if.else.i.us ]
-  %loadOffset.0.i20.us = add nsw i32 %call1.pn.i.us, -1
-  %sub31.i23.us = sub nsw i32 %loadOffset.0.i20.us, %33
-  %phitmp68 = sext i32 %sub31.i23.us to i64
-  %arrayidx.i31.us = getelementptr inbounds float* %n2_Is, i64 %phitmp68
-  %40 = load float* %arrayidx.i31.us, align 4, !tbaa !11
-  %41 = add i64 %37, 3
-  %arrayidx48.i32.us = getelementptr inbounds float* %n2_Sy, i64 %41
-  %42 = load float* %arrayidx48.i32.us, align 4, !tbaa !11
-  %mul49.i33.us = fmul fast float %40, %42
-  %add50.i34.us = fadd fast float %Val.0101.i.us, %mul49.i33.us
-  br i1 %cmp12.i15.us, label %if.end26.1.i40.us, label %if.else.1.i.us
-
-if.else.1.i.us:                                   ; preds = %if.end42.i.us
-  %add20.add9111.i.us = select i1 %cmp16.i18.us, i32 %add20.i13, i32 %add9.i17.us
-  br label %if.end26.1.i40.us
-
-if.end26.1.i40.us:                                ; preds = %if.else.1.i.us, %if.end42.i.us
-  %call1.pn.1.i.us = phi i32 [ %call14.i, %if.end42.i.us ], [ %add20.add9111.i.us, %if.else.1.i.us ]
-  %43 = sub i32 0, %call14.i
-  %loadOffset.1.1.i46.us.p = select i1 %cmp28.1.i39, i32 %43, i32 %sub40.1.i42
-  %loadOffset.1.1.i46.us = add i32 %call1.pn.1.i.us, %loadOffset.1.1.i46.us.p
-  %idxprom.1.i47.us = sext i32 %loadOffset.1.1.i46.us to i64
-  %arrayidx.1.i48.us = getelementptr inbounds float* %n2_Is, i64 %idxprom.1.i47.us
-  %44 = load float* %arrayidx.1.i48.us, align 4, !tbaa !11
-  %arrayidx48.1.i49.us = getelementptr inbounds float* %n2_Sy, i64 %38
-  %45 = load float* %arrayidx48.1.i49.us, align 4, !tbaa !11
-  %mul49.1.i50.us = fmul fast float %44, %45
-  %add50.1.i51.us = fadd fast float %add50.i34.us, %mul49.1.i50.us
-  br i1 %cmp12.i15.us, label %if.end26.2.i54.us, label %if.else.2.i.us
-
-if.else.2.i.us:                                   ; preds = %if.end26.1.i40.us
-  %add20.add9112.i.us = select i1 %cmp16.i18.us, i32 %add20.i13, i32 %add9.i17.us
-  br label %if.end26.2.i54.us
-
-if.end26.2.i54.us:                                ; preds = %if.else.2.i.us, %if.end26.1.i40.us
-  %call1.pn.2.i.us = phi i32 [ %call14.i, %if.end26.1.i40.us ], [ %add20.add9112.i.us, %if.else.2.i.us ]
-  %loadOffset.0.2.i52.us = add nsw i32 %call1.pn.2.i.us, 1
-  br i1 %cmp28.2.i53, label %if.then29.2.i60.us, label %if.else32.2.i58.us
-
-if.else32.2.i58.us:                               ; preds = %if.end26.2.i54.us
-  %sub40.2.i56.us = add i32 %call1.pn.2.i.us, %sub38.i10
-  %sub40.2.loadOffset.0.2.i57.us = select i1 %cmp35.2.i55, i32 %sub40.2.i56.us, i32 %loadOffset.0.2.i52.us
-  br label %if.end42.2.i67.us
-
-if.then29.2.i60.us:                               ; preds = %if.end26.2.i54.us
-  %sub31.2.i59.us = sub nsw i32 %loadOffset.0.2.i52.us, %34
-  br label %if.end42.2.i67.us
-
-if.end42.2.i67.us:                                ; preds = %if.then29.2.i60.us, %if.else32.2.i58.us
-  %loadOffset.1.2.i61.us = phi i32 [ %sub31.2.i59.us, %if.then29.2.i60.us ], [ %sub40.2.loadOffset.0.2.i57.us, %if.else32.2.i58.us ]
-  %idxprom.2.i62.us = sext i32 %loadOffset.1.2.i61.us to i64
-  %arrayidx.2.i63.us = getelementptr inbounds float* %n2_Is, i64 %idxprom.2.i62.us
-  %46 = load float* %arrayidx.2.i63.us, align 4, !tbaa !11
-  %47 = add i64 %37, 5
-  %arrayidx48.2.i64.us = getelementptr inbounds float* %n2_Sy, i64 %47
-  %48 = load float* %arrayidx48.2.i64.us, align 4, !tbaa !11
-  %mul49.2.i65.us = fmul fast float %46, %48
-  %add50.2.i66.us = fadd fast float %add50.1.i51.us, %mul49.2.i65.us
-  %indvars.iv.next106.i.us = add i64 %indvars.iv105.i.us, 1
-  %lftr.wideiv72 = trunc i64 %indvars.iv.next106.i.us to i32
-  %exitcond73 = icmp eq i32 %lftr.wideiv72, 2
-  br i1 %exitcond73, label %vertical.exit, label %for.cond5.preheader.i19.us
-
-for.cond5.preheader.i19:                          ; preds = %for.cond.preheader.i14, %if.end42.2.i67
-  %indvars.iv105.i = phi i64 [ %indvars.iv.next106.i, %if.end42.2.i67 ], [ -1, %for.cond.preheader.i14 ]
-  %Val.0101.i = phi float [ %add50.2.i66, %if.end42.2.i67 ], [ 0.000000e+00, %for.cond.preheader.i14 ]
-  %49 = add nsw i64 %indvars.iv105.i, %32
-  %50 = trunc i64 %49 to i32
-  %cmp12.i15 = icmp slt i32 %50, 0
-  %51 = mul i64 %indvars.iv105.i, 3
-  %52 = add i64 %51, 4
-  %53 = trunc i64 %indvars.iv105.i to i32
-  %mul8.i16 = mul nsw i32 %53, %n2_n
-  %add9.i17 = add nsw i32 %mul8.i16, %add.i5
-  %cmp16.i18 = icmp sgt i32 %50, %sub.i11
-  br i1 %cmp12.i15, label %if.end42.i, label %if.else.i
-
-if.else.i:                                        ; preds = %for.cond5.preheader.i19
-  %add20.add9.i = select i1 %cmp16.i18, i32 %add20.i13, i32 %add9.i17
-  br label %if.end42.i
-
-if.end42.i:                                       ; preds = %if.else.i, %for.cond5.preheader.i19
-  %call1.pn.i = phi i32 [ %call14.i, %for.cond5.preheader.i19 ], [ %add20.add9.i, %if.else.i ]
-  %sub40.loadOffset.0.i27.v = select i1 %cmp35.i25, i32 %sub38.i10, i32 -1
-  %sub40.loadOffset.0.i27 = add i32 %call1.pn.i, %sub40.loadOffset.0.i27.v
-  %phitmp = sext i32 %sub40.loadOffset.0.i27 to i64
-  %arrayidx.i31 = getelementptr inbounds float* %n2_Is, i64 %phitmp
-  %54 = load float* %arrayidx.i31, align 4, !tbaa !11
-  %55 = add i64 %51, 3
-  %arrayidx48.i32 = getelementptr inbounds float* %n2_Sy, i64 %55
-  %56 = load float* %arrayidx48.i32, align 4, !tbaa !11
-  %mul49.i33 = fmul fast float %54, %56
-  %add50.i34 = fadd fast float %Val.0101.i, %mul49.i33
-  br i1 %cmp12.i15, label %if.end26.1.i40, label %if.else.1.i
-
-if.else.1.i:                                      ; preds = %if.end42.i
-  %add20.add9111.i = select i1 %cmp16.i18, i32 %add20.i13, i32 %add9.i17
-  br label %if.end26.1.i40
-
-if.end26.1.i40:                                   ; preds = %if.else.1.i, %if.end42.i
-  %call1.pn.1.i = phi i32 [ %call14.i, %if.end42.i ], [ %add20.add9111.i, %if.else.1.i ]
-  %57 = sub i32 0, %call14.i
-  %loadOffset.1.1.i46.p = select i1 %cmp28.1.i39, i32 %57, i32 %sub40.1.i42
-  %loadOffset.1.1.i46 = add i32 %call1.pn.1.i, %loadOffset.1.1.i46.p
-  %idxprom.1.i47 = sext i32 %loadOffset.1.1.i46 to i64
-  %arrayidx.1.i48 = getelementptr inbounds float* %n2_Is, i64 %idxprom.1.i47
-  %58 = load float* %arrayidx.1.i48, align 4, !tbaa !11
-  %arrayidx48.1.i49 = getelementptr inbounds float* %n2_Sy, i64 %52
-  %59 = load float* %arrayidx48.1.i49, align 4, !tbaa !11
-  %mul49.1.i50 = fmul fast float %58, %59
-  %add50.1.i51 = fadd fast float %add50.i34, %mul49.1.i50
-  br i1 %cmp12.i15, label %if.end26.2.i54, label %if.else.2.i
-
-if.else.2.i:                                      ; preds = %if.end26.1.i40
-  %add20.add9112.i = select i1 %cmp16.i18, i32 %add20.i13, i32 %add9.i17
-  br label %if.end26.2.i54
-
-if.end26.2.i54:                                   ; preds = %if.else.2.i, %if.end26.1.i40
-  %call1.pn.2.i = phi i32 [ %call14.i, %if.end26.1.i40 ], [ %add20.add9112.i, %if.else.2.i ]
-  %loadOffset.0.2.i52 = add nsw i32 %call1.pn.2.i, 1
-  br i1 %cmp28.2.i53, label %if.then29.2.i60, label %if.else32.2.i58
-
-if.else32.2.i58:                                  ; preds = %if.end26.2.i54
-  %sub40.2.i56 = add i32 %call1.pn.2.i, %sub38.i10
-  %sub40.2.loadOffset.0.2.i57 = select i1 %cmp35.2.i55, i32 %sub40.2.i56, i32 %loadOffset.0.2.i52
-  br label %if.end42.2.i67
-
-if.then29.2.i60:                                  ; preds = %if.end26.2.i54
-  %sub31.2.i59 = sub nsw i32 %loadOffset.0.2.i52, %34
-  br label %if.end42.2.i67
-
-if.end42.2.i67:                                   ; preds = %if.then29.2.i60, %if.else32.2.i58
-  %loadOffset.1.2.i61 = phi i32 [ %sub31.2.i59, %if.then29.2.i60 ], [ %sub40.2.loadOffset.0.2.i57, %if.else32.2.i58 ]
-  %idxprom.2.i62 = sext i32 %loadOffset.1.2.i61 to i64
-  %arrayidx.2.i63 = getelementptr inbounds float* %n2_Is, i64 %idxprom.2.i62
-  %60 = load float* %arrayidx.2.i63, align 4, !tbaa !11
-  %61 = add i64 %51, 5
-  %arrayidx48.2.i64 = getelementptr inbounds float* %n2_Sy, i64 %61
-  %62 = load float* %arrayidx48.2.i64, align 4, !tbaa !11
-  %mul49.2.i65 = fmul fast float %60, %62
-  %add50.2.i66 = fadd fast float %add50.1.i51, %mul49.2.i65
-  %indvars.iv.next106.i = add i64 %indvars.iv105.i, 1
-  %lftr.wideiv = trunc i64 %indvars.iv.next106.i to i32
-  %exitcond = icmp eq i32 %lftr.wideiv, 2
-  br i1 %exitcond, label %vertical.exit, label %for.cond5.preheader.i19
-
-vertical.exit:                                    ; preds = %if.end42.2.i67.us, %if.end42.2.i67, %horizontal.exit
-  %Val.2.i35 = phi float [ 0.000000e+00, %horizontal.exit ], [ %add50.2.i66.us, %if.end42.2.i67.us ], [ %add50.2.i66, %if.end42.2.i67 ]
-  %idxprom55.i36 = sext i32 %add.i5 to i64
-  %arrayidx56.i37 = getelementptr inbounds float* %n2_Gy, i64 %idxprom55.i36
-  store float %Val.2.i35, float* %arrayidx56.i37, align 4, !tbaa !11
-  %63 = insertvalue %horizontal.vertical.ty undef, i32 %add.i, 0
-  %64 = insertvalue %horizontal.vertical.ty %63, i32 %add.i5, 1
-  ret %horizontal.vertical.ty %64
-}
-
-; Function Attrs: nounwind
-define %WrapperHorizontal.WrapperVertical.ty @WrapperHorizontal_WrapperVertical(float* nocapture in %n1_Is, i64 %n1_bytesIs, float* nocapture in %n1_Sx, i64 %n1_bytesSx, float* nocapture out %n1_Gx, i64 %n1_bytesGx, i32 %n1_m, i32 %n1_n, float* nocapture in %n2_Is, i64 %n2_bytesIs, float* nocapture in %n2_Sy, i64 %n2_bytesSy, float* nocapture out %n2_Gy, i64 %n2_bytesGy, i32 %n2_m, i32 %n2_n) #1 {
-entry:
-  %horizontal_vertical.node = tail call i8* @llvm.hpvm.createNode2D(i8* bitcast (%horizontal.vertical.ty (float*, i64, float*, i64, float*, i64, i32, i32, float*, i64, float*, i64, float*, i64, i32, i32)* @horizontal_vertical to i8*), i32 %n1_m, i32 %n1_n)
-  tail call void @llvm.hpvm.bind.output(i8* %horizontal_vertical.node, i32 0, i32 0, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %horizontal_vertical.node, i32 7, i32 7, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %horizontal_vertical.node, i32 6, i32 6, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %horizontal_vertical.node, i32 5, i32 5, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %horizontal_vertical.node, i32 4, i32 4, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %horizontal_vertical.node, i32 3, i32 3, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %horizontal_vertical.node, i32 2, i32 2, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %horizontal_vertical.node, i32 1, i32 1, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %horizontal_vertical.node, i32 0, i32 0, i1 false)
-  tail call void @llvm.hpvm.bind.output(i8* %horizontal_vertical.node, i32 1, i32 1, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %horizontal_vertical.node, i32 15, i32 15, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %horizontal_vertical.node, i32 14, i32 14, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %horizontal_vertical.node, i32 13, i32 13, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %horizontal_vertical.node, i32 12, i32 12, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %horizontal_vertical.node, i32 11, i32 11, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %horizontal_vertical.node, i32 10, i32 10, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %horizontal_vertical.node, i32 9, i32 9, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %horizontal_vertical.node, i32 8, i32 8, i1 false)
-  ret %WrapperHorizontal.WrapperVertical.ty undef
-}
-
-attributes #0 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "unsafe-fp-math"="true" "use-soft-float"="false" }
-attributes #1 = { nounwind }
-attributes #2 = { nounwind uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "unsafe-fp-math"="true" "use-soft-float"="false" }
-attributes #3 = { noreturn nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "unsafe-fp-math"="true" "use-soft-float"="false" }
-attributes #4 = { inlinehint nounwind uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "unsafe-fp-math"="true" "use-soft-float"="false" }
-attributes #5 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "unsafe-fp-math"="true" "use-soft-float"="false" }
-attributes #6 = { nounwind readonly "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "unsafe-fp-math"="true" "use-soft-float"="false" }
-attributes #7 = { nounwind readnone }
-attributes #8 = { nounwind readonly }
-attributes #9 = { noreturn nounwind }
-
-!hpvm_hint_gpu = !{!0, !1}
-!hpvm_hint_cpu = !{!2, !3, !4}
-!hpvm_hint_spir = !{}
-
-!0 = metadata !{%emptyStruct (float*, i64, float*, i64, float*, i64, i32, i32, i32, i32)* @squareRoot}
-!1 = metadata !{%horizontal.vertical.ty (float*, i64, float*, i64, float*, i64, i32, i32, float*, i64, float*, i64, float*, i64, i32, i32)* @horizontal_vertical}
-!2 = metadata !{%emptyStruct.23 (float*, i64, float*, i64, float*, i64, i32, i32, i32, i32)* @WrapperSquareRoot}
-!3 = metadata !{%emptyStruct.24 (float*, i64, float*, i64, float*, i64, float*, i64, float*, i64, float*, i64, i32, i32)* @Gradient}
-!4 = metadata !{%WrapperHorizontal.WrapperVertical.ty (float*, i64, float*, i64, float*, i64, i32, i32, float*, i64, float*, i64, float*, i64, i32, i32)* @WrapperHorizontal_WrapperVertical}
-!5 = metadata !{metadata !"any pointer", metadata !6}
-!6 = metadata !{metadata !"omnipotent char", metadata !7}
-!7 = metadata !{metadata !"Simple C/C++ TBAA"}
-!8 = metadata !{metadata !"branch_weights", i32 64, i32 4}
-!9 = metadata !{metadata !"int", metadata !6}
-!10 = metadata !{metadata !"long", metadata !6}
-!11 = metadata !{metadata !"float", metadata !6}
-!12 = metadata !{metadata !"vtable pointer", metadata !7}
-!13 = metadata !{metadata !"_ZTSSt12_Ios_Iostate", metadata !6}
diff --git a/hpvm/test/pipeline/laplacian.hpvm.merged.experiments.notimer.ll b/hpvm/test/pipeline/laplacian.hpvm.merged.experiments.notimer.ll
deleted file mode 100644
index aa4a0d19a0ec80910b8d82b03de018ad41470a22..0000000000000000000000000000000000000000
--- a/hpvm/test/pipeline/laplacian.hpvm.merged.experiments.notimer.ll
+++ /dev/null
@@ -1,2123 +0,0 @@
-; ModuleID = 'build/Laplacian_default/main.hpvm.ll'
-target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
-target triple = "x86_64-unknown-linux-gnu"
-
-%"class.std::ios_base::Init" = type { i8 }
-%"class.std::basic_string" = type { %"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider" }
-%"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider" = type { i8* }
-%"class.std::basic_ostream" = type { i32 (...)**, %"class.std::basic_ios" }
-%"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::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 }
-%"class.std::basic_streambuf" = type { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, %"class.std::locale" }
-%"class.std::ctype" = type { %"class.std::locale::facet", %struct.__locale_struct*, i8, i32*, i32*, i16*, i8, [256 x i8], [256 x i8], i8 }
-%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" }
-%"class.std::num_get" = type { %"class.std::locale::facet" }
-%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 }
-%"class.std::allocator" = type { i8 }
-%"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep" = type { %"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep_base" }
-%"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep_base" = type { i64, i64, i32 }
-%struct.InStruct = type <{ float*, i64, float*, i64, float*, i64, float*, i64, float*, i64, i32, i32 }>
-%emptyStruct = type <{}>
-%emptyStruct.23 = type <{}>
-%emptyStruct.24 = type <{}>
-%"class.cv::VideoCapture" = type { i32 (...)**, %"struct.cv::Ptr", %"struct.cv::Ptr.0" }
-%"struct.cv::Ptr" = type { %"struct.cv::detail::PtrOwner"*, %struct.CvCapture* }
-%"struct.cv::detail::PtrOwner" = type { i32 (...)**, i32 }
-%struct.CvCapture = type opaque
-%"struct.cv::Ptr.0" = type { %"struct.cv::detail::PtrOwner"*, %"class.cv::IVideoCapture"* }
-%"class.cv::IVideoCapture" = type opaque
-%"class.cv::Mat" = type { i32, i32, i32, i32, i8*, i8*, i8*, i8*, %"class.cv::MatAllocator"*, %"struct.cv::UMatData"*, %"struct.cv::MatSize", %"struct.cv::MatStep" }
-%"class.cv::MatAllocator" = type { i32 (...)** }
-%"struct.cv::UMatData" = type { %"class.cv::MatAllocator"*, %"class.cv::MatAllocator"*, i32, i32, i8*, i8*, i64, i32, i8*, i8*, i32 }
-%"struct.cv::MatSize" = type { i32* }
-%"struct.cv::MatStep" = type { i64*, [2 x i64] }
-%"class.cv::_InputArray" = type { i32, i8*, %"class.cv::Size_" }
-%"class.cv::Size_" = type { i32, i32 }
-%"class.cv::_OutputArray" = type { %"class.cv::_InputArray" }
-%struct.pb_TimerSet = type { i32, %struct.pb_async_time_marker_list*, i64, i64, [24 x %struct.pb_Timer], [24 x %struct.pb_SubTimerList*] }
-%struct.pb_async_time_marker_list = type { i8*, i32, i8*, %struct.pb_async_time_marker_list* }
-%struct.pb_Timer = type { i32, i64, i64 }
-%struct.pb_SubTimerList = type { %struct.pb_SubTimer*, %struct.pb_SubTimer* }
-%struct.pb_SubTimer = type { i8*, %struct.pb_Timer, %struct.pb_SubTimer* }
-%"class.cv::String" = type { i8*, i64 }
-%struct.pb_Parameters = type { i8*, i8** }
-%dilate.erode.ty = type <{ i32, i32 }>
-%WrapperDilate.WrapperErode.ty = type <{ i32, i32 }>
-
-@_ZStL8__ioinit = internal global %"class.std::ios_base::Init" zeroinitializer, align 1
-@__dso_handle = external unnamed_addr global i8
-@input_window = global %"class.std::basic_string" zeroinitializer, align 8
-@.str = private unnamed_addr constant [27 x i8] c"GPU Pipeline - Input Video\00", align 1
-@output_window = global %"class.std::basic_string" zeroinitializer, align 8
-@.str3 = private unnamed_addr constant [28 x i8] c"GPU Pipeline - Edge Mapping\00", align 1
-@_ZSt4cout = external global %"class.std::basic_ostream"
-@.str4 = private unnamed_addr constant [13 x i8] c"Using OpenCV\00", align 1
-@.str5 = private unnamed_addr constant [10 x i8] c"3.0.0-dev\00", align 1
-@.str6 = private unnamed_addr constant [2 x i8] c"\0A\00", align 1
-@stderr = external global %struct._IO_FILE*
-@.str7 = private unnamed_addr constant [32 x i8] c"Expecting input image filename\0A\00", align 1
-@.str8 = private unnamed_addr constant [21 x i8] c"Reading video file: \00", align 1
-@.str9 = private unnamed_addr constant [26 x i8] c"Could not open video file\00", align 1
-@.str10 = private unnamed_addr constant [20 x i8] c"Number of frames = \00", align 1
-@.str11 = private unnamed_addr constant [19 x i8] c"Image dimension = \00", align 1
-@.str12 = private unnamed_addr constant [50 x i8] c"Expecting contiguous storage of image in memory!\0A\00", align 1
-@.str13 = private unnamed_addr constant [79 x i8] c"src.isContinuous() && L.isContinuous() && D.isContinuous() && E.isContinuous()\00", align 1
-@.str14 = private unnamed_addr constant [22 x i8] c"src/Laplacian/main.cc\00", align 1
-@__PRETTY_FUNCTION__.main = private unnamed_addr constant [23 x i8] c"int main(int, char **)\00", align 1
-@_ZZ4mainE1B = private unnamed_addr constant [9 x float] [float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00], align 16
-@.str15 = private unnamed_addr constant [39 x i8] c"src.size[0]*src.size[1] % block_x == 0\00", align 1
-@.str16 = private unnamed_addr constant [2 x i8] c"[\00", align 1
-@.str17 = private unnamed_addr constant [4 x i8] c" x \00", align 1
-@.str18 = private unnamed_addr constant [2 x i8] c"]\00", align 1
-@_ZNSs4_Rep20_S_empty_rep_storageE = external global [0 x i64]
-@llvm.global_ctors = appending global [1 x { i32, void ()* }] [{ i32, void ()* } { i32 65535, void ()* @_GLOBAL__I_a }]
-
-declare void @_ZNSt8ios_base4InitC1Ev(%"class.std::ios_base::Init"*) #0
-
-declare void @_ZNSt8ios_base4InitD1Ev(%"class.std::ios_base::Init"*) #0
-
-; Function Attrs: nounwind
-declare i32 @__cxa_atexit(void (i8*)*, i8*, i8*) #1
-
-declare void @_ZNSsC1EPKcRKSaIcE(%"class.std::basic_string"*, i8*, %"class.std::allocator"*) #0
-
-; Function Attrs: nounwind uwtable
-define available_externally void @_ZNSsD1Ev(%"class.std::basic_string"* nocapture %this) unnamed_addr #2 align 2 {
-entry:
-  %ref.tmp.i = alloca %"class.std::allocator", align 1
-  %0 = getelementptr inbounds %"class.std::allocator"* %ref.tmp.i, i64 0, i32 0
-  call void @llvm.lifetime.start(i64 1, i8* %0) #1
-  %_M_p.i.i.i = getelementptr inbounds %"class.std::basic_string"* %this, i64 0, i32 0, i32 0
-  %1 = load i8** %_M_p.i.i.i, align 8, !tbaa !5
-  %arrayidx.i.i = getelementptr inbounds i8* %1, i64 -24
-  %2 = bitcast i8* %arrayidx.i.i to %"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep"*
-  %cmp.i.i = icmp eq i8* %arrayidx.i.i, bitcast ([0 x i64]* @_ZNSs4_Rep20_S_empty_rep_storageE to i8*)
-  br i1 %cmp.i.i, label %_ZNSsD2Ev.exit, label %if.then.i.i, !prof !8
-
-if.then.i.i:                                      ; preds = %entry
-  %_M_refcount.i.i = getelementptr inbounds i8* %1, i64 -8
-  %3 = bitcast i8* %_M_refcount.i.i to i32*
-  br i1 icmp ne (i8* bitcast (i32 (i64)* @pthread_cancel to i8*), i8* null), label %if.then.i.i.i, label %if.else.i.i.i
-
-if.then.i.i.i:                                    ; preds = %if.then.i.i
-  %4 = atomicrmw add i32* %3, i32 -1 seq_cst
-  br label %_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i
-
-if.else.i.i.i:                                    ; preds = %if.then.i.i
-  %5 = load i32* %3, align 4, !tbaa !9
-  %add.i.i.i.i = add nsw i32 %5, -1
-  store i32 %add.i.i.i.i, i32* %3, align 4, !tbaa !9
-  br label %_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i
-
-_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i: ; preds = %if.else.i.i.i, %if.then.i.i.i
-  %retval.0.i.i.i = phi i32 [ %4, %if.then.i.i.i ], [ %5, %if.else.i.i.i ]
-  %cmp3.i.i = icmp slt i32 %retval.0.i.i.i, 1
-  br i1 %cmp3.i.i, label %if.then4.i.i, label %_ZNSsD2Ev.exit
-
-if.then4.i.i:                                     ; preds = %_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i
-  call void @_ZNSs4_Rep10_M_destroyERKSaIcE(%"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep"* %2, %"class.std::allocator"* %ref.tmp.i) #1
-  br label %_ZNSsD2Ev.exit
-
-_ZNSsD2Ev.exit:                                   ; preds = %if.then4.i.i, %_ZN9__gnu_cxxL27__exchange_and_add_dispatchEPii.exit.i.i, %entry
-  call void @llvm.lifetime.end(i64 1, i8* %0) #1
-  ret void
-}
-
-; Function Attrs: nounwind uwtable
-define void @packData(%struct.InStruct* nocapture %args, float* %I, i64 %bytesI, float* %B, i64 %bytesB, float* %D, i64 %bytesD, float* %E, i64 %bytesE, float* %L, i64 %bytesL, i32 %m, i32 %n) #2 {
-entry:
-  %I1 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 0
-  store float* %I, float** %I1, align 1, !tbaa !5
-  %bytesI2 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 1
-  store i64 %bytesI, i64* %bytesI2, align 1, !tbaa !10
-  %B3 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 2
-  store float* %B, float** %B3, align 1, !tbaa !5
-  %bytesB4 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 3
-  store i64 %bytesB, i64* %bytesB4, align 1, !tbaa !10
-  %D5 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 4
-  store float* %D, float** %D5, align 1, !tbaa !5
-  %bytesD6 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 5
-  store i64 %bytesD, i64* %bytesD6, align 1, !tbaa !10
-  %E7 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 6
-  store float* %E, float** %E7, align 1, !tbaa !5
-  %bytesE8 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 7
-  store i64 %bytesE, i64* %bytesE8, align 1, !tbaa !10
-  %L9 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 8
-  store float* %L, float** %L9, align 1, !tbaa !5
-  %bytesL10 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 9
-  store i64 %bytesL, i64* %bytesL10, align 1, !tbaa !10
-  %m11 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 10
-  store i32 %m, i32* %m11, align 1, !tbaa !9
-  %n12 = getelementptr inbounds %struct.InStruct* %args, i64 0, i32 11
-  store i32 %n, i32* %n12, align 1, !tbaa !9
-  ret void
-}
-
-; Function Attrs: nounwind
-declare void @llvm.lifetime.start(i64, i8* nocapture) #1
-
-; Function Attrs: nounwind
-declare void @llvm.lifetime.end(i64, i8* nocapture) #1
-
-; Function Attrs: nounwind uwtable
-define %emptyStruct @lincomb(float* nocapture in %Is, i64 %bytesIs, float* nocapture in %D, i64 %bytesD, float* nocapture in %E, i64 %bytesE, float* nocapture out %L, i64 %bytesL, i32 %m, i32 %n, i32 %dummyD, i32 %dummyE) #2 {
-entry:
-  %call3 = tail call i8* @llvm.hpvm.getNode()
-  %call14 = tail call i32 @llvm.hpvm.getNodeInstanceID.x(i8* %call3)
-  %call25 = tail call i32 @llvm.hpvm.getNodeInstanceID.y(i8* %call3)
-  %cmp = icmp slt i32 %call14, %n
-  %cmp3 = icmp slt i32 %call25, %m
-  %or.cond = and i1 %cmp, %cmp3
-  br i1 %or.cond, label %if.then, label %if.end
-
-if.then:                                          ; preds = %entry
-  %mul = mul nsw i32 %call25, %n
-  %add = add nsw i32 %mul, %call14
-  %idxprom = sext i32 %add to i64
-  %arrayidx = getelementptr inbounds float* %D, i64 %idxprom
-  %0 = load float* %arrayidx, align 4, !tbaa !11
-  %arrayidx5 = getelementptr inbounds float* %E, i64 %idxprom
-  %1 = load float* %arrayidx5, align 4, !tbaa !11
-  %add6 = fadd fast float %0, %1
-  %arrayidx8 = getelementptr inbounds float* %Is, i64 %idxprom
-  %2 = load float* %arrayidx8, align 4, !tbaa !11
-  %mul9 = fmul fast float %2, 2.000000e+00
-  %sub = fsub fast float %add6, %mul9
-  %arrayidx11 = getelementptr inbounds float* %L, i64 %idxprom
-  store float %sub, float* %arrayidx11, align 4, !tbaa !11
-  br label %if.end
-
-if.end:                                           ; preds = %if.then, %entry
-  ret %emptyStruct undef
-}
-
-; Function Attrs: nounwind uwtable
-define %emptyStruct.23 @WrapperLincomb(float* nocapture in %Is, i64 %bytesIs, float* nocapture in %D, i64 %bytesD, float* nocapture in %E, i64 %bytesE, float* nocapture out %L, i64 %bytesL, i32 %m, i32 %n, i32 %dummyD, i32 %dummyE) #2 {
-entry:
-  %lincomb.node = tail call i8* @llvm.hpvm.createNode2D(i8* bitcast (%emptyStruct (float*, i64, float*, i64, float*, i64, float*, i64, i32, i32, i32, i32)* @lincomb to i8*), i32 %m, i32 %n)
-  tail call void @llvm.hpvm.bind.input(i8* %lincomb.node, i32 0, i32 0, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %lincomb.node, i32 1, i32 1, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %lincomb.node, i32 2, i32 2, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %lincomb.node, i32 3, i32 3, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %lincomb.node, i32 4, i32 4, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %lincomb.node, i32 5, i32 5, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %lincomb.node, i32 6, i32 6, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %lincomb.node, i32 7, i32 7, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %lincomb.node, i32 8, i32 8, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %lincomb.node, i32 9, i32 9, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %lincomb.node, i32 10, i32 10, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %lincomb.node, i32 11, i32 11, i1 false)
-  ret %emptyStruct.23 undef
-}
-
-; Function Attrs: nounwind uwtable
-define %emptyStruct.24 @LaplacianEstimate(float* nocapture in %Is, i64 %bytesIs, float* nocapture in %B, i64 %bytesB, float* nocapture out %D, i64 %bytesD, float* nocapture out %E, i64 %bytesE, float* nocapture out %L, i64 %bytesL, i32 %m, i32 %n) #2 {
-entry:
-  %WrapperDilate_WrapperErode.node = tail call i8* @llvm.hpvm.createNode(i8* bitcast (%WrapperDilate.WrapperErode.ty (float*, i64, float*, i64, float*, i64, i32, i32, float*, i64, float*, i64, float*, i64, i32, i32)* @WrapperDilate_WrapperErode to i8*))
-  %WrapperLincomb.node = tail call i8* @llvm.hpvm.createNode(i8* bitcast (%emptyStruct.23 (float*, i64, float*, i64, float*, i64, float*, i64, i32, i32, i32, i32)* @WrapperLincomb to i8*))
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperDilate_WrapperErode.node, i32 0, i32 0, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperDilate_WrapperErode.node, i32 1, i32 1, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperDilate_WrapperErode.node, i32 2, i32 2, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperDilate_WrapperErode.node, i32 3, i32 3, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperDilate_WrapperErode.node, i32 4, i32 4, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperDilate_WrapperErode.node, i32 5, i32 5, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperDilate_WrapperErode.node, i32 10, i32 6, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperDilate_WrapperErode.node, i32 11, i32 7, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperDilate_WrapperErode.node, i32 0, i32 8, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperDilate_WrapperErode.node, i32 1, i32 9, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperDilate_WrapperErode.node, i32 2, i32 10, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperDilate_WrapperErode.node, i32 3, i32 11, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperDilate_WrapperErode.node, i32 6, i32 12, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperDilate_WrapperErode.node, i32 7, i32 13, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperDilate_WrapperErode.node, i32 10, i32 14, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperDilate_WrapperErode.node, i32 11, i32 15, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperLincomb.node, i32 0, i32 0, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperLincomb.node, i32 1, i32 1, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperLincomb.node, i32 4, i32 2, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperLincomb.node, i32 5, i32 3, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperLincomb.node, i32 6, i32 4, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperLincomb.node, i32 7, i32 5, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperLincomb.node, i32 8, i32 6, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperLincomb.node, i32 9, i32 7, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperLincomb.node, i32 10, i32 8, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %WrapperLincomb.node, i32 11, i32 9, i1 false)
-  %output.repl = tail call i8* @llvm.hpvm.createEdge(i8* %WrapperDilate_WrapperErode.node, i8* %WrapperLincomb.node, i1 false, i32 0, i32 10, i1 false)
-  %output1.repl = tail call i8* @llvm.hpvm.createEdge(i8* %WrapperDilate_WrapperErode.node, i8* %WrapperLincomb.node, i1 false, i32 1, i32 11, i1 false)
-  ret %emptyStruct.24 undef
-}
-
-; Function Attrs: nounwind uwtable
-define void @_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE(%"class.cv::VideoCapture"* %VC, %"class.cv::Mat"* %F) #2 {
-entry:
-  %ref.tmp = alloca %"class.cv::_InputArray", align 8
-  %ref.tmp2 = alloca %"class.cv::_OutputArray", align 8
-  %ref.tmp3 = alloca %"class.cv::_OutputArray", align 8
-  %0 = bitcast %"class.cv::VideoCapture"* %VC to %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)***
-  %vtable = load %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)*** %0, align 8, !tbaa !12
-  %vfn = getelementptr inbounds %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)** %vtable, i64 8
-  %1 = load %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)** %vfn, align 8
-  %call = call %"class.cv::VideoCapture"* %1(%"class.cv::VideoCapture"* %VC, %"class.cv::Mat"* %F) #1
-  %flags.i = getelementptr inbounds %"class.cv::Mat"* %F, i64 0, i32 0
-  %2 = load i32* %flags.i, align 4, !tbaa !9
-  %shr2.i = and i32 %2, 4088
-  %cmp = icmp eq i32 %shr2.i, 16
-  br i1 %cmp, label %if.then, label %entry.if.end_crit_edge
-
-entry.if.end_crit_edge:                           ; preds = %entry
-  %.pre = bitcast %"class.cv::Mat"* %F to i8*
-  br label %if.end
-
-if.then:                                          ; preds = %entry
-  %width.i.i.i.i = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp, i64 0, i32 2, i32 0
-  store i32 0, i32* %width.i.i.i.i, align 8, !tbaa !9
-  %height.i.i.i.i = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp, i64 0, i32 2, i32 1
-  store i32 0, i32* %height.i.i.i.i, align 4, !tbaa !9
-  %3 = bitcast %"class.cv::Mat"* %F to i8*
-  %flags.i.i.i = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp, i64 0, i32 0
-  store i32 16842752, i32* %flags.i.i.i, align 8, !tbaa !9
-  %obj.i.i.i = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp, i64 0, i32 1
-  store i8* %3, i8** %obj.i.i.i, align 8, !tbaa !5
-  %flags.i.i.i.i9 = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp2, i64 0, i32 0, i32 0
-  %obj.i.i.i.i10 = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp2, i64 0, i32 0, i32 1
-  %4 = bitcast i8** %obj.i.i.i.i10 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %4, i8 0, i64 16, i32 8, i1 false) #1
-  store i32 33619968, i32* %flags.i.i.i.i9, align 8, !tbaa !9
-  store i8* %3, i8** %obj.i.i.i.i10, align 8, !tbaa !5
-  call void @_ZN2cv8cvtColorERKNS_11_InputArrayERKNS_12_OutputArrayEii(%"class.cv::_InputArray"* %ref.tmp, %"class.cv::_OutputArray"* %ref.tmp2, i32 6, i32 0) #1
-  br label %if.end
-
-if.end:                                           ; preds = %if.then, %entry.if.end_crit_edge
-  %.pre-phi = phi i8* [ %.pre, %entry.if.end_crit_edge ], [ %3, %if.then ]
-  %flags.i.i.i.i = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp3, i64 0, i32 0, i32 0
-  %obj.i.i.i.i = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp3, i64 0, i32 0, i32 1
-  %5 = bitcast i8** %obj.i.i.i.i to i8*
-  call void @llvm.memset.p0i8.i64(i8* %5, i8 0, i64 16, i32 8, i1 false) #1
-  store i32 33619968, i32* %flags.i.i.i.i, align 8, !tbaa !9
-  store i8* %.pre-phi, i8** %obj.i.i.i.i, align 8, !tbaa !5
-  call void @_ZNK2cv3Mat9convertToERKNS_12_OutputArrayEidd(%"class.cv::Mat"* %F, %"class.cv::_OutputArray"* %ref.tmp3, i32 5, double 0x3F70101010101010, double 0.000000e+00) #1
-  ret void
-}
-
-declare void @_ZN2cv8cvtColorERKNS_11_InputArrayERKNS_12_OutputArrayEii(%"class.cv::_InputArray"*, %"class.cv::_OutputArray"*, i32, i32) #0
-
-declare void @_ZNK2cv3Mat9convertToERKNS_12_OutputArrayEidd(%"class.cv::Mat"*, %"class.cv::_OutputArray"*, i32, double, double) #0
-
-; Function Attrs: nounwind uwtable
-define i32 @main(i32 %argc, i8** %argv) #2 {
-entry:
-  %ref.tmp.i311 = alloca %"class.cv::_InputArray", align 8
-  %ref.tmp2.i312 = alloca %"class.cv::_OutputArray", align 8
-  %ref.tmp3.i313 = alloca %"class.cv::_OutputArray", align 8
-  %sz.i.i.i = alloca [2 x i32], align 4
-  %ref.tmp.i = alloca %"class.cv::_InputArray", align 8
-  %ref.tmp2.i = alloca %"class.cv::_OutputArray", align 8
-  %ref.tmp3.i = alloca %"class.cv::_OutputArray", align 8
-  %argc.addr = alloca i32, align 4
-  %timers = alloca %struct.pb_TimerSet, align 8
-  %cap = alloca %"class.cv::VideoCapture", align 8
-  %ref.tmp = alloca %"class.cv::String", align 8
-  %ref.tmp24 = alloca %"class.cv::String", align 8
-  %ref.tmp25 = alloca %"class.cv::String", align 8
-  %ref.tmp26 = alloca %"class.cv::String", align 8
-  %ref.tmp27 = alloca %"class.cv::String", align 8
-  %src = alloca %"class.cv::Mat", align 8
-  %D = alloca %"class.cv::Mat", align 8
-  %E = alloca %"class.cv::Mat", align 8
-  %L = alloca %"class.cv::Mat", align 8
-  %ref.tmp36 = alloca %"class.cv::Mat", align 8
-  %ref.tmp42 = alloca %"class.cv::Mat", align 8
-  %ref.tmp48 = alloca %"class.cv::Mat", align 8
-  %B = alloca [9 x float], align 16
-  %in = alloca %"class.cv::Mat", align 8
-  %out = alloca %"class.cv::Mat", align 8
-  %ref.tmp76 = alloca %"class.cv::VideoCapture", align 8
-  %ref.tmp77 = alloca %"class.cv::String", align 8
-  store i32 %argc, i32* %argc.addr, align 4, !tbaa !9
-  %0 = bitcast %struct.pb_TimerSet* %timers to i8*
-  call void @llvm.lifetime.start(i64 800, i8* %0) #1
-  %call1.i = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([13 x i8]* @.str4, i64 0, i64 0), i64 12) #1
-  %call1.i122 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([10 x i8]* @.str5, i64 0, i64 0), i64 9) #1
-  %call1.i124 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([2 x i8]* @.str6, i64 0, i64 0), i64 1) #1
-  %call3 = call %struct.pb_Parameters* @pb_ReadParameters(i32* %argc.addr, i8** %argv) #1
-  %inpFiles = getelementptr inbounds %struct.pb_Parameters* %call3, i64 0, i32 1
-  %1 = load i8*** %inpFiles, align 8, !tbaa !5
-  %2 = load i8** %1, align 8, !tbaa !5
-  %cmp = icmp eq i8* %2, null
-  br i1 %cmp, label %if.then, label %lor.lhs.false
-
-lor.lhs.false:                                    ; preds = %entry
-  %arrayidx5 = getelementptr inbounds i8** %1, i64 1
-  %3 = load i8** %arrayidx5, align 8, !tbaa !5
-  %cmp6 = icmp eq i8* %3, null
-  br i1 %cmp6, label %if.end, label %if.then
-
-if.then:                                          ; preds = %lor.lhs.false, %entry
-  %4 = load %struct._IO_FILE** @stderr, align 8, !tbaa !5
-  %5 = call i64 @fwrite(i8* getelementptr inbounds ([32 x i8]* @.str7, i64 0, i64 0), i64 31, i64 1, %struct._IO_FILE* %4)
-  call void @exit(i32 -1) #8
-  unreachable
-
-if.end:                                           ; preds = %lor.lhs.false
-  %call1.i126 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([21 x i8]* @.str8, i64 0, i64 0), i64 20) #1
-  %6 = load i8*** %inpFiles, align 8, !tbaa !5
-  %7 = load i8** %6, align 8, !tbaa !5
-  %tobool.i = icmp eq i8* %7, null
-  br i1 %tobool.i, label %if.then.i, label %if.else.i
-
-if.then.i:                                        ; preds = %if.end
-  %vtable.i = load i8** bitcast (%"class.std::basic_ostream"* @_ZSt4cout to i8**), align 8, !tbaa !12
-  %vbase.offset.ptr.i = getelementptr i8* %vtable.i, i64 -24
-  %8 = bitcast i8* %vbase.offset.ptr.i to i64*
-  %vbase.offset.i = load i64* %8, align 8
-  %add.ptr.i = getelementptr inbounds i8* bitcast (%"class.std::basic_ostream"* @_ZSt4cout to i8*), i64 %vbase.offset.i
-  %9 = bitcast i8* %add.ptr.i to %"class.std::basic_ios"*
-  %add.ptr.sum.i = add i64 %vbase.offset.i, 32
-  %_M_streambuf_state.i.i.i = getelementptr inbounds i8* bitcast (%"class.std::basic_ostream"* @_ZSt4cout to i8*), i64 %add.ptr.sum.i
-  %10 = bitcast i8* %_M_streambuf_state.i.i.i to i32*
-  %11 = load i32* %10, align 4, !tbaa !13
-  %or.i.i.i = or i32 %11, 1
-  call void @_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate(%"class.std::basic_ios"* %9, i32 %or.i.i.i) #1
-  br label %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit
-
-if.else.i:                                        ; preds = %if.end
-  %call.i.i127 = call i64 @strlen(i8* %7) #1
-  %call1.i128 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* %7, i64 %call.i.i127) #1
-  br label %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit
-
-_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit: ; preds = %if.else.i, %if.then.i
-  %call1.i130 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([2 x i8]* @.str6, i64 0, i64 0), i64 1) #1
-  %12 = bitcast %"class.cv::VideoCapture"* %cap to i8*
-  call void @llvm.lifetime.start(i64 40, i8* %12) #1
-  %13 = load i8*** %inpFiles, align 8, !tbaa !5
-  %14 = load i8** %13, align 8, !tbaa !5
-  %tobool.i.i = icmp eq i8* %14, null
-  %15 = bitcast %"class.cv::String"* %ref.tmp to i8*
-  call void @llvm.memset.p0i8.i64(i8* %15, i8 0, i64 16, i32 8, i1 false) #1
-  br i1 %tobool.i.i, label %_ZN2cv6StringC1EPKc.exit, label %if.end.i.i
-
-if.end.i.i:                                       ; preds = %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit
-  %call.i.i132 = call i64 @strlen(i8* %14) #9
-  %call2.i.i = call i8* @_ZN2cv6String8allocateEm(%"class.cv::String"* %ref.tmp, i64 %call.i.i132) #1
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %call2.i.i, i8* %14, i64 %call.i.i132, i32 1, i1 false) #1
-  br label %_ZN2cv6StringC1EPKc.exit
-
-_ZN2cv6StringC1EPKc.exit:                         ; preds = %if.end.i.i, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit
-  call void @_ZN2cv12VideoCaptureC1ERKNS_6StringE(%"class.cv::VideoCapture"* %cap, %"class.cv::String"* %ref.tmp) #1
-  call void @_ZN2cv6String10deallocateEv(%"class.cv::String"* %ref.tmp) #1
-  %call15 = call zeroext i1 @_ZNK2cv12VideoCapture8isOpenedEv(%"class.cv::VideoCapture"* %cap) #1
-  br i1 %call15, label %if.end19, label %if.then16
-
-if.then16:                                        ; preds = %_ZN2cv6StringC1EPKc.exit
-  %call1.i134 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([26 x i8]* @.str9, i64 0, i64 0), i64 25) #1
-  %call1.i137 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([2 x i8]* @.str6, i64 0, i64 0), i64 1) #1
-  br label %cleanup
-
-if.end19:                                         ; preds = %_ZN2cv6StringC1EPKc.exit
-  %call20 = call double @_ZNK2cv12VideoCapture3getEi(%"class.cv::VideoCapture"* %cap, i32 7) #1
-  %conv = fptosi double %call20 to i32
-  %call1.i140 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([20 x i8]* @.str10, i64 0, i64 0), i64 19) #1
-  %call22 = call %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"* @_ZSt4cout, i32 %conv) #1
-  %call1.i143 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* %call22, i8* getelementptr inbounds ([2 x i8]* @.str6, i64 0, i64 0), i64 1) #1
-  %16 = bitcast %"class.cv::String"* %ref.tmp24 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %16, i8 0, i64 16, i32 8, i1 false) #1
-  %17 = load i8** getelementptr inbounds (%"class.std::basic_string"* @input_window, i64 0, i32 0, i32 0), align 8, !tbaa !5
-  %arrayidx.i.i.i.i.i = getelementptr inbounds i8* %17, i64 -24
-  %_M_length.i.i.i.i = bitcast i8* %arrayidx.i.i.i.i.i to i64*
-  %18 = load i64* %_M_length.i.i.i.i, align 8, !tbaa !10
-  %cmp.i.i.i = icmp eq i64 %18, 0
-  br i1 %cmp.i.i.i, label %_ZN2cv6StringC1ERKSs.exit, label %if.then.i.i
-
-if.then.i.i:                                      ; preds = %if.end19
-  %call3.i.i = call i8* @_ZN2cv6String8allocateEm(%"class.cv::String"* %ref.tmp24, i64 %18) #1
-  %19 = load i8** getelementptr inbounds (%"class.std::basic_string"* @input_window, i64 0, i32 0, i32 0), align 8, !tbaa !5
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %call3.i.i, i8* %19, i64 %18, i32 1, i1 false) #1
-  br label %_ZN2cv6StringC1ERKSs.exit
-
-_ZN2cv6StringC1ERKSs.exit:                        ; preds = %if.then.i.i, %if.end19
-  call void @_ZN2cv11namedWindowERKNS_6StringEi(%"class.cv::String"* %ref.tmp24, i32 1) #1
-  call void @_ZN2cv6String10deallocateEv(%"class.cv::String"* %ref.tmp24) #1
-  %20 = bitcast %"class.cv::String"* %ref.tmp25 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %20, i8 0, i64 16, i32 8, i1 false) #1
-  %21 = load i8** getelementptr inbounds (%"class.std::basic_string"* @output_window, i64 0, i32 0, i32 0), align 8, !tbaa !5
-  %arrayidx.i.i.i.i.i145 = getelementptr inbounds i8* %21, i64 -24
-  %_M_length.i.i.i.i146 = bitcast i8* %arrayidx.i.i.i.i.i145 to i64*
-  %22 = load i64* %_M_length.i.i.i.i146, align 8, !tbaa !10
-  %cmp.i.i.i147 = icmp eq i64 %22, 0
-  br i1 %cmp.i.i.i147, label %_ZN2cv6StringC1ERKSs.exit150, label %if.then.i.i149
-
-if.then.i.i149:                                   ; preds = %_ZN2cv6StringC1ERKSs.exit
-  %call3.i.i148 = call i8* @_ZN2cv6String8allocateEm(%"class.cv::String"* %ref.tmp25, i64 %22) #1
-  %23 = load i8** getelementptr inbounds (%"class.std::basic_string"* @output_window, i64 0, i32 0, i32 0), align 8, !tbaa !5
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %call3.i.i148, i8* %23, i64 %22, i32 1, i1 false) #1
-  br label %_ZN2cv6StringC1ERKSs.exit150
-
-_ZN2cv6StringC1ERKSs.exit150:                     ; preds = %if.then.i.i149, %_ZN2cv6StringC1ERKSs.exit
-  call void @_ZN2cv11namedWindowERKNS_6StringEi(%"class.cv::String"* %ref.tmp25, i32 1) #1
-  call void @_ZN2cv6String10deallocateEv(%"class.cv::String"* %ref.tmp25) #1
-  %24 = bitcast %"class.cv::String"* %ref.tmp26 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %24, i8 0, i64 16, i32 8, i1 false) #1
-  %25 = load i8** getelementptr inbounds (%"class.std::basic_string"* @input_window, i64 0, i32 0, i32 0), align 8, !tbaa !5
-  %arrayidx.i.i.i.i.i151 = getelementptr inbounds i8* %25, i64 -24
-  %_M_length.i.i.i.i152 = bitcast i8* %arrayidx.i.i.i.i.i151 to i64*
-  %26 = load i64* %_M_length.i.i.i.i152, align 8, !tbaa !10
-  %cmp.i.i.i153 = icmp eq i64 %26, 0
-  br i1 %cmp.i.i.i153, label %_ZN2cv6StringC1ERKSs.exit156, label %if.then.i.i155
-
-if.then.i.i155:                                   ; preds = %_ZN2cv6StringC1ERKSs.exit150
-  %call3.i.i154 = call i8* @_ZN2cv6String8allocateEm(%"class.cv::String"* %ref.tmp26, i64 %26) #1
-  %27 = load i8** getelementptr inbounds (%"class.std::basic_string"* @input_window, i64 0, i32 0, i32 0), align 8, !tbaa !5
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %call3.i.i154, i8* %27, i64 %26, i32 1, i1 false) #1
-  br label %_ZN2cv6StringC1ERKSs.exit156
-
-_ZN2cv6StringC1ERKSs.exit156:                     ; preds = %if.then.i.i155, %_ZN2cv6StringC1ERKSs.exit150
-  call void @_ZN2cv10moveWindowERKNS_6StringEii(%"class.cv::String"* %ref.tmp26, i32 0, i32 0) #1
-  call void @_ZN2cv6String10deallocateEv(%"class.cv::String"* %ref.tmp26) #1
-  %28 = bitcast %"class.cv::String"* %ref.tmp27 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %28, i8 0, i64 16, i32 8, i1 false) #1
-  %29 = load i8** getelementptr inbounds (%"class.std::basic_string"* @output_window, i64 0, i32 0, i32 0), align 8, !tbaa !5
-  %arrayidx.i.i.i.i.i157 = getelementptr inbounds i8* %29, i64 -24
-  %_M_length.i.i.i.i158 = bitcast i8* %arrayidx.i.i.i.i.i157 to i64*
-  %30 = load i64* %_M_length.i.i.i.i158, align 8, !tbaa !10
-  %cmp.i.i.i159 = icmp eq i64 %30, 0
-  br i1 %cmp.i.i.i159, label %_ZN2cv6StringC1ERKSs.exit162, label %if.then.i.i161
-
-if.then.i.i161:                                   ; preds = %_ZN2cv6StringC1ERKSs.exit156
-  %call3.i.i160 = call i8* @_ZN2cv6String8allocateEm(%"class.cv::String"* %ref.tmp27, i64 %30) #1
-  %31 = load i8** getelementptr inbounds (%"class.std::basic_string"* @output_window, i64 0, i32 0, i32 0), align 8, !tbaa !5
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %call3.i.i160, i8* %31, i64 %30, i32 1, i1 false) #1
-  br label %_ZN2cv6StringC1ERKSs.exit162
-
-_ZN2cv6StringC1ERKSs.exit162:                     ; preds = %if.then.i.i161, %_ZN2cv6StringC1ERKSs.exit156
-  call void @_ZN2cv10moveWindowERKNS_6StringEii(%"class.cv::String"* %ref.tmp27, i32 0, i32 540) #1
-  call void @_ZN2cv6String10deallocateEv(%"class.cv::String"* %ref.tmp27) #1
-  %32 = bitcast %"class.cv::Mat"* %src to i8*
-  call void @llvm.lifetime.start(i64 96, i8* %32) #1
-  %flags.i.i = getelementptr inbounds %"class.cv::Mat"* %src, i64 0, i32 0
-  store i32 1124007936, i32* %flags.i.i, align 8, !tbaa !9
-  %dims.i.i = getelementptr inbounds %"class.cv::Mat"* %src, i64 0, i32 1
-  %rows.i.i = getelementptr inbounds %"class.cv::Mat"* %src, i64 0, i32 2
-  %p.i.i.i.i = getelementptr inbounds %"class.cv::Mat"* %src, i64 0, i32 10, i32 0
-  %33 = bitcast i32* %dims.i.i to i8*
-  call void @llvm.memset.p0i8.i64(i8* %33, i8 0, i64 60, i32 4, i1 false) #1
-  store i32* %rows.i.i, i32** %p.i.i.i.i, align 8, !tbaa !5
-  %arraydecay.i.i.i.i = getelementptr inbounds %"class.cv::Mat"* %src, i64 0, i32 11, i32 1, i64 0
-  %p.i.i3.i.i = getelementptr inbounds %"class.cv::Mat"* %src, i64 0, i32 11, i32 0
-  store i64* %arraydecay.i.i.i.i, i64** %p.i.i3.i.i, align 8, !tbaa !5
-  %34 = bitcast i64* %arraydecay.i.i.i.i to i8*
-  call void @llvm.memset.p0i8.i64(i8* %34, i8 0, i64 16, i32 8, i1 false) #1
-  %35 = bitcast %"class.cv::Mat"* %D to i8*
-  call void @llvm.lifetime.start(i64 96, i8* %35) #1
-  %flags.i.i163 = getelementptr inbounds %"class.cv::Mat"* %D, i64 0, i32 0
-  store i32 1124007936, i32* %flags.i.i163, align 8, !tbaa !9
-  %dims.i.i164 = getelementptr inbounds %"class.cv::Mat"* %D, i64 0, i32 1
-  %rows.i.i165 = getelementptr inbounds %"class.cv::Mat"* %D, i64 0, i32 2
-  %p.i.i.i.i166 = getelementptr inbounds %"class.cv::Mat"* %D, i64 0, i32 10, i32 0
-  %36 = bitcast i32* %dims.i.i164 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %36, i8 0, i64 60, i32 4, i1 false) #1
-  store i32* %rows.i.i165, i32** %p.i.i.i.i166, align 8, !tbaa !5
-  %arraydecay.i.i.i.i167 = getelementptr inbounds %"class.cv::Mat"* %D, i64 0, i32 11, i32 1, i64 0
-  %p.i.i3.i.i168 = getelementptr inbounds %"class.cv::Mat"* %D, i64 0, i32 11, i32 0
-  store i64* %arraydecay.i.i.i.i167, i64** %p.i.i3.i.i168, align 8, !tbaa !5
-  %37 = bitcast i64* %arraydecay.i.i.i.i167 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %37, i8 0, i64 16, i32 8, i1 false) #1
-  %38 = bitcast %"class.cv::Mat"* %E to i8*
-  call void @llvm.lifetime.start(i64 96, i8* %38) #1
-  %flags.i.i169 = getelementptr inbounds %"class.cv::Mat"* %E, i64 0, i32 0
-  store i32 1124007936, i32* %flags.i.i169, align 8, !tbaa !9
-  %dims.i.i170 = getelementptr inbounds %"class.cv::Mat"* %E, i64 0, i32 1
-  %rows.i.i171 = getelementptr inbounds %"class.cv::Mat"* %E, i64 0, i32 2
-  %p.i.i.i.i172 = getelementptr inbounds %"class.cv::Mat"* %E, i64 0, i32 10, i32 0
-  %39 = bitcast i32* %dims.i.i170 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %39, i8 0, i64 60, i32 4, i1 false) #1
-  store i32* %rows.i.i171, i32** %p.i.i.i.i172, align 8, !tbaa !5
-  %arraydecay.i.i.i.i173 = getelementptr inbounds %"class.cv::Mat"* %E, i64 0, i32 11, i32 1, i64 0
-  %p.i.i3.i.i174 = getelementptr inbounds %"class.cv::Mat"* %E, i64 0, i32 11, i32 0
-  store i64* %arraydecay.i.i.i.i173, i64** %p.i.i3.i.i174, align 8, !tbaa !5
-  %40 = bitcast i64* %arraydecay.i.i.i.i173 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %40, i8 0, i64 16, i32 8, i1 false) #1
-  %41 = bitcast %"class.cv::Mat"* %L to i8*
-  call void @llvm.lifetime.start(i64 96, i8* %41) #1
-  %flags.i.i175 = getelementptr inbounds %"class.cv::Mat"* %L, i64 0, i32 0
-  store i32 1124007936, i32* %flags.i.i175, align 8, !tbaa !9
-  %dims.i.i176 = getelementptr inbounds %"class.cv::Mat"* %L, i64 0, i32 1
-  %rows.i.i177 = getelementptr inbounds %"class.cv::Mat"* %L, i64 0, i32 2
-  %p.i.i.i.i178 = getelementptr inbounds %"class.cv::Mat"* %L, i64 0, i32 10, i32 0
-  %42 = bitcast i32* %dims.i.i176 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %42, i8 0, i64 60, i32 4, i1 false) #1
-  store i32* %rows.i.i177, i32** %p.i.i.i.i178, align 8, !tbaa !5
-  %arraydecay.i.i.i.i179 = getelementptr inbounds %"class.cv::Mat"* %L, i64 0, i32 11, i32 1, i64 0
-  %p.i.i3.i.i180 = getelementptr inbounds %"class.cv::Mat"* %L, i64 0, i32 11, i32 0
-  store i64* %arraydecay.i.i.i.i179, i64** %p.i.i3.i.i180, align 8, !tbaa !5
-  %43 = bitcast i64* %arraydecay.i.i.i.i179 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %43, i8 0, i64 16, i32 8, i1 false) #1
-  %44 = bitcast %"class.cv::_InputArray"* %ref.tmp.i to i8*
-  call void @llvm.lifetime.start(i64 24, i8* %44) #1
-  %45 = bitcast %"class.cv::_OutputArray"* %ref.tmp2.i to i8*
-  call void @llvm.lifetime.start(i64 24, i8* %45) #1
-  %46 = bitcast %"class.cv::_OutputArray"* %ref.tmp3.i to i8*
-  call void @llvm.lifetime.start(i64 24, i8* %46) #1
-  %47 = bitcast %"class.cv::VideoCapture"* %cap to %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)***
-  %vtable.i181 = load %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)*** %47, align 8, !tbaa !12
-  %vfn.i = getelementptr inbounds %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)** %vtable.i181, i64 8
-  %48 = load %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)** %vfn.i, align 8
-  %call.i = call %"class.cv::VideoCapture"* %48(%"class.cv::VideoCapture"* %cap, %"class.cv::Mat"* %src) #1
-  %49 = load i32* %flags.i.i, align 8, !tbaa !9
-  %shr2.i.i = and i32 %49, 4088
-  %cmp.i = icmp eq i32 %shr2.i.i, 16
-  br i1 %cmp.i, label %if.then.i183, label %_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit
-
-if.then.i183:                                     ; preds = %_ZN2cv6StringC1ERKSs.exit162
-  %width.i.i.i.i.i = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp.i, i64 0, i32 2, i32 0
-  store i32 0, i32* %width.i.i.i.i.i, align 8, !tbaa !9
-  %height.i.i.i.i.i = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp.i, i64 0, i32 2, i32 1
-  store i32 0, i32* %height.i.i.i.i.i, align 4, !tbaa !9
-  %flags.i.i.i.i = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp.i, i64 0, i32 0
-  store i32 16842752, i32* %flags.i.i.i.i, align 8, !tbaa !9
-  %obj.i.i.i.i = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp.i, i64 0, i32 1
-  store i8* %32, i8** %obj.i.i.i.i, align 8, !tbaa !5
-  %flags.i.i.i.i9.i = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp2.i, i64 0, i32 0, i32 0
-  %obj.i.i.i.i10.i = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp2.i, i64 0, i32 0, i32 1
-  %50 = bitcast i8** %obj.i.i.i.i10.i to i8*
-  call void @llvm.memset.p0i8.i64(i8* %50, i8 0, i64 16, i32 8, i1 false) #1
-  store i32 33619968, i32* %flags.i.i.i.i9.i, align 8, !tbaa !9
-  store i8* %32, i8** %obj.i.i.i.i10.i, align 8, !tbaa !5
-  call void @_ZN2cv8cvtColorERKNS_11_InputArrayERKNS_12_OutputArrayEii(%"class.cv::_InputArray"* %ref.tmp.i, %"class.cv::_OutputArray"* %ref.tmp2.i, i32 6, i32 0) #1
-  br label %_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit
-
-_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit: ; preds = %if.then.i183, %_ZN2cv6StringC1ERKSs.exit162
-  %flags.i.i.i.i.i = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp3.i, i64 0, i32 0, i32 0
-  %obj.i.i.i.i.i = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp3.i, i64 0, i32 0, i32 1
-  %51 = bitcast i8** %obj.i.i.i.i.i to i8*
-  call void @llvm.memset.p0i8.i64(i8* %51, i8 0, i64 16, i32 8, i1 false) #1
-  store i32 33619968, i32* %flags.i.i.i.i.i, align 8, !tbaa !9
-  store i8* %32, i8** %obj.i.i.i.i.i, align 8, !tbaa !5
-  call void @_ZNK2cv3Mat9convertToERKNS_12_OutputArrayEidd(%"class.cv::Mat"* %src, %"class.cv::_OutputArray"* %ref.tmp3.i, i32 5, double 0x3F70101010101010, double 0.000000e+00) #1
-  call void @llvm.lifetime.end(i64 24, i8* %44) #1
-  call void @llvm.lifetime.end(i64 24, i8* %45) #1
-  call void @llvm.lifetime.end(i64 24, i8* %46) #1
-  %call1.i185 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([19 x i8]* @.str11, i64 0, i64 0), i64 18) #1
-  %52 = load i32** %p.i.i.i.i, align 8, !tbaa !5
-  %arrayidx.i = getelementptr inbounds i32* %52, i64 1
-  %53 = load i32* %arrayidx.i, align 4, !tbaa !9
-  %54 = load i32* %52, align 4, !tbaa !9
-  %call1.i.i = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([2 x i8]* @.str16, i64 0, i64 0), i64 1) #1
-  %call1.i187 = call %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"* @_ZSt4cout, i32 %53) #1
-  %call1.i7.i = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* %call1.i187, i8* getelementptr inbounds ([4 x i8]* @.str17, i64 0, i64 0), i64 3) #1
-  %call3.i = call %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"* %call1.i187, i32 %54) #1
-  %call1.i9.i = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* %call3.i, i8* getelementptr inbounds ([2 x i8]* @.str18, i64 0, i64 0), i64 1) #1
-  %call1.i189 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* %call3.i, i8* getelementptr inbounds ([2 x i8]* @.str6, i64 0, i64 0), i64 1) #1
-  %55 = load i32* %flags.i.i, align 8, !tbaa !9
-  %and.i = and i32 %55, 16384
-  %cmp.i191 = icmp eq i32 %and.i, 0
-  br i1 %cmp.i191, label %if.then33, label %if.end35
-
-if.then33:                                        ; preds = %_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit
-  %call1.i193 = call %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([50 x i8]* @.str12, i64 0, i64 0), i64 49) #1
-  call void @exit(i32 -1) #8
-  unreachable
-
-if.end35:                                         ; preds = %_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit
-  %56 = load i32** %p.i.i.i.i, align 8, !tbaa !5
-  %57 = load i32* %56, align 4, !tbaa !9
-  %arrayidx.i197 = getelementptr inbounds i32* %56, i64 1
-  %58 = load i32* %arrayidx.i197, align 4, !tbaa !9
-  %flags.i.i198 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp36, i64 0, i32 0
-  store i32 1124007936, i32* %flags.i.i198, align 8, !tbaa !9
-  %dims.i.i199 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp36, i64 0, i32 1
-  %rows.i.i200 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp36, i64 0, i32 2
-  %p.i.i.i.i201 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp36, i64 0, i32 10, i32 0
-  %59 = bitcast i32* %dims.i.i199 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %59, i8 0, i64 60, i32 4, i1 false) #1
-  store i32* %rows.i.i200, i32** %p.i.i.i.i201, align 8, !tbaa !5
-  %arraydecay.i.i.i.i202 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp36, i64 0, i32 11, i32 1, i64 0
-  %p.i.i3.i.i203 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp36, i64 0, i32 11, i32 0
-  store i64* %arraydecay.i.i.i.i202, i64** %p.i.i3.i.i203, align 8, !tbaa !5
-  %60 = bitcast i64* %arraydecay.i.i.i.i202 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %60, i8 0, i64 16, i32 8, i1 false) #1
-  %61 = bitcast [2 x i32]* %sz.i.i.i to i8*
-  call void @llvm.lifetime.start(i64 8, i8* %61) #1
-  %arrayinit.begin.i.i.i = getelementptr inbounds [2 x i32]* %sz.i.i.i, i64 0, i64 0
-  store i32 %57, i32* %arrayinit.begin.i.i.i, align 4, !tbaa !9
-  %arrayinit.element.i.i.i = getelementptr inbounds [2 x i32]* %sz.i.i.i, i64 0, i64 1
-  store i32 %58, i32* %arrayinit.element.i.i.i, align 4, !tbaa !9
-  call void @_ZN2cv3Mat6createEiPKii(%"class.cv::Mat"* %ref.tmp36, i32 2, i32* %arrayinit.begin.i.i.i, i32 5) #1
-  call void @llvm.lifetime.end(i64 8, i8* %61) #1
-  %call41 = call %"class.cv::Mat"* @_ZN2cv3MataSERKS0_(%"class.cv::Mat"* %D, %"class.cv::Mat"* %ref.tmp36)
-  %u.i.i.i = getelementptr inbounds %"class.cv::Mat"* %ref.tmp36, i64 0, i32 9
-  %62 = load %"struct.cv::UMatData"** %u.i.i.i, align 8, !tbaa !5
-  %tobool.i.i.i = icmp eq %"struct.cv::UMatData"* %62, null
-  br i1 %tobool.i.i.i, label %if.end.i.i.i, label %land.lhs.true.i.i.i
-
-land.lhs.true.i.i.i:                              ; preds = %if.end35
-  %refcount.i.i.i = getelementptr inbounds %"struct.cv::UMatData"* %62, i64 0, i32 3
-  %63 = atomicrmw add i32* %refcount.i.i.i, i32 -1 acq_rel
-  %cmp.i.i.i204 = icmp eq i32 %63, 1
-  br i1 %cmp.i.i.i204, label %if.then.i.i.i, label %if.end.i.i.i
-
-if.then.i.i.i:                                    ; preds = %land.lhs.true.i.i.i
-  call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %ref.tmp36) #1
-  br label %if.end.i.i.i
-
-if.end.i.i.i:                                     ; preds = %if.then.i.i.i, %land.lhs.true.i.i.i, %if.end35
-  store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i, align 8, !tbaa !5
-  %data.i.i.i = getelementptr inbounds %"class.cv::Mat"* %ref.tmp36, i64 0, i32 4
-  %64 = bitcast i8** %data.i.i.i to i8*
-  call void @llvm.memset.p0i8.i64(i8* %64, i8 0, i64 32, i32 8, i1 false) #1
-  %65 = load i32* %dims.i.i199, align 4, !tbaa !9
-  %cmp47.i.i.i = icmp sgt i32 %65, 0
-  br i1 %cmp47.i.i.i, label %for.body.lr.ph.i.i.i, label %_ZN2cv3Mat7releaseEv.exit.i.i
-
-for.body.lr.ph.i.i.i:                             ; preds = %if.end.i.i.i
-  %66 = load i32** %p.i.i.i.i201, align 8, !tbaa !5
-  br label %for.body.i.i.i
-
-for.body.i.i.i:                                   ; preds = %for.body.i.i.i, %for.body.lr.ph.i.i.i
-  %indvars.iv.i.i.i = phi i64 [ 0, %for.body.lr.ph.i.i.i ], [ %indvars.iv.next.i.i.i, %for.body.i.i.i ]
-  %arrayidx.i.i.i = getelementptr inbounds i32* %66, i64 %indvars.iv.i.i.i
-  store i32 0, i32* %arrayidx.i.i.i, align 4, !tbaa !9
-  %indvars.iv.next.i.i.i = add i64 %indvars.iv.i.i.i, 1
-  %67 = load i32* %dims.i.i199, align 4, !tbaa !9
-  %68 = trunc i64 %indvars.iv.next.i.i.i to i32
-  %cmp4.i.i.i = icmp slt i32 %68, %67
-  br i1 %cmp4.i.i.i, label %for.body.i.i.i, label %_ZN2cv3Mat7releaseEv.exit.i.i
-
-_ZN2cv3Mat7releaseEv.exit.i.i:                    ; preds = %for.body.i.i.i, %if.end.i.i.i
-  %69 = load i64** %p.i.i3.i.i203, align 8, !tbaa !5
-  %cmp.i.i = icmp eq i64* %69, %arraydecay.i.i.i.i202
-  br i1 %cmp.i.i, label %_ZN2cv3MatD1Ev.exit, label %if.then.i.i205
-
-if.then.i.i205:                                   ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i
-  %70 = bitcast i64* %69 to i8*
-  call void @_ZN2cv8fastFreeEPv(i8* %70) #1
-  br label %_ZN2cv3MatD1Ev.exit
-
-_ZN2cv3MatD1Ev.exit:                              ; preds = %if.then.i.i205, %_ZN2cv3Mat7releaseEv.exit.i.i
-  %71 = load i32** %p.i.i.i.i, align 8, !tbaa !5
-  %72 = load i32* %71, align 4, !tbaa !9
-  %arrayidx.i208 = getelementptr inbounds i32* %71, i64 1
-  %73 = load i32* %arrayidx.i208, align 4, !tbaa !9
-  %flags.i.i210 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp42, i64 0, i32 0
-  store i32 1124007936, i32* %flags.i.i210, align 8, !tbaa !9
-  %dims.i.i211 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp42, i64 0, i32 1
-  %rows.i.i212 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp42, i64 0, i32 2
-  %p.i.i.i.i213 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp42, i64 0, i32 10, i32 0
-  %74 = bitcast i32* %dims.i.i211 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %74, i8 0, i64 60, i32 4, i1 false) #1
-  store i32* %rows.i.i212, i32** %p.i.i.i.i213, align 8, !tbaa !5
-  %arraydecay.i.i.i.i214 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp42, i64 0, i32 11, i32 1, i64 0
-  %p.i.i3.i.i215 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp42, i64 0, i32 11, i32 0
-  store i64* %arraydecay.i.i.i.i214, i64** %p.i.i3.i.i215, align 8, !tbaa !5
-  %75 = bitcast i64* %arraydecay.i.i.i.i214 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %75, i8 0, i64 16, i32 8, i1 false) #1
-  call void @llvm.lifetime.start(i64 8, i8* %61) #1
-  store i32 %72, i32* %arrayinit.begin.i.i.i, align 4, !tbaa !9
-  store i32 %73, i32* %arrayinit.element.i.i.i, align 4, !tbaa !9
-  call void @_ZN2cv3Mat6createEiPKii(%"class.cv::Mat"* %ref.tmp42, i32 2, i32* %arrayinit.begin.i.i.i, i32 5) #1
-  call void @llvm.lifetime.end(i64 8, i8* %61) #1
-  %call47 = call %"class.cv::Mat"* @_ZN2cv3MataSERKS0_(%"class.cv::Mat"* %E, %"class.cv::Mat"* %ref.tmp42)
-  %u.i.i.i218 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp42, i64 0, i32 9
-  %76 = load %"struct.cv::UMatData"** %u.i.i.i218, align 8, !tbaa !5
-  %tobool.i.i.i219 = icmp eq %"struct.cv::UMatData"* %76, null
-  br i1 %tobool.i.i.i219, label %if.end.i.i.i227, label %land.lhs.true.i.i.i222
-
-land.lhs.true.i.i.i222:                           ; preds = %_ZN2cv3MatD1Ev.exit
-  %refcount.i.i.i220 = getelementptr inbounds %"struct.cv::UMatData"* %76, i64 0, i32 3
-  %77 = atomicrmw add i32* %refcount.i.i.i220, i32 -1 acq_rel
-  %cmp.i.i.i221 = icmp eq i32 %77, 1
-  br i1 %cmp.i.i.i221, label %if.then.i.i.i223, label %if.end.i.i.i227
-
-if.then.i.i.i223:                                 ; preds = %land.lhs.true.i.i.i222
-  call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %ref.tmp42) #1
-  br label %if.end.i.i.i227
-
-if.end.i.i.i227:                                  ; preds = %if.then.i.i.i223, %land.lhs.true.i.i.i222, %_ZN2cv3MatD1Ev.exit
-  store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i218, align 8, !tbaa !5
-  %data.i.i.i224 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp42, i64 0, i32 4
-  %78 = bitcast i8** %data.i.i.i224 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %78, i8 0, i64 32, i32 8, i1 false) #1
-  %79 = load i32* %dims.i.i211, align 4, !tbaa !9
-  %cmp47.i.i.i226 = icmp sgt i32 %79, 0
-  br i1 %cmp47.i.i.i226, label %for.body.lr.ph.i.i.i229, label %_ZN2cv3Mat7releaseEv.exit.i.i238
-
-for.body.lr.ph.i.i.i229:                          ; preds = %if.end.i.i.i227
-  %80 = load i32** %p.i.i.i.i213, align 8, !tbaa !5
-  br label %for.body.i.i.i234
-
-for.body.i.i.i234:                                ; preds = %for.body.i.i.i234, %for.body.lr.ph.i.i.i229
-  %indvars.iv.i.i.i230 = phi i64 [ 0, %for.body.lr.ph.i.i.i229 ], [ %indvars.iv.next.i.i.i232, %for.body.i.i.i234 ]
-  %arrayidx.i.i.i231 = getelementptr inbounds i32* %80, i64 %indvars.iv.i.i.i230
-  store i32 0, i32* %arrayidx.i.i.i231, align 4, !tbaa !9
-  %indvars.iv.next.i.i.i232 = add i64 %indvars.iv.i.i.i230, 1
-  %81 = load i32* %dims.i.i211, align 4, !tbaa !9
-  %82 = trunc i64 %indvars.iv.next.i.i.i232 to i32
-  %cmp4.i.i.i233 = icmp slt i32 %82, %81
-  br i1 %cmp4.i.i.i233, label %for.body.i.i.i234, label %_ZN2cv3Mat7releaseEv.exit.i.i238
-
-_ZN2cv3Mat7releaseEv.exit.i.i238:                 ; preds = %for.body.i.i.i234, %if.end.i.i.i227
-  %83 = load i64** %p.i.i3.i.i215, align 8, !tbaa !5
-  %cmp.i.i237 = icmp eq i64* %83, %arraydecay.i.i.i.i214
-  br i1 %cmp.i.i237, label %_ZN2cv3MatD1Ev.exit240, label %if.then.i.i239
-
-if.then.i.i239:                                   ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i238
-  %84 = bitcast i64* %83 to i8*
-  call void @_ZN2cv8fastFreeEPv(i8* %84) #1
-  br label %_ZN2cv3MatD1Ev.exit240
-
-_ZN2cv3MatD1Ev.exit240:                           ; preds = %if.then.i.i239, %_ZN2cv3Mat7releaseEv.exit.i.i238
-  %85 = load i32** %p.i.i.i.i, align 8, !tbaa !5
-  %86 = load i32* %85, align 4, !tbaa !9
-  %arrayidx.i243 = getelementptr inbounds i32* %85, i64 1
-  %87 = load i32* %arrayidx.i243, align 4, !tbaa !9
-  %flags.i.i245 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp48, i64 0, i32 0
-  store i32 1124007936, i32* %flags.i.i245, align 8, !tbaa !9
-  %dims.i.i246 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp48, i64 0, i32 1
-  %rows.i.i247 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp48, i64 0, i32 2
-  %p.i.i.i.i248 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp48, i64 0, i32 10, i32 0
-  %88 = bitcast i32* %dims.i.i246 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %88, i8 0, i64 60, i32 4, i1 false) #1
-  store i32* %rows.i.i247, i32** %p.i.i.i.i248, align 8, !tbaa !5
-  %arraydecay.i.i.i.i249 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp48, i64 0, i32 11, i32 1, i64 0
-  %p.i.i3.i.i250 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp48, i64 0, i32 11, i32 0
-  store i64* %arraydecay.i.i.i.i249, i64** %p.i.i3.i.i250, align 8, !tbaa !5
-  %89 = bitcast i64* %arraydecay.i.i.i.i249 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %89, i8 0, i64 16, i32 8, i1 false) #1
-  call void @llvm.lifetime.start(i64 8, i8* %61) #1
-  store i32 %86, i32* %arrayinit.begin.i.i.i, align 4, !tbaa !9
-  store i32 %87, i32* %arrayinit.element.i.i.i, align 4, !tbaa !9
-  call void @_ZN2cv3Mat6createEiPKii(%"class.cv::Mat"* %ref.tmp48, i32 2, i32* %arrayinit.begin.i.i.i, i32 5) #1
-  call void @llvm.lifetime.end(i64 8, i8* %61) #1
-  %call53 = call %"class.cv::Mat"* @_ZN2cv3MataSERKS0_(%"class.cv::Mat"* %L, %"class.cv::Mat"* %ref.tmp48)
-  %u.i.i.i253 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp48, i64 0, i32 9
-  %90 = load %"struct.cv::UMatData"** %u.i.i.i253, align 8, !tbaa !5
-  %tobool.i.i.i254 = icmp eq %"struct.cv::UMatData"* %90, null
-  br i1 %tobool.i.i.i254, label %if.end.i.i.i262, label %land.lhs.true.i.i.i257
-
-land.lhs.true.i.i.i257:                           ; preds = %_ZN2cv3MatD1Ev.exit240
-  %refcount.i.i.i255 = getelementptr inbounds %"struct.cv::UMatData"* %90, i64 0, i32 3
-  %91 = atomicrmw add i32* %refcount.i.i.i255, i32 -1 acq_rel
-  %cmp.i.i.i256 = icmp eq i32 %91, 1
-  br i1 %cmp.i.i.i256, label %if.then.i.i.i258, label %if.end.i.i.i262
-
-if.then.i.i.i258:                                 ; preds = %land.lhs.true.i.i.i257
-  call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %ref.tmp48) #1
-  br label %if.end.i.i.i262
-
-if.end.i.i.i262:                                  ; preds = %if.then.i.i.i258, %land.lhs.true.i.i.i257, %_ZN2cv3MatD1Ev.exit240
-  store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i253, align 8, !tbaa !5
-  %data.i.i.i259 = getelementptr inbounds %"class.cv::Mat"* %ref.tmp48, i64 0, i32 4
-  %92 = bitcast i8** %data.i.i.i259 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %92, i8 0, i64 32, i32 8, i1 false) #1
-  %93 = load i32* %dims.i.i246, align 4, !tbaa !9
-  %cmp47.i.i.i261 = icmp sgt i32 %93, 0
-  br i1 %cmp47.i.i.i261, label %for.body.lr.ph.i.i.i264, label %_ZN2cv3Mat7releaseEv.exit.i.i273
-
-for.body.lr.ph.i.i.i264:                          ; preds = %if.end.i.i.i262
-  %94 = load i32** %p.i.i.i.i248, align 8, !tbaa !5
-  br label %for.body.i.i.i269
-
-for.body.i.i.i269:                                ; preds = %for.body.i.i.i269, %for.body.lr.ph.i.i.i264
-  %indvars.iv.i.i.i265 = phi i64 [ 0, %for.body.lr.ph.i.i.i264 ], [ %indvars.iv.next.i.i.i267, %for.body.i.i.i269 ]
-  %arrayidx.i.i.i266 = getelementptr inbounds i32* %94, i64 %indvars.iv.i.i.i265
-  store i32 0, i32* %arrayidx.i.i.i266, align 4, !tbaa !9
-  %indvars.iv.next.i.i.i267 = add i64 %indvars.iv.i.i.i265, 1
-  %95 = load i32* %dims.i.i246, align 4, !tbaa !9
-  %96 = trunc i64 %indvars.iv.next.i.i.i267 to i32
-  %cmp4.i.i.i268 = icmp slt i32 %96, %95
-  br i1 %cmp4.i.i.i268, label %for.body.i.i.i269, label %_ZN2cv3Mat7releaseEv.exit.i.i273
-
-_ZN2cv3Mat7releaseEv.exit.i.i273:                 ; preds = %for.body.i.i.i269, %if.end.i.i.i262
-  %97 = load i64** %p.i.i3.i.i250, align 8, !tbaa !5
-  %cmp.i.i272 = icmp eq i64* %97, %arraydecay.i.i.i.i249
-  br i1 %cmp.i.i272, label %_ZN2cv3MatD1Ev.exit275, label %if.then.i.i274
-
-if.then.i.i274:                                   ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i273
-  %98 = bitcast i64* %97 to i8*
-  call void @_ZN2cv8fastFreeEPv(i8* %98) #1
-  br label %_ZN2cv3MatD1Ev.exit275
-
-_ZN2cv3MatD1Ev.exit275:                           ; preds = %if.then.i.i274, %_ZN2cv3Mat7releaseEv.exit.i.i273
-  %99 = load i32* %flags.i.i, align 8, !tbaa !9
-  %and.i277 = and i32 %99, 16384
-  %cmp.i278 = icmp eq i32 %and.i277, 0
-  br i1 %cmp.i278, label %cond.false, label %land.lhs.true
-
-land.lhs.true:                                    ; preds = %_ZN2cv3MatD1Ev.exit275
-  %100 = load i32* %flags.i.i175, align 8, !tbaa !9
-  %and.i280 = and i32 %100, 16384
-  %cmp.i281 = icmp eq i32 %and.i280, 0
-  br i1 %cmp.i281, label %cond.false, label %land.lhs.true56
-
-land.lhs.true56:                                  ; preds = %land.lhs.true
-  %101 = load i32* %flags.i.i163, align 8, !tbaa !9
-  %and.i283 = and i32 %101, 16384
-  %cmp.i284 = icmp eq i32 %and.i283, 0
-  br i1 %cmp.i284, label %cond.false, label %land.lhs.true58
-
-land.lhs.true58:                                  ; preds = %land.lhs.true56
-  %102 = load i32* %flags.i.i169, align 8, !tbaa !9
-  %and.i286 = and i32 %102, 16384
-  %cmp.i287 = icmp eq i32 %and.i286, 0
-  br i1 %cmp.i287, label %cond.false, label %cond.end
-
-cond.false:                                       ; preds = %land.lhs.true58, %land.lhs.true56, %land.lhs.true, %_ZN2cv3MatD1Ev.exit275
-  call void @__assert_fail(i8* getelementptr inbounds ([79 x i8]* @.str13, i64 0, i64 0), i8* getelementptr inbounds ([22 x i8]* @.str14, i64 0, i64 0), i32 452, i8* getelementptr inbounds ([23 x i8]* @__PRETTY_FUNCTION__.main, i64 0, i64 0)) #8
-  unreachable
-
-cond.end:                                         ; preds = %land.lhs.true58
-  call void @pb_InitializeTimerSet(%struct.pb_TimerSet* %timers) #1
-  call void @llvm.hpvm.init()
-  %103 = load i32** %p.i.i.i.i, align 8, !tbaa !5
-  %104 = load i32* %103, align 4, !tbaa !9
-  %arrayidx.i290 = getelementptr inbounds i32* %103, i64 1
-  %105 = load i32* %arrayidx.i290, align 4, !tbaa !9
-  %mul = mul nsw i32 %105, %104
-  %conv64 = sext i32 %mul to i64
-  %mul65 = shl nsw i64 %conv64, 2
-  %106 = bitcast [9 x float]* %B to i8*
-  call void @llvm.lifetime.start(i64 36, i8* %106) #1
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %106, i8* bitcast ([9 x float]* @_ZZ4mainE1B to i8*), i64 36, i32 16, i1 false)
-  %107 = bitcast %"class.cv::Mat"* %in to i8*
-  call void @llvm.lifetime.start(i64 96, i8* %107) #1
-  %flags.i.i291 = getelementptr inbounds %"class.cv::Mat"* %in, i64 0, i32 0
-  store i32 1124007936, i32* %flags.i.i291, align 8, !tbaa !9
-  %dims.i.i292 = getelementptr inbounds %"class.cv::Mat"* %in, i64 0, i32 1
-  %rows.i.i293 = getelementptr inbounds %"class.cv::Mat"* %in, i64 0, i32 2
-  %p.i.i.i.i294 = getelementptr inbounds %"class.cv::Mat"* %in, i64 0, i32 10, i32 0
-  %108 = bitcast i32* %dims.i.i292 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %108, i8 0, i64 60, i32 4, i1 false) #1
-  store i32* %rows.i.i293, i32** %p.i.i.i.i294, align 8, !tbaa !5
-  %arraydecay.i.i.i.i295 = getelementptr inbounds %"class.cv::Mat"* %in, i64 0, i32 11, i32 1, i64 0
-  %p.i.i3.i.i296 = getelementptr inbounds %"class.cv::Mat"* %in, i64 0, i32 11, i32 0
-  store i64* %arraydecay.i.i.i.i295, i64** %p.i.i3.i.i296, align 8, !tbaa !5
-  %109 = bitcast i64* %arraydecay.i.i.i.i295 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %109, i8 0, i64 16, i32 8, i1 false) #1
-  %110 = bitcast %"class.cv::Mat"* %out to i8*
-  call void @llvm.lifetime.start(i64 96, i8* %110) #1
-  %flags.i.i297 = getelementptr inbounds %"class.cv::Mat"* %out, i64 0, i32 0
-  store i32 1124007936, i32* %flags.i.i297, align 8, !tbaa !9
-  %dims.i.i298 = getelementptr inbounds %"class.cv::Mat"* %out, i64 0, i32 1
-  %rows.i.i299 = getelementptr inbounds %"class.cv::Mat"* %out, i64 0, i32 2
-  %p.i.i.i.i300 = getelementptr inbounds %"class.cv::Mat"* %out, i64 0, i32 10, i32 0
-  %111 = bitcast i32* %dims.i.i298 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %111, i8 0, i64 60, i32 4, i1 false) #1
-  store i32* %rows.i.i299, i32** %p.i.i.i.i300, align 8, !tbaa !5
-  %arraydecay.i.i.i.i301 = getelementptr inbounds %"class.cv::Mat"* %out, i64 0, i32 11, i32 1, i64 0
-  %p.i.i3.i.i302 = getelementptr inbounds %"class.cv::Mat"* %out, i64 0, i32 11, i32 0
-  store i64* %arraydecay.i.i.i.i301, i64** %p.i.i3.i.i302, align 8, !tbaa !5
-  %112 = bitcast i64* %arraydecay.i.i.i.i301 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %112, i8 0, i64 16, i32 8, i1 false) #1
-  %call66 = call noalias i8* @malloc(i64 88) #1
-  %113 = load i32* %103, align 4, !tbaa !9
-  %114 = load i32* %arrayidx.i290, align 4, !tbaa !9
-  %mul71 = mul nsw i32 %114, %113
-  %rem120 = and i32 %mul71, 255
-  %cmp72 = icmp eq i32 %rem120, 0
-  br i1 %cmp72, label %cond.end75, label %cond.false74
-
-cond.false74:                                     ; preds = %cond.end
-  call void @__assert_fail(i8* getelementptr inbounds ([39 x i8]* @.str15, i64 0, i64 0), i8* getelementptr inbounds ([22 x i8]* @.str14, i64 0, i64 0), i32 482, i8* getelementptr inbounds ([23 x i8]* @__PRETTY_FUNCTION__.main, i64 0, i64 0)) #8
-  unreachable
-
-cond.end75:                                       ; preds = %cond.end
-  %115 = load i8*** %inpFiles, align 8, !tbaa !5
-  %116 = load i8** %115, align 8, !tbaa !5
-  %tobool.i.i306 = icmp eq i8* %116, null
-  %117 = bitcast %"class.cv::String"* %ref.tmp77 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %117, i8 0, i64 16, i32 8, i1 false) #1
-  br i1 %tobool.i.i306, label %_ZN2cv6StringC1EPKc.exit310, label %if.end.i.i309
-
-if.end.i.i309:                                    ; preds = %cond.end75
-  %call.i.i307 = call i64 @strlen(i8* %116) #9
-  %call2.i.i308 = call i8* @_ZN2cv6String8allocateEm(%"class.cv::String"* %ref.tmp77, i64 %call.i.i307) #1
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %call2.i.i308, i8* %116, i64 %call.i.i307, i32 1, i1 false) #1
-  br label %_ZN2cv6StringC1EPKc.exit310
-
-_ZN2cv6StringC1EPKc.exit310:                      ; preds = %if.end.i.i309, %cond.end75
-  call void @_ZN2cv12VideoCaptureC1ERKNS_6StringE(%"class.cv::VideoCapture"* %ref.tmp76, %"class.cv::String"* %ref.tmp77) #1
-  %owner2.i.i.i.i = getelementptr inbounds %"class.cv::VideoCapture"* %ref.tmp76, i64 0, i32 1, i32 0
-  %118 = load %"struct.cv::detail::PtrOwner"** %owner2.i.i.i.i, align 8, !tbaa !5
-  %stored3.i.i.i.i = getelementptr inbounds %"class.cv::VideoCapture"* %ref.tmp76, i64 0, i32 1, i32 1
-  %119 = load %struct.CvCapture** %stored3.i.i.i.i, align 8, !tbaa !5
-  %tobool.i.i.i.i = icmp eq %"struct.cv::detail::PtrOwner"* %118, null
-  br i1 %tobool.i.i.i.i, label %_ZN2cv3PtrI9CvCaptureEC1ERKS2_.exit.i.i, label %if.then.i.i.i.i
-
-if.then.i.i.i.i:                                  ; preds = %_ZN2cv6StringC1EPKc.exit310
-  %refCount.i.i.i.i.i = getelementptr inbounds %"struct.cv::detail::PtrOwner"* %118, i64 0, i32 1
-  %120 = atomicrmw add i32* %refCount.i.i.i.i.i, i32 1 acq_rel
-  br label %_ZN2cv3PtrI9CvCaptureEC1ERKS2_.exit.i.i
-
-_ZN2cv3PtrI9CvCaptureEC1ERKS2_.exit.i.i:          ; preds = %if.then.i.i.i.i, %_ZN2cv6StringC1EPKc.exit310
-  %owner2.i.i.i = getelementptr inbounds %"class.cv::VideoCapture"* %cap, i64 0, i32 1, i32 0
-  %121 = load %"struct.cv::detail::PtrOwner"** %owner2.i.i.i, align 8, !tbaa !5
-  store %"struct.cv::detail::PtrOwner"* %118, %"struct.cv::detail::PtrOwner"** %owner2.i.i.i, align 8, !tbaa !5
-  %stored3.i.i.i = getelementptr inbounds %"class.cv::VideoCapture"* %cap, i64 0, i32 1, i32 1
-  store %struct.CvCapture* %119, %struct.CvCapture** %stored3.i.i.i, align 8, !tbaa !5
-  %tobool.i.i.i.i.i = icmp eq %"struct.cv::detail::PtrOwner"* %121, null
-  br i1 %tobool.i.i.i.i.i, label %_ZN2cv3PtrI9CvCaptureEaSERKS2_.exit.i, label %if.then.i.i.i.i.i
-
-if.then.i.i.i.i.i:                                ; preds = %_ZN2cv3PtrI9CvCaptureEC1ERKS2_.exit.i.i
-  %refCount.i.i.i.i.i.i = getelementptr inbounds %"struct.cv::detail::PtrOwner"* %121, i64 0, i32 1
-  %122 = atomicrmw add i32* %refCount.i.i.i.i.i.i, i32 -1 acq_rel
-  %cmp.i.i.i.i.i.i = icmp eq i32 %122, 1
-  br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %_ZN2cv3PtrI9CvCaptureEaSERKS2_.exit.i
-
-if.then.i.i.i.i.i.i:                              ; preds = %if.then.i.i.i.i.i
-  %123 = bitcast %"struct.cv::detail::PtrOwner"* %121 to void (%"struct.cv::detail::PtrOwner"*)***
-  %vtable.i.i.i.i.i.i = load void (%"struct.cv::detail::PtrOwner"*)*** %123, align 8, !tbaa !12
-  %vfn.i.i.i.i.i.i = getelementptr inbounds void (%"struct.cv::detail::PtrOwner"*)** %vtable.i.i.i.i.i.i, i64 2
-  %124 = load void (%"struct.cv::detail::PtrOwner"*)** %vfn.i.i.i.i.i.i, align 8
-  call void %124(%"struct.cv::detail::PtrOwner"* %121) #1
-  br label %_ZN2cv3PtrI9CvCaptureEaSERKS2_.exit.i
-
-_ZN2cv3PtrI9CvCaptureEaSERKS2_.exit.i:            ; preds = %if.then.i.i.i.i.i.i, %if.then.i.i.i.i.i, %_ZN2cv3PtrI9CvCaptureEC1ERKS2_.exit.i.i
-  %owner2.i.i.i6.i = getelementptr inbounds %"class.cv::VideoCapture"* %ref.tmp76, i64 0, i32 2, i32 0
-  %125 = load %"struct.cv::detail::PtrOwner"** %owner2.i.i.i6.i, align 8, !tbaa !5
-  %stored3.i.i.i7.i = getelementptr inbounds %"class.cv::VideoCapture"* %ref.tmp76, i64 0, i32 2, i32 1
-  %126 = load %"class.cv::IVideoCapture"** %stored3.i.i.i7.i, align 8, !tbaa !5
-  %tobool.i.i.i8.i = icmp eq %"struct.cv::detail::PtrOwner"* %125, null
-  br i1 %tobool.i.i.i8.i, label %_ZN2cv3PtrINS_13IVideoCaptureEEC1ERKS2_.exit.i.i, label %if.then.i.i.i10.i
-
-if.then.i.i.i10.i:                                ; preds = %_ZN2cv3PtrI9CvCaptureEaSERKS2_.exit.i
-  %refCount.i.i.i.i9.i = getelementptr inbounds %"struct.cv::detail::PtrOwner"* %125, i64 0, i32 1
-  %127 = atomicrmw add i32* %refCount.i.i.i.i9.i, i32 1 acq_rel
-  br label %_ZN2cv3PtrINS_13IVideoCaptureEEC1ERKS2_.exit.i.i
-
-_ZN2cv3PtrINS_13IVideoCaptureEEC1ERKS2_.exit.i.i: ; preds = %if.then.i.i.i10.i, %_ZN2cv3PtrI9CvCaptureEaSERKS2_.exit.i
-  %owner2.i.i11.i = getelementptr inbounds %"class.cv::VideoCapture"* %cap, i64 0, i32 2, i32 0
-  %128 = load %"struct.cv::detail::PtrOwner"** %owner2.i.i11.i, align 8, !tbaa !5
-  store %"struct.cv::detail::PtrOwner"* %125, %"struct.cv::detail::PtrOwner"** %owner2.i.i11.i, align 8, !tbaa !5
-  %stored3.i.i12.i = getelementptr inbounds %"class.cv::VideoCapture"* %cap, i64 0, i32 2, i32 1
-  store %"class.cv::IVideoCapture"* %126, %"class.cv::IVideoCapture"** %stored3.i.i12.i, align 8, !tbaa !5
-  %tobool.i.i.i.i13.i = icmp eq %"struct.cv::detail::PtrOwner"* %128, null
-  br i1 %tobool.i.i.i.i13.i, label %_ZN2cv12VideoCaptureaSERKS0_.exit, label %if.then.i.i.i.i16.i
-
-if.then.i.i.i.i16.i:                              ; preds = %_ZN2cv3PtrINS_13IVideoCaptureEEC1ERKS2_.exit.i.i
-  %refCount.i.i.i.i.i14.i = getelementptr inbounds %"struct.cv::detail::PtrOwner"* %128, i64 0, i32 1
-  %129 = atomicrmw add i32* %refCount.i.i.i.i.i14.i, i32 -1 acq_rel
-  %cmp.i.i.i.i.i15.i = icmp eq i32 %129, 1
-  br i1 %cmp.i.i.i.i.i15.i, label %if.then.i.i.i.i.i19.i, label %_ZN2cv12VideoCaptureaSERKS0_.exit
-
-if.then.i.i.i.i.i19.i:                            ; preds = %if.then.i.i.i.i16.i
-  %130 = bitcast %"struct.cv::detail::PtrOwner"* %128 to void (%"struct.cv::detail::PtrOwner"*)***
-  %vtable.i.i.i.i.i17.i = load void (%"struct.cv::detail::PtrOwner"*)*** %130, align 8, !tbaa !12
-  %vfn.i.i.i.i.i18.i = getelementptr inbounds void (%"struct.cv::detail::PtrOwner"*)** %vtable.i.i.i.i.i17.i, i64 2
-  %131 = load void (%"struct.cv::detail::PtrOwner"*)** %vfn.i.i.i.i.i18.i, align 8
-  call void %131(%"struct.cv::detail::PtrOwner"* %128) #1
-  br label %_ZN2cv12VideoCaptureaSERKS0_.exit
-
-_ZN2cv12VideoCaptureaSERKS0_.exit:                ; preds = %if.then.i.i.i.i.i19.i, %if.then.i.i.i.i16.i, %_ZN2cv3PtrINS_13IVideoCaptureEEC1ERKS2_.exit.i.i
-  call void @_ZN2cv12VideoCaptureD1Ev(%"class.cv::VideoCapture"* %ref.tmp76) #1
-  call void @_ZN2cv6String10deallocateEv(%"class.cv::String"* %ref.tmp77) #1
-  %132 = bitcast %"class.cv::_InputArray"* %ref.tmp.i311 to i8*
-  call void @llvm.lifetime.start(i64 24, i8* %132) #1
-  %133 = bitcast %"class.cv::_OutputArray"* %ref.tmp2.i312 to i8*
-  call void @llvm.lifetime.start(i64 24, i8* %133) #1
-  %134 = bitcast %"class.cv::_OutputArray"* %ref.tmp3.i313 to i8*
-  call void @llvm.lifetime.start(i64 24, i8* %134) #1
-  %vtable.i314 = load %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)*** %47, align 8, !tbaa !12
-  %vfn.i315 = getelementptr inbounds %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)** %vtable.i314, i64 8
-  %135 = load %"class.cv::VideoCapture"* (%"class.cv::VideoCapture"*, %"class.cv::Mat"*)** %vfn.i315, align 8
-  %call.i316 = call %"class.cv::VideoCapture"* %135(%"class.cv::VideoCapture"* %cap, %"class.cv::Mat"* %src) #1
-  %136 = load i32* %flags.i.i, align 8, !tbaa !9
-  %shr2.i.i318 = and i32 %136, 4088
-  %cmp.i319 = icmp eq i32 %shr2.i.i318, 16
-  br i1 %cmp.i319, label %if.then.i328, label %_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit332
-
-if.then.i328:                                     ; preds = %_ZN2cv12VideoCaptureaSERKS0_.exit
-  %width.i.i.i.i.i322 = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp.i311, i64 0, i32 2, i32 0
-  store i32 0, i32* %width.i.i.i.i.i322, align 8, !tbaa !9
-  %height.i.i.i.i.i323 = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp.i311, i64 0, i32 2, i32 1
-  store i32 0, i32* %height.i.i.i.i.i323, align 4, !tbaa !9
-  %flags.i.i.i.i324 = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp.i311, i64 0, i32 0
-  store i32 16842752, i32* %flags.i.i.i.i324, align 8, !tbaa !9
-  %obj.i.i.i.i325 = getelementptr inbounds %"class.cv::_InputArray"* %ref.tmp.i311, i64 0, i32 1
-  store i8* %32, i8** %obj.i.i.i.i325, align 8, !tbaa !5
-  %flags.i.i.i.i9.i326 = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp2.i312, i64 0, i32 0, i32 0
-  %obj.i.i.i.i10.i327 = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp2.i312, i64 0, i32 0, i32 1
-  %137 = bitcast i8** %obj.i.i.i.i10.i327 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %137, i8 0, i64 16, i32 8, i1 false) #1
-  store i32 33619968, i32* %flags.i.i.i.i9.i326, align 8, !tbaa !9
-  store i8* %32, i8** %obj.i.i.i.i10.i327, align 8, !tbaa !5
-  call void @_ZN2cv8cvtColorERKNS_11_InputArrayERKNS_12_OutputArrayEii(%"class.cv::_InputArray"* %ref.tmp.i311, %"class.cv::_OutputArray"* %ref.tmp2.i312, i32 6, i32 0) #1
-  br label %_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit332
-
-_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit332: ; preds = %if.then.i328, %_ZN2cv12VideoCaptureaSERKS0_.exit
-  %flags.i.i.i.i.i330 = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp3.i313, i64 0, i32 0, i32 0
-  %obj.i.i.i.i.i331 = getelementptr inbounds %"class.cv::_OutputArray"* %ref.tmp3.i313, i64 0, i32 0, i32 1
-  %138 = bitcast i8** %obj.i.i.i.i.i331 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %138, i8 0, i64 16, i32 8, i1 false) #1
-  store i32 33619968, i32* %flags.i.i.i.i.i330, align 8, !tbaa !9
-  store i8* %32, i8** %obj.i.i.i.i.i331, align 8, !tbaa !5
-  call void @_ZNK2cv3Mat9convertToERKNS_12_OutputArrayEidd(%"class.cv::Mat"* %src, %"class.cv::_OutputArray"* %ref.tmp3.i313, i32 5, double 0x3F70101010101010, double 0.000000e+00) #1
-  call void @llvm.lifetime.end(i64 24, i8* %132) #1
-  call void @llvm.lifetime.end(i64 24, i8* %133) #1
-  call void @llvm.lifetime.end(i64 24, i8* %134) #1
-  %data = getelementptr inbounds %"class.cv::Mat"* %src, i64 0, i32 4
-  %139 = load i8** %data, align 8, !tbaa !5
-  call void @llvm_hpvm_track_mem(i8* %139, i64 %mul65) #1
-  %arraydecay = getelementptr inbounds [9 x float]* %B, i64 0, i64 0
-  call void @llvm_hpvm_track_mem(i8* %106, i64 36) #1
-  %data81 = getelementptr inbounds %"class.cv::Mat"* %D, i64 0, i32 4
-  %140 = load i8** %data81, align 8, !tbaa !5
-  call void @llvm_hpvm_track_mem(i8* %140, i64 %mul65) #1
-  %data82 = getelementptr inbounds %"class.cv::Mat"* %E, i64 0, i32 4
-  %141 = load i8** %data82, align 8, !tbaa !5
-  call void @llvm_hpvm_track_mem(i8* %141, i64 %mul65) #1
-  %data83 = getelementptr inbounds %"class.cv::Mat"* %L, i64 0, i32 4
-  %142 = load i8** %data83, align 8, !tbaa !5
-  call void @llvm_hpvm_track_mem(i8* %142, i64 %mul65) #1
-  %143 = load i8** %data, align 8, !tbaa !5
-  %144 = bitcast i8* %143 to float*
-  %145 = load i8** %data81, align 8, !tbaa !5
-  %146 = bitcast i8* %145 to float*
-  %147 = load i8** %data82, align 8, !tbaa !5
-  %148 = bitcast i8* %147 to float*
-  %149 = load i8** %data83, align 8, !tbaa !5
-  %150 = bitcast i8* %149 to float*
-  %151 = load i32** %p.i.i.i.i, align 8, !tbaa !5
-  %152 = load i32* %151, align 4, !tbaa !9
-  %arrayidx.i335 = getelementptr inbounds i32* %151, i64 1
-  %153 = load i32* %arrayidx.i335, align 4, !tbaa !9
-  %I1.i = bitcast i8* %call66 to float**
-  store float* %144, float** %I1.i, align 1, !tbaa !5
-  %bytesI2.i = getelementptr inbounds i8* %call66, i64 8
-  %154 = bitcast i8* %bytesI2.i to i64*
-  store i64 %mul65, i64* %154, align 1, !tbaa !10
-  %B3.i = getelementptr inbounds i8* %call66, i64 16
-  %155 = bitcast i8* %B3.i to float**
-  store float* %arraydecay, float** %155, align 1, !tbaa !5
-  %bytesB4.i = getelementptr inbounds i8* %call66, i64 24
-  %156 = bitcast i8* %bytesB4.i to i64*
-  store i64 36, i64* %156, align 1, !tbaa !10
-  %D5.i = getelementptr inbounds i8* %call66, i64 32
-  %157 = bitcast i8* %D5.i to float**
-  store float* %146, float** %157, align 1, !tbaa !5
-  %bytesD6.i = getelementptr inbounds i8* %call66, i64 40
-  %158 = bitcast i8* %bytesD6.i to i64*
-  store i64 %mul65, i64* %158, align 1, !tbaa !10
-  %E7.i = getelementptr inbounds i8* %call66, i64 48
-  %159 = bitcast i8* %E7.i to float**
-  store float* %148, float** %159, align 1, !tbaa !5
-  %bytesE8.i = getelementptr inbounds i8* %call66, i64 56
-  %160 = bitcast i8* %bytesE8.i to i64*
-  store i64 %mul65, i64* %160, align 1, !tbaa !10
-  %L9.i = getelementptr inbounds i8* %call66, i64 64
-  %161 = bitcast i8* %L9.i to float**
-  store float* %150, float** %161, align 1, !tbaa !5
-  %bytesL10.i = getelementptr inbounds i8* %call66, i64 72
-  %162 = bitcast i8* %bytesL10.i to i64*
-  store i64 %mul65, i64* %162, align 1, !tbaa !10
-  %m11.i = getelementptr inbounds i8* %call66, i64 80
-  %163 = bitcast i8* %m11.i to i32*
-  store i32 %152, i32* %163, align 1, !tbaa !9
-  %n12.i = getelementptr inbounds i8* %call66, i64 84
-  %164 = bitcast i8* %n12.i to i32*
-  store i32 %153, i32* %164, align 1, !tbaa !9
-  call void @pb_SwitchToTimer(%struct.pb_TimerSet* %timers, i32 21) #1
-  br label %for.body
-
-for.body:                                         ; preds = %for.body, %_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit332
-  %j.0474 = phi i32 [ 0, %_Z12getNextFrameRN2cv12VideoCaptureERNS_3MatE.exit332 ], [ %inc, %for.body ]
-  %graphID = call i8* @llvm.hpvm.launch(i8* bitcast (%emptyStruct.24 (float*, i64, float*, i64, float*, i64, float*, i64, float*, i64, i32, i32)* @LaplacianEstimate to i8*), i8* %call66, i1 false)
-  call void @llvm.hpvm.wait(i8* %graphID)
-  %inc = add nsw i32 %j.0474, 1
-  %exitcond = icmp eq i32 %inc, 2994
-  br i1 %exitcond, label %for.end, label %for.body
-
-for.end:                                          ; preds = %for.body
-  call void @pb_SwitchToTimer(%struct.pb_TimerSet* %timers, i32 0) #1
-  %165 = load i8** %data83, align 8, !tbaa !5
-  call void @llvm_hpvm_request_mem(i8* %165, i64 %mul65) #1
-  %166 = load i8** %data, align 8, !tbaa !5
-  call void @llvm_hpvm_untrack_mem(i8* %166) #1
-  call void @llvm_hpvm_untrack_mem(i8* %106) #1
-  %167 = load i8** %data81, align 8, !tbaa !5
-  call void @llvm_hpvm_untrack_mem(i8* %167) #1
-  %168 = load i8** %data82, align 8, !tbaa !5
-  call void @llvm_hpvm_untrack_mem(i8* %168) #1
-  %169 = load i8** %data83, align 8, !tbaa !5
-  call void @llvm_hpvm_untrack_mem(i8* %169) #1
-  call void @pb_PrintTimerSet(%struct.pb_TimerSet* %timers) #1
-  call void @llvm.hpvm.cleanup()
-  call void @pb_FreeParameters(%struct.pb_Parameters* %call3) #1
-  %u.i.i.i336 = getelementptr inbounds %"class.cv::Mat"* %out, i64 0, i32 9
-  %170 = load %"struct.cv::UMatData"** %u.i.i.i336, align 8, !tbaa !5
-  %tobool.i.i.i337 = icmp eq %"struct.cv::UMatData"* %170, null
-  br i1 %tobool.i.i.i337, label %if.end.i.i.i345, label %land.lhs.true.i.i.i340
-
-land.lhs.true.i.i.i340:                           ; preds = %for.end
-  %refcount.i.i.i338 = getelementptr inbounds %"struct.cv::UMatData"* %170, i64 0, i32 3
-  %171 = atomicrmw add i32* %refcount.i.i.i338, i32 -1 acq_rel
-  %cmp.i.i.i339 = icmp eq i32 %171, 1
-  br i1 %cmp.i.i.i339, label %if.then.i.i.i341, label %if.end.i.i.i345
-
-if.then.i.i.i341:                                 ; preds = %land.lhs.true.i.i.i340
-  call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %out) #1
-  br label %if.end.i.i.i345
-
-if.end.i.i.i345:                                  ; preds = %if.then.i.i.i341, %land.lhs.true.i.i.i340, %for.end
-  store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i336, align 8, !tbaa !5
-  %data.i.i.i342 = getelementptr inbounds %"class.cv::Mat"* %out, i64 0, i32 4
-  %172 = bitcast i8** %data.i.i.i342 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %172, i8 0, i64 32, i32 8, i1 false) #1
-  %173 = load i32* %dims.i.i298, align 4, !tbaa !9
-  %cmp47.i.i.i344 = icmp sgt i32 %173, 0
-  br i1 %cmp47.i.i.i344, label %for.body.lr.ph.i.i.i347, label %_ZN2cv3Mat7releaseEv.exit.i.i356
-
-for.body.lr.ph.i.i.i347:                          ; preds = %if.end.i.i.i345
-  %174 = load i32** %p.i.i.i.i300, align 8, !tbaa !5
-  br label %for.body.i.i.i352
-
-for.body.i.i.i352:                                ; preds = %for.body.i.i.i352, %for.body.lr.ph.i.i.i347
-  %indvars.iv.i.i.i348 = phi i64 [ 0, %for.body.lr.ph.i.i.i347 ], [ %indvars.iv.next.i.i.i350, %for.body.i.i.i352 ]
-  %arrayidx.i.i.i349 = getelementptr inbounds i32* %174, i64 %indvars.iv.i.i.i348
-  store i32 0, i32* %arrayidx.i.i.i349, align 4, !tbaa !9
-  %indvars.iv.next.i.i.i350 = add i64 %indvars.iv.i.i.i348, 1
-  %175 = load i32* %dims.i.i298, align 4, !tbaa !9
-  %176 = trunc i64 %indvars.iv.next.i.i.i350 to i32
-  %cmp4.i.i.i351 = icmp slt i32 %176, %175
-  br i1 %cmp4.i.i.i351, label %for.body.i.i.i352, label %_ZN2cv3Mat7releaseEv.exit.i.i356
-
-_ZN2cv3Mat7releaseEv.exit.i.i356:                 ; preds = %for.body.i.i.i352, %if.end.i.i.i345
-  %177 = load i64** %p.i.i3.i.i302, align 8, !tbaa !5
-  %cmp.i.i355 = icmp eq i64* %177, %arraydecay.i.i.i.i301
-  br i1 %cmp.i.i355, label %_ZN2cv3MatD1Ev.exit358, label %if.then.i.i357
-
-if.then.i.i357:                                   ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i356
-  %178 = bitcast i64* %177 to i8*
-  call void @_ZN2cv8fastFreeEPv(i8* %178) #1
-  br label %_ZN2cv3MatD1Ev.exit358
-
-_ZN2cv3MatD1Ev.exit358:                           ; preds = %if.then.i.i357, %_ZN2cv3Mat7releaseEv.exit.i.i356
-  call void @llvm.lifetime.end(i64 96, i8* %110) #1
-  %u.i.i.i359 = getelementptr inbounds %"class.cv::Mat"* %in, i64 0, i32 9
-  %179 = load %"struct.cv::UMatData"** %u.i.i.i359, align 8, !tbaa !5
-  %tobool.i.i.i360 = icmp eq %"struct.cv::UMatData"* %179, null
-  br i1 %tobool.i.i.i360, label %if.end.i.i.i368, label %land.lhs.true.i.i.i363
-
-land.lhs.true.i.i.i363:                           ; preds = %_ZN2cv3MatD1Ev.exit358
-  %refcount.i.i.i361 = getelementptr inbounds %"struct.cv::UMatData"* %179, i64 0, i32 3
-  %180 = atomicrmw add i32* %refcount.i.i.i361, i32 -1 acq_rel
-  %cmp.i.i.i362 = icmp eq i32 %180, 1
-  br i1 %cmp.i.i.i362, label %if.then.i.i.i364, label %if.end.i.i.i368
-
-if.then.i.i.i364:                                 ; preds = %land.lhs.true.i.i.i363
-  call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %in) #1
-  br label %if.end.i.i.i368
-
-if.end.i.i.i368:                                  ; preds = %if.then.i.i.i364, %land.lhs.true.i.i.i363, %_ZN2cv3MatD1Ev.exit358
-  store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i359, align 8, !tbaa !5
-  %data.i.i.i365 = getelementptr inbounds %"class.cv::Mat"* %in, i64 0, i32 4
-  %181 = bitcast i8** %data.i.i.i365 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %181, i8 0, i64 32, i32 8, i1 false) #1
-  %182 = load i32* %dims.i.i292, align 4, !tbaa !9
-  %cmp47.i.i.i367 = icmp sgt i32 %182, 0
-  br i1 %cmp47.i.i.i367, label %for.body.lr.ph.i.i.i370, label %_ZN2cv3Mat7releaseEv.exit.i.i379
-
-for.body.lr.ph.i.i.i370:                          ; preds = %if.end.i.i.i368
-  %183 = load i32** %p.i.i.i.i294, align 8, !tbaa !5
-  br label %for.body.i.i.i375
-
-for.body.i.i.i375:                                ; preds = %for.body.i.i.i375, %for.body.lr.ph.i.i.i370
-  %indvars.iv.i.i.i371 = phi i64 [ 0, %for.body.lr.ph.i.i.i370 ], [ %indvars.iv.next.i.i.i373, %for.body.i.i.i375 ]
-  %arrayidx.i.i.i372 = getelementptr inbounds i32* %183, i64 %indvars.iv.i.i.i371
-  store i32 0, i32* %arrayidx.i.i.i372, align 4, !tbaa !9
-  %indvars.iv.next.i.i.i373 = add i64 %indvars.iv.i.i.i371, 1
-  %184 = load i32* %dims.i.i292, align 4, !tbaa !9
-  %185 = trunc i64 %indvars.iv.next.i.i.i373 to i32
-  %cmp4.i.i.i374 = icmp slt i32 %185, %184
-  br i1 %cmp4.i.i.i374, label %for.body.i.i.i375, label %_ZN2cv3Mat7releaseEv.exit.i.i379
-
-_ZN2cv3Mat7releaseEv.exit.i.i379:                 ; preds = %for.body.i.i.i375, %if.end.i.i.i368
-  %186 = load i64** %p.i.i3.i.i296, align 8, !tbaa !5
-  %cmp.i.i378 = icmp eq i64* %186, %arraydecay.i.i.i.i295
-  br i1 %cmp.i.i378, label %_ZN2cv3MatD1Ev.exit381, label %if.then.i.i380
-
-if.then.i.i380:                                   ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i379
-  %187 = bitcast i64* %186 to i8*
-  call void @_ZN2cv8fastFreeEPv(i8* %187) #1
-  br label %_ZN2cv3MatD1Ev.exit381
-
-_ZN2cv3MatD1Ev.exit381:                           ; preds = %if.then.i.i380, %_ZN2cv3Mat7releaseEv.exit.i.i379
-  call void @llvm.lifetime.end(i64 96, i8* %107) #1
-  call void @llvm.lifetime.end(i64 36, i8* %106) #1
-  %u.i.i.i382 = getelementptr inbounds %"class.cv::Mat"* %L, i64 0, i32 9
-  %188 = load %"struct.cv::UMatData"** %u.i.i.i382, align 8, !tbaa !5
-  %tobool.i.i.i383 = icmp eq %"struct.cv::UMatData"* %188, null
-  br i1 %tobool.i.i.i383, label %if.end.i.i.i391, label %land.lhs.true.i.i.i386
-
-land.lhs.true.i.i.i386:                           ; preds = %_ZN2cv3MatD1Ev.exit381
-  %refcount.i.i.i384 = getelementptr inbounds %"struct.cv::UMatData"* %188, i64 0, i32 3
-  %189 = atomicrmw add i32* %refcount.i.i.i384, i32 -1 acq_rel
-  %cmp.i.i.i385 = icmp eq i32 %189, 1
-  br i1 %cmp.i.i.i385, label %if.then.i.i.i387, label %if.end.i.i.i391
-
-if.then.i.i.i387:                                 ; preds = %land.lhs.true.i.i.i386
-  call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %L) #1
-  br label %if.end.i.i.i391
-
-if.end.i.i.i391:                                  ; preds = %if.then.i.i.i387, %land.lhs.true.i.i.i386, %_ZN2cv3MatD1Ev.exit381
-  store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i382, align 8, !tbaa !5
-  %190 = bitcast i8** %data83 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %190, i8 0, i64 32, i32 8, i1 false) #1
-  %191 = load i32* %dims.i.i176, align 4, !tbaa !9
-  %cmp47.i.i.i390 = icmp sgt i32 %191, 0
-  br i1 %cmp47.i.i.i390, label %for.body.lr.ph.i.i.i393, label %_ZN2cv3Mat7releaseEv.exit.i.i402
-
-for.body.lr.ph.i.i.i393:                          ; preds = %if.end.i.i.i391
-  %192 = load i32** %p.i.i.i.i178, align 8, !tbaa !5
-  br label %for.body.i.i.i398
-
-for.body.i.i.i398:                                ; preds = %for.body.i.i.i398, %for.body.lr.ph.i.i.i393
-  %indvars.iv.i.i.i394 = phi i64 [ 0, %for.body.lr.ph.i.i.i393 ], [ %indvars.iv.next.i.i.i396, %for.body.i.i.i398 ]
-  %arrayidx.i.i.i395 = getelementptr inbounds i32* %192, i64 %indvars.iv.i.i.i394
-  store i32 0, i32* %arrayidx.i.i.i395, align 4, !tbaa !9
-  %indvars.iv.next.i.i.i396 = add i64 %indvars.iv.i.i.i394, 1
-  %193 = load i32* %dims.i.i176, align 4, !tbaa !9
-  %194 = trunc i64 %indvars.iv.next.i.i.i396 to i32
-  %cmp4.i.i.i397 = icmp slt i32 %194, %193
-  br i1 %cmp4.i.i.i397, label %for.body.i.i.i398, label %_ZN2cv3Mat7releaseEv.exit.i.i402
-
-_ZN2cv3Mat7releaseEv.exit.i.i402:                 ; preds = %for.body.i.i.i398, %if.end.i.i.i391
-  %195 = load i64** %p.i.i3.i.i180, align 8, !tbaa !5
-  %cmp.i.i401 = icmp eq i64* %195, %arraydecay.i.i.i.i179
-  br i1 %cmp.i.i401, label %_ZN2cv3MatD1Ev.exit404, label %if.then.i.i403
-
-if.then.i.i403:                                   ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i402
-  %196 = bitcast i64* %195 to i8*
-  call void @_ZN2cv8fastFreeEPv(i8* %196) #1
-  br label %_ZN2cv3MatD1Ev.exit404
-
-_ZN2cv3MatD1Ev.exit404:                           ; preds = %if.then.i.i403, %_ZN2cv3Mat7releaseEv.exit.i.i402
-  call void @llvm.lifetime.end(i64 96, i8* %41) #1
-  %u.i.i.i405 = getelementptr inbounds %"class.cv::Mat"* %E, i64 0, i32 9
-  %197 = load %"struct.cv::UMatData"** %u.i.i.i405, align 8, !tbaa !5
-  %tobool.i.i.i406 = icmp eq %"struct.cv::UMatData"* %197, null
-  br i1 %tobool.i.i.i406, label %if.end.i.i.i414, label %land.lhs.true.i.i.i409
-
-land.lhs.true.i.i.i409:                           ; preds = %_ZN2cv3MatD1Ev.exit404
-  %refcount.i.i.i407 = getelementptr inbounds %"struct.cv::UMatData"* %197, i64 0, i32 3
-  %198 = atomicrmw add i32* %refcount.i.i.i407, i32 -1 acq_rel
-  %cmp.i.i.i408 = icmp eq i32 %198, 1
-  br i1 %cmp.i.i.i408, label %if.then.i.i.i410, label %if.end.i.i.i414
-
-if.then.i.i.i410:                                 ; preds = %land.lhs.true.i.i.i409
-  call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %E) #1
-  br label %if.end.i.i.i414
-
-if.end.i.i.i414:                                  ; preds = %if.then.i.i.i410, %land.lhs.true.i.i.i409, %_ZN2cv3MatD1Ev.exit404
-  store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i405, align 8, !tbaa !5
-  %199 = bitcast i8** %data82 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %199, i8 0, i64 32, i32 8, i1 false) #1
-  %200 = load i32* %dims.i.i170, align 4, !tbaa !9
-  %cmp47.i.i.i413 = icmp sgt i32 %200, 0
-  br i1 %cmp47.i.i.i413, label %for.body.lr.ph.i.i.i416, label %_ZN2cv3Mat7releaseEv.exit.i.i425
-
-for.body.lr.ph.i.i.i416:                          ; preds = %if.end.i.i.i414
-  %201 = load i32** %p.i.i.i.i172, align 8, !tbaa !5
-  br label %for.body.i.i.i421
-
-for.body.i.i.i421:                                ; preds = %for.body.i.i.i421, %for.body.lr.ph.i.i.i416
-  %indvars.iv.i.i.i417 = phi i64 [ 0, %for.body.lr.ph.i.i.i416 ], [ %indvars.iv.next.i.i.i419, %for.body.i.i.i421 ]
-  %arrayidx.i.i.i418 = getelementptr inbounds i32* %201, i64 %indvars.iv.i.i.i417
-  store i32 0, i32* %arrayidx.i.i.i418, align 4, !tbaa !9
-  %indvars.iv.next.i.i.i419 = add i64 %indvars.iv.i.i.i417, 1
-  %202 = load i32* %dims.i.i170, align 4, !tbaa !9
-  %203 = trunc i64 %indvars.iv.next.i.i.i419 to i32
-  %cmp4.i.i.i420 = icmp slt i32 %203, %202
-  br i1 %cmp4.i.i.i420, label %for.body.i.i.i421, label %_ZN2cv3Mat7releaseEv.exit.i.i425
-
-_ZN2cv3Mat7releaseEv.exit.i.i425:                 ; preds = %for.body.i.i.i421, %if.end.i.i.i414
-  %204 = load i64** %p.i.i3.i.i174, align 8, !tbaa !5
-  %cmp.i.i424 = icmp eq i64* %204, %arraydecay.i.i.i.i173
-  br i1 %cmp.i.i424, label %_ZN2cv3MatD1Ev.exit427, label %if.then.i.i426
-
-if.then.i.i426:                                   ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i425
-  %205 = bitcast i64* %204 to i8*
-  call void @_ZN2cv8fastFreeEPv(i8* %205) #1
-  br label %_ZN2cv3MatD1Ev.exit427
-
-_ZN2cv3MatD1Ev.exit427:                           ; preds = %if.then.i.i426, %_ZN2cv3Mat7releaseEv.exit.i.i425
-  call void @llvm.lifetime.end(i64 96, i8* %38) #1
-  %u.i.i.i428 = getelementptr inbounds %"class.cv::Mat"* %D, i64 0, i32 9
-  %206 = load %"struct.cv::UMatData"** %u.i.i.i428, align 8, !tbaa !5
-  %tobool.i.i.i429 = icmp eq %"struct.cv::UMatData"* %206, null
-  br i1 %tobool.i.i.i429, label %if.end.i.i.i437, label %land.lhs.true.i.i.i432
-
-land.lhs.true.i.i.i432:                           ; preds = %_ZN2cv3MatD1Ev.exit427
-  %refcount.i.i.i430 = getelementptr inbounds %"struct.cv::UMatData"* %206, i64 0, i32 3
-  %207 = atomicrmw add i32* %refcount.i.i.i430, i32 -1 acq_rel
-  %cmp.i.i.i431 = icmp eq i32 %207, 1
-  br i1 %cmp.i.i.i431, label %if.then.i.i.i433, label %if.end.i.i.i437
-
-if.then.i.i.i433:                                 ; preds = %land.lhs.true.i.i.i432
-  call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %D) #1
-  br label %if.end.i.i.i437
-
-if.end.i.i.i437:                                  ; preds = %if.then.i.i.i433, %land.lhs.true.i.i.i432, %_ZN2cv3MatD1Ev.exit427
-  store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i428, align 8, !tbaa !5
-  %208 = bitcast i8** %data81 to i8*
-  call void @llvm.memset.p0i8.i64(i8* %208, i8 0, i64 32, i32 8, i1 false) #1
-  %209 = load i32* %dims.i.i164, align 4, !tbaa !9
-  %cmp47.i.i.i436 = icmp sgt i32 %209, 0
-  br i1 %cmp47.i.i.i436, label %for.body.lr.ph.i.i.i439, label %_ZN2cv3Mat7releaseEv.exit.i.i448
-
-for.body.lr.ph.i.i.i439:                          ; preds = %if.end.i.i.i437
-  %210 = load i32** %p.i.i.i.i166, align 8, !tbaa !5
-  br label %for.body.i.i.i444
-
-for.body.i.i.i444:                                ; preds = %for.body.i.i.i444, %for.body.lr.ph.i.i.i439
-  %indvars.iv.i.i.i440 = phi i64 [ 0, %for.body.lr.ph.i.i.i439 ], [ %indvars.iv.next.i.i.i442, %for.body.i.i.i444 ]
-  %arrayidx.i.i.i441 = getelementptr inbounds i32* %210, i64 %indvars.iv.i.i.i440
-  store i32 0, i32* %arrayidx.i.i.i441, align 4, !tbaa !9
-  %indvars.iv.next.i.i.i442 = add i64 %indvars.iv.i.i.i440, 1
-  %211 = load i32* %dims.i.i164, align 4, !tbaa !9
-  %212 = trunc i64 %indvars.iv.next.i.i.i442 to i32
-  %cmp4.i.i.i443 = icmp slt i32 %212, %211
-  br i1 %cmp4.i.i.i443, label %for.body.i.i.i444, label %_ZN2cv3Mat7releaseEv.exit.i.i448
-
-_ZN2cv3Mat7releaseEv.exit.i.i448:                 ; preds = %for.body.i.i.i444, %if.end.i.i.i437
-  %213 = load i64** %p.i.i3.i.i168, align 8, !tbaa !5
-  %cmp.i.i447 = icmp eq i64* %213, %arraydecay.i.i.i.i167
-  br i1 %cmp.i.i447, label %_ZN2cv3MatD1Ev.exit450, label %if.then.i.i449
-
-if.then.i.i449:                                   ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i448
-  %214 = bitcast i64* %213 to i8*
-  call void @_ZN2cv8fastFreeEPv(i8* %214) #1
-  br label %_ZN2cv3MatD1Ev.exit450
-
-_ZN2cv3MatD1Ev.exit450:                           ; preds = %if.then.i.i449, %_ZN2cv3Mat7releaseEv.exit.i.i448
-  call void @llvm.lifetime.end(i64 96, i8* %35) #1
-  %u.i.i.i451 = getelementptr inbounds %"class.cv::Mat"* %src, i64 0, i32 9
-  %215 = load %"struct.cv::UMatData"** %u.i.i.i451, align 8, !tbaa !5
-  %tobool.i.i.i452 = icmp eq %"struct.cv::UMatData"* %215, null
-  br i1 %tobool.i.i.i452, label %if.end.i.i.i460, label %land.lhs.true.i.i.i455
-
-land.lhs.true.i.i.i455:                           ; preds = %_ZN2cv3MatD1Ev.exit450
-  %refcount.i.i.i453 = getelementptr inbounds %"struct.cv::UMatData"* %215, i64 0, i32 3
-  %216 = atomicrmw add i32* %refcount.i.i.i453, i32 -1 acq_rel
-  %cmp.i.i.i454 = icmp eq i32 %216, 1
-  br i1 %cmp.i.i.i454, label %if.then.i.i.i456, label %if.end.i.i.i460
-
-if.then.i.i.i456:                                 ; preds = %land.lhs.true.i.i.i455
-  call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %src) #1
-  br label %if.end.i.i.i460
-
-if.end.i.i.i460:                                  ; preds = %if.then.i.i.i456, %land.lhs.true.i.i.i455, %_ZN2cv3MatD1Ev.exit450
-  store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i.i.i451, align 8, !tbaa !5
-  %217 = bitcast i8** %data to i8*
-  call void @llvm.memset.p0i8.i64(i8* %217, i8 0, i64 32, i32 8, i1 false) #1
-  %218 = load i32* %dims.i.i, align 4, !tbaa !9
-  %cmp47.i.i.i459 = icmp sgt i32 %218, 0
-  br i1 %cmp47.i.i.i459, label %for.body.lr.ph.i.i.i462, label %_ZN2cv3Mat7releaseEv.exit.i.i471
-
-for.body.lr.ph.i.i.i462:                          ; preds = %if.end.i.i.i460
-  %219 = load i32** %p.i.i.i.i, align 8, !tbaa !5
-  br label %for.body.i.i.i467
-
-for.body.i.i.i467:                                ; preds = %for.body.i.i.i467, %for.body.lr.ph.i.i.i462
-  %indvars.iv.i.i.i463 = phi i64 [ 0, %for.body.lr.ph.i.i.i462 ], [ %indvars.iv.next.i.i.i465, %for.body.i.i.i467 ]
-  %arrayidx.i.i.i464 = getelementptr inbounds i32* %219, i64 %indvars.iv.i.i.i463
-  store i32 0, i32* %arrayidx.i.i.i464, align 4, !tbaa !9
-  %indvars.iv.next.i.i.i465 = add i64 %indvars.iv.i.i.i463, 1
-  %220 = load i32* %dims.i.i, align 4, !tbaa !9
-  %221 = trunc i64 %indvars.iv.next.i.i.i465 to i32
-  %cmp4.i.i.i466 = icmp slt i32 %221, %220
-  br i1 %cmp4.i.i.i466, label %for.body.i.i.i467, label %_ZN2cv3Mat7releaseEv.exit.i.i471
-
-_ZN2cv3Mat7releaseEv.exit.i.i471:                 ; preds = %for.body.i.i.i467, %if.end.i.i.i460
-  %222 = load i64** %p.i.i3.i.i, align 8, !tbaa !5
-  %cmp.i.i470 = icmp eq i64* %222, %arraydecay.i.i.i.i
-  br i1 %cmp.i.i470, label %cleanup, label %if.then.i.i472
-
-if.then.i.i472:                                   ; preds = %_ZN2cv3Mat7releaseEv.exit.i.i471
-  %223 = bitcast i64* %222 to i8*
-  call void @_ZN2cv8fastFreeEPv(i8* %223) #1
-  br label %cleanup
-
-cleanup:                                          ; preds = %if.then.i.i472, %_ZN2cv3Mat7releaseEv.exit.i.i471, %if.then16
-  %retval.0 = phi i32 [ -1, %if.then16 ], [ 0, %_ZN2cv3Mat7releaseEv.exit.i.i471 ], [ 0, %if.then.i.i472 ]
-  call void @_ZN2cv12VideoCaptureD1Ev(%"class.cv::VideoCapture"* %cap) #1
-  call void @llvm.lifetime.end(i64 40, i8* %12) #1
-  call void @llvm.lifetime.end(i64 800, i8* %0) #1
-  ret i32 %retval.0
-}
-
-declare %struct.pb_Parameters* @pb_ReadParameters(i32*, i8**) #0
-
-; Function Attrs: noreturn nounwind
-declare void @exit(i32) #3
-
-declare void @_ZN2cv12VideoCaptureC1ERKNS_6StringE(%"class.cv::VideoCapture"*, %"class.cv::String"*) #0
-
-declare zeroext i1 @_ZNK2cv12VideoCapture8isOpenedEv(%"class.cv::VideoCapture"*) #0
-
-declare double @_ZNK2cv12VideoCapture3getEi(%"class.cv::VideoCapture"*, i32) #0
-
-declare %"class.std::basic_ostream"* @_ZNSolsEi(%"class.std::basic_ostream"*, i32) #0
-
-declare void @_ZN2cv11namedWindowERKNS_6StringEi(%"class.cv::String"*, i32) #0
-
-declare void @_ZN2cv10moveWindowERKNS_6StringEii(%"class.cv::String"*, i32, i32) #0
-
-; Function Attrs: inlinehint nounwind uwtable
-define linkonce_odr %"class.cv::Mat"* @_ZN2cv3MataSERKS0_(%"class.cv::Mat"* %this, %"class.cv::Mat"* %m) #4 align 2 {
-entry:
-  %cmp = icmp eq %"class.cv::Mat"* %this, %m
-  br i1 %cmp, label %if.end27, label %if.then
-
-if.then:                                          ; preds = %entry
-  %u = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 9
-  %0 = load %"struct.cv::UMatData"** %u, align 8, !tbaa !5
-  %tobool = icmp eq %"struct.cv::UMatData"* %0, null
-  br i1 %tobool, label %if.end, label %if.then2
-
-if.then2:                                         ; preds = %if.then
-  %refcount = getelementptr inbounds %"struct.cv::UMatData"* %0, i64 0, i32 3
-  %1 = atomicrmw add i32* %refcount, i32 1 acq_rel
-  br label %if.end
-
-if.end:                                           ; preds = %if.then2, %if.then
-  %u.i = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 9
-  %2 = load %"struct.cv::UMatData"** %u.i, align 8, !tbaa !5
-  %tobool.i = icmp eq %"struct.cv::UMatData"* %2, null
-  br i1 %tobool.i, label %if.end.i, label %land.lhs.true.i
-
-land.lhs.true.i:                                  ; preds = %if.end
-  %refcount.i = getelementptr inbounds %"struct.cv::UMatData"* %2, i64 0, i32 3
-  %3 = atomicrmw add i32* %refcount.i, i32 -1 acq_rel
-  %cmp.i = icmp eq i32 %3, 1
-  br i1 %cmp.i, label %if.then.i, label %if.end.i
-
-if.then.i:                                        ; preds = %land.lhs.true.i
-  tail call void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"* %this) #1
-  br label %if.end.i
-
-if.end.i:                                         ; preds = %if.then.i, %land.lhs.true.i, %if.end
-  store %"struct.cv::UMatData"* null, %"struct.cv::UMatData"** %u.i, align 8, !tbaa !5
-  %data.i = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 4
-  %dims.i = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 1
-  %4 = bitcast i8** %data.i to i8*
-  tail call void @llvm.memset.p0i8.i64(i8* %4, i8 0, i64 32, i32 8, i1 false) #1
-  %5 = load i32* %dims.i, align 4, !tbaa !9
-  %cmp47.i = icmp sgt i32 %5, 0
-  br i1 %cmp47.i, label %for.body.lr.ph.i, label %_ZN2cv3Mat7releaseEv.exit.thread
-
-_ZN2cv3Mat7releaseEv.exit.thread:                 ; preds = %if.end.i
-  %flags50 = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 0
-  %6 = load i32* %flags50, align 4, !tbaa !9
-  %flags451 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 0
-  store i32 %6, i32* %flags451, align 4, !tbaa !9
-  br label %land.lhs.true
-
-for.body.lr.ph.i:                                 ; preds = %if.end.i
-  %p.i = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 10, i32 0
-  %7 = load i32** %p.i, align 8, !tbaa !5
-  br label %for.body.i
-
-for.body.i:                                       ; preds = %for.body.i, %for.body.lr.ph.i
-  %indvars.iv.i = phi i64 [ 0, %for.body.lr.ph.i ], [ %indvars.iv.next.i, %for.body.i ]
-  %arrayidx.i = getelementptr inbounds i32* %7, i64 %indvars.iv.i
-  store i32 0, i32* %arrayidx.i, align 4, !tbaa !9
-  %indvars.iv.next.i = add i64 %indvars.iv.i, 1
-  %8 = load i32* %dims.i, align 4, !tbaa !9
-  %9 = trunc i64 %indvars.iv.next.i to i32
-  %cmp4.i = icmp slt i32 %9, %8
-  br i1 %cmp4.i, label %for.body.i, label %_ZN2cv3Mat7releaseEv.exit
-
-_ZN2cv3Mat7releaseEv.exit:                        ; preds = %for.body.i
-  %flags = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 0
-  %10 = load i32* %flags, align 4, !tbaa !9
-  %flags4 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 0
-  store i32 %10, i32* %flags4, align 4, !tbaa !9
-  %cmp5 = icmp slt i32 %8, 3
-  br i1 %cmp5, label %land.lhs.true, label %if.else
-
-land.lhs.true:                                    ; preds = %_ZN2cv3Mat7releaseEv.exit, %_ZN2cv3Mat7releaseEv.exit.thread
-  %dims6 = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 1
-  %11 = load i32* %dims6, align 4, !tbaa !9
-  %cmp7 = icmp slt i32 %11, 3
-  br i1 %cmp7, label %if.then8, label %if.else
-
-if.then8:                                         ; preds = %land.lhs.true
-  store i32 %11, i32* %dims.i, align 4, !tbaa !9
-  %rows = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 2
-  %12 = load i32* %rows, align 4, !tbaa !9
-  %rows11 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 2
-  store i32 %12, i32* %rows11, align 4, !tbaa !9
-  %cols = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 3
-  %13 = load i32* %cols, align 4, !tbaa !9
-  %cols12 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 3
-  store i32 %13, i32* %cols12, align 4, !tbaa !9
-  %p.i44 = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 11, i32 0
-  %14 = load i64** %p.i44, align 8, !tbaa !5
-  %15 = load i64* %14, align 8, !tbaa !10
-  %p.i49 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 11, i32 0
-  %16 = load i64** %p.i49, align 8, !tbaa !5
-  store i64 %15, i64* %16, align 8, !tbaa !10
-  %arrayidx.i48 = getelementptr inbounds i64* %14, i64 1
-  %17 = load i64* %arrayidx.i48, align 8, !tbaa !10
-  %arrayidx.i46 = getelementptr inbounds i64* %16, i64 1
-  store i64 %17, i64* %arrayidx.i46, align 8, !tbaa !10
-  br label %if.end19
-
-if.else:                                          ; preds = %land.lhs.true, %_ZN2cv3Mat7releaseEv.exit
-  tail call void @_ZN2cv3Mat8copySizeERKS0_(%"class.cv::Mat"* %this, %"class.cv::Mat"* %m) #1
-  br label %if.end19
-
-if.end19:                                         ; preds = %if.else, %if.then8
-  %data = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 4
-  %18 = load i8** %data, align 8, !tbaa !5
-  store i8* %18, i8** %data.i, align 8, !tbaa !5
-  %datastart = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 5
-  %19 = load i8** %datastart, align 8, !tbaa !5
-  %datastart21 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 5
-  store i8* %19, i8** %datastart21, align 8, !tbaa !5
-  %dataend = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 6
-  %20 = load i8** %dataend, align 8, !tbaa !5
-  %dataend22 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 6
-  store i8* %20, i8** %dataend22, align 8, !tbaa !5
-  %datalimit = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 7
-  %21 = load i8** %datalimit, align 8, !tbaa !5
-  %datalimit23 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 7
-  store i8* %21, i8** %datalimit23, align 8, !tbaa !5
-  %allocator = getelementptr inbounds %"class.cv::Mat"* %m, i64 0, i32 8
-  %22 = load %"class.cv::MatAllocator"** %allocator, align 8, !tbaa !5
-  %allocator24 = getelementptr inbounds %"class.cv::Mat"* %this, i64 0, i32 8
-  store %"class.cv::MatAllocator"* %22, %"class.cv::MatAllocator"** %allocator24, align 8, !tbaa !5
-  %23 = load %"struct.cv::UMatData"** %u, align 8, !tbaa !5
-  store %"struct.cv::UMatData"* %23, %"struct.cv::UMatData"** %u.i, align 8, !tbaa !5
-  br label %if.end27
-
-if.end27:                                         ; preds = %if.end19, %entry
-  ret %"class.cv::Mat"* %this
-}
-
-; Function Attrs: noreturn nounwind
-declare void @__assert_fail(i8*, i8*, i32, i8*) #3
-
-declare void @pb_InitializeTimerSet(%struct.pb_TimerSet*) #0
-
-; Function Attrs: nounwind
-declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32, i1) #1
-
-; Function Attrs: nounwind
-declare noalias i8* @malloc(i64) #5
-
-declare void @_ZN2cv12VideoCaptureD1Ev(%"class.cv::VideoCapture"*) #0
-
-declare void @llvm_hpvm_track_mem(i8*, i64) #0
-
-declare void @pb_SwitchToTimer(%struct.pb_TimerSet*, i32) #0
-
-declare void @llvm_hpvm_request_mem(i8*, i64) #0
-
-declare void @llvm_hpvm_untrack_mem(i8*) #0
-
-declare void @pb_PrintTimerSet(%struct.pb_TimerSet*) #0
-
-declare void @pb_FreeParameters(%struct.pb_Parameters*) #0
-
-declare %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"*, i8*, i64) #0
-
-; Function Attrs: nounwind readonly
-declare i64 @strlen(i8* nocapture) #6
-
-declare void @_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate(%"class.std::basic_ios"*, i32) #0
-
-; Function Attrs: nounwind
-declare void @_ZNSs4_Rep10_M_destroyERKSaIcE(%"struct.std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep"*, %"class.std::allocator"*) #5
-
-declare extern_weak i32 @pthread_cancel(i64) #0
-
-declare void @_ZN2cv8fastFreeEPv(i8*) #0
-
-declare void @_ZN2cv3Mat10deallocateEv(%"class.cv::Mat"*) #0
-
-declare void @_ZN2cv3Mat6createEiPKii(%"class.cv::Mat"*, i32, i32*, i32) #0
-
-declare void @_ZN2cv3Mat8copySizeERKS0_(%"class.cv::Mat"*, %"class.cv::Mat"*) #0
-
-declare i8* @_ZN2cv6String8allocateEm(%"class.cv::String"*, i64) #0
-
-declare void @_ZN2cv6String10deallocateEv(%"class.cv::String"*) #0
-
-; Function Attrs: nounwind
-define internal void @_GLOBAL__I_a() #1 section ".text.startup" {
-entry:
-  %ref.tmp.i1 = alloca %"class.std::allocator", align 1
-  %ref.tmp.i = alloca %"class.std::allocator", align 1
-  call void @_ZNSt8ios_base4InitC1Ev(%"class.std::ios_base::Init"* @_ZStL8__ioinit) #1
-  %0 = call i32 @__cxa_atexit(void (i8*)* bitcast (void (%"class.std::ios_base::Init"*)* @_ZNSt8ios_base4InitD1Ev to void (i8*)*), i8* getelementptr inbounds (%"class.std::ios_base::Init"* @_ZStL8__ioinit, i64 0, i32 0), i8* @__dso_handle) #1
-  %1 = getelementptr inbounds %"class.std::allocator"* %ref.tmp.i, i64 0, i32 0
-  call void @llvm.lifetime.start(i64 1, i8* %1) #1
-  call void @_ZNSsC1EPKcRKSaIcE(%"class.std::basic_string"* @input_window, i8* getelementptr inbounds ([27 x i8]* @.str, i64 0, i64 0), %"class.std::allocator"* %ref.tmp.i) #1
-  %2 = call i32 @__cxa_atexit(void (i8*)* bitcast (void (%"class.std::basic_string"*)* @_ZNSsD1Ev to void (i8*)*), i8* bitcast (%"class.std::basic_string"* @input_window to i8*), i8* @__dso_handle) #1
-  call void @llvm.lifetime.end(i64 1, i8* %1) #1
-  %3 = getelementptr inbounds %"class.std::allocator"* %ref.tmp.i1, i64 0, i32 0
-  call void @llvm.lifetime.start(i64 1, i8* %3) #1
-  call void @_ZNSsC1EPKcRKSaIcE(%"class.std::basic_string"* @output_window, i8* getelementptr inbounds ([28 x i8]* @.str3, i64 0, i64 0), %"class.std::allocator"* %ref.tmp.i1) #1
-  %4 = call i32 @__cxa_atexit(void (i8*)* bitcast (void (%"class.std::basic_string"*)* @_ZNSsD1Ev to void (i8*)*), i8* bitcast (%"class.std::basic_string"* @output_window to i8*), i8* @__dso_handle) #1
-  call void @llvm.lifetime.end(i64 1, i8* %3) #1
-  ret void
-}
-
-; Function Attrs: nounwind
-declare i64 @fwrite(i8* nocapture, i64, i64, %struct._IO_FILE* nocapture) #1
-
-; Function Attrs: nounwind
-declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) #1
-
-; Function Attrs: nounwind readnone
-declare i8* @llvm.hpvm.getNode() #7
-
-; Function Attrs: nounwind readnone
-declare i32 @llvm.hpvm.getNodeInstanceID.x(i8*) #7
-
-; Function Attrs: nounwind readnone
-declare i32 @llvm.hpvm.getNodeInstanceID.y(i8*) #7
-
-; Function Attrs: nounwind
-declare i8* @llvm.hpvm.createNode2D(i8*, i32, i32) #1
-
-; Function Attrs: nounwind
-declare void @llvm.hpvm.bind.input(i8*, i32, i32, i1) #1
-
-; Function Attrs: nounwind
-declare void @llvm.hpvm.bind.output(i8*, i32, i32, i1) #1
-
-; Function Attrs: nounwind
-declare i8* @llvm.hpvm.createNode(i8*) #1
-
-; Function Attrs: nounwind
-declare i8* @llvm.hpvm.createEdge(i8*, i8*, i1, i32, i32, i1) #1
-
-; Function Attrs: nounwind
-declare void @llvm.hpvm.init() #1
-
-; Function Attrs: nounwind
-declare i8* @llvm.hpvm.launch(i8*, i8*, i1) #1
-
-; Function Attrs: nounwind
-declare void @llvm.hpvm.wait(i8*) #1
-
-; Function Attrs: nounwind
-declare void @llvm.hpvm.cleanup() #1
-
-; Function Attrs: nounwind
-define %dilate.erode.ty @dilate_erode(float* nocapture in %n1_Is, i64 %n1_bytesIs, float* nocapture in %n1_B, i64 %n1_bytesB, float* nocapture out %n1_D, i64 %n1_bytesD, i32 %n1_m, i32 %n1_n, float* nocapture in %n2_Is, i64 %n2_bytesIs, float* nocapture in %n2_B, i64 %n2_bytesB, float* nocapture out %n2_E, i64 %n2_bytesE, i32 %n2_m, i32 %n2_n) #1 {
-entry:
-  %call3.i = tail call i8* @llvm.hpvm.getNode() #1
-  %call14.i = tail call i32 @llvm.hpvm.getNodeInstanceID.x(i8* %call3.i) #1
-  %call25.i = tail call i32 @llvm.hpvm.getNodeInstanceID.y(i8* %call3.i) #1
-  %cmp.i = icmp slt i32 %call14.i, %n1_n
-  %cmp3.i = icmp slt i32 %call25.i, %n1_m
-  %or.cond.i = and i1 %cmp.i, %cmp3.i
-  br i1 %or.cond.i, label %if.then.i, label %dilate.exit
-
-if.then.i:                                        ; preds = %entry
-  %mul.i = mul nsw i32 %call25.i, %n1_n
-  %add.i = add nsw i32 %mul.i, %call14.i
-  %idxprom.i = sext i32 %add.i to i64
-  %arrayidx.i = getelementptr inbounds float* %n1_Is, i64 %idxprom.i
-  %0 = load float* %arrayidx.i, align 4, !tbaa !11
-  %cmp6.i = icmp eq i32 %call14.i, 0
-  br i1 %cmp6.i, label %if.end.i, label %if.else.i
-
-if.else.i:                                        ; preds = %if.then.i
-  %sub.i = add nsw i32 %add.i, -1
-  %idxprom16.i = sext i32 %sub.i to i64
-  %arrayidx17.i = getelementptr inbounds float* %n1_Is, i64 %idxprom16.i
-  %1 = load float* %arrayidx17.i, align 4, !tbaa !11
-  %cmp20.i = icmp sgt i32 %call25.i, 0
-  br i1 %cmp20.i, label %cond.true.i, label %cond.end.i
-
-cond.true.i:                                      ; preds = %if.else.i
-  %sub21.i = add nsw i32 %call25.i, -1
-  %mul22.i = mul nsw i32 %sub21.i, %n1_n
-  %add23.i = add i32 %call14.i, -1
-  %sub24.i = add i32 %add23.i, %mul22.i
-  %idxprom25.i = sext i32 %sub24.i to i64
-  %arrayidx26.i = getelementptr inbounds float* %n1_Is, i64 %idxprom25.i
-  %2 = load float* %arrayidx26.i, align 4, !tbaa !11
-  br label %cond.end.i
-
-cond.end.i:                                       ; preds = %cond.true.i, %if.else.i
-  %cond.i = phi float [ %2, %cond.true.i ], [ 0.000000e+00, %if.else.i ]
-  %sub29.i = add nsw i32 %n1_m, -1
-  %cmp30.i = icmp slt i32 %call25.i, %sub29.i
-  br i1 %cmp30.i, label %cond.true31.i, label %if.end.i
-
-cond.true31.i:                                    ; preds = %cond.end.i
-  %add32.i = add nsw i32 %call25.i, 1
-  %mul33.i = mul nsw i32 %add32.i, %n1_n
-  %add34.i = add i32 %call14.i, -1
-  %sub35.i = add i32 %add34.i, %mul33.i
-  %idxprom36.i = sext i32 %sub35.i to i64
-  %arrayidx37.i = getelementptr inbounds float* %n1_Is, i64 %idxprom36.i
-  %3 = load float* %arrayidx37.i, align 4, !tbaa !11
-  br label %if.end.i
-
-if.end.i:                                         ; preds = %cond.true31.i, %cond.end.i, %if.then.i
-  %4 = phi float [ 0.000000e+00, %if.then.i ], [ %3, %cond.true31.i ], [ 0.000000e+00, %cond.end.i ]
-  %5 = phi float [ 0.000000e+00, %if.then.i ], [ %1, %cond.true31.i ], [ %1, %cond.end.i ]
-  %6 = phi float [ 0.000000e+00, %if.then.i ], [ %cond.i, %cond.true31.i ], [ %cond.i, %cond.end.i ]
-  %sub43.i = add nsw i32 %n1_n, -1
-  %cmp44.i = icmp eq i32 %call14.i, %sub43.i
-  br i1 %cmp44.i, label %if.end87.i, label %if.else52.i
-
-if.else52.i:                                      ; preds = %if.end.i
-  %add55.i = add nsw i32 %add.i, 1
-  %idxprom56.i = sext i32 %add55.i to i64
-  %arrayidx57.i = getelementptr inbounds float* %n1_Is, i64 %idxprom56.i
-  %7 = load float* %arrayidx57.i, align 4, !tbaa !11
-  %cmp60.i = icmp sgt i32 %call25.i, 0
-  br i1 %cmp60.i, label %cond.true61.i, label %cond.end69.i
-
-cond.true61.i:                                    ; preds = %if.else52.i
-  %sub62.i = add nsw i32 %call25.i, -1
-  %mul63.i = mul nsw i32 %sub62.i, %n1_n
-  %add64.i = add i32 %call14.i, 1
-  %add65.i = add i32 %add64.i, %mul63.i
-  %idxprom66.i = sext i32 %add65.i to i64
-  %arrayidx67.i = getelementptr inbounds float* %n1_Is, i64 %idxprom66.i
-  %8 = load float* %arrayidx67.i, align 4, !tbaa !11
-  br label %cond.end69.i
-
-cond.end69.i:                                     ; preds = %cond.true61.i, %if.else52.i
-  %cond70.i = phi float [ %8, %cond.true61.i ], [ 0.000000e+00, %if.else52.i ]
-  %sub73.i = add nsw i32 %n1_m, -1
-  %cmp74.i = icmp slt i32 %call25.i, %sub73.i
-  br i1 %cmp74.i, label %cond.true75.i, label %if.end87.i
-
-cond.true75.i:                                    ; preds = %cond.end69.i
-  %add76.i = add nsw i32 %call25.i, 1
-  %mul77.i = mul nsw i32 %add76.i, %n1_n
-  %add78.i = add i32 %call14.i, 1
-  %add79.i = add i32 %add78.i, %mul77.i
-  %idxprom80.i = sext i32 %add79.i to i64
-  %arrayidx81.i = getelementptr inbounds float* %n1_Is, i64 %idxprom80.i
-  %9 = load float* %arrayidx81.i, align 4, !tbaa !11
-  br label %if.end87.i
-
-if.end87.i:                                       ; preds = %cond.true75.i, %cond.end69.i, %if.end.i
-  %10 = phi float [ 0.000000e+00, %if.end.i ], [ %9, %cond.true75.i ], [ 0.000000e+00, %cond.end69.i ]
-  %11 = phi float [ 0.000000e+00, %if.end.i ], [ %7, %cond.true75.i ], [ %7, %cond.end69.i ]
-  %12 = phi float [ 0.000000e+00, %if.end.i ], [ %cond70.i, %cond.true75.i ], [ %cond70.i, %cond.end69.i ]
-  %cmp88.i = icmp sgt i32 %call25.i, 0
-  br i1 %cmp88.i, label %cond.true89.i, label %cond.end96.i
-
-cond.true89.i:                                    ; preds = %if.end87.i
-  %sub90.i = add nsw i32 %call25.i, -1
-  %mul91.i = mul nsw i32 %sub90.i, %n1_n
-  %add92.i = add nsw i32 %mul91.i, %call14.i
-  %idxprom93.i = sext i32 %add92.i to i64
-  %arrayidx94.i = getelementptr inbounds float* %n1_Is, i64 %idxprom93.i
-  %13 = load float* %arrayidx94.i, align 4, !tbaa !11
-  br label %cond.end96.i
-
-cond.end96.i:                                     ; preds = %cond.true89.i, %if.end87.i
-  %14 = phi float [ %13, %cond.true89.i ], [ 0.000000e+00, %if.end87.i ]
-  %sub100.i = add nsw i32 %n1_m, -1
-  %cmp101.i = icmp slt i32 %call25.i, %sub100.i
-  br i1 %cmp101.i, label %cond.true102.i, label %cond.end109.i
-
-cond.true102.i:                                   ; preds = %cond.end96.i
-  %add103.i = add nsw i32 %call25.i, 1
-  %mul104.i = mul nsw i32 %add103.i, %n1_n
-  %add105.i = add nsw i32 %mul104.i, %call14.i
-  %idxprom106.i = sext i32 %add105.i to i64
-  %arrayidx107.i = getelementptr inbounds float* %n1_Is, i64 %idxprom106.i
-  %15 = load float* %arrayidx107.i, align 4, !tbaa !11
-  br label %cond.end109.i
-
-cond.end109.i:                                    ; preds = %cond.true102.i, %cond.end96.i
-  %cond110.i = phi float [ %15, %cond.true102.i ], [ 0.000000e+00, %cond.end96.i ]
-  %16 = load float* %n1_B, align 4, !tbaa !11
-  %mul125.i = fmul fast float %6, %16
-  %cmp126.i = fcmp olt float %mul125.i, 0.000000e+00
-  %dilatedPixel.1.mul125.i = select i1 %cmp126.i, float 0.000000e+00, float %mul125.i
-  %arrayidx124.1.i = getelementptr inbounds float* %n1_B, i64 1
-  %17 = load float* %arrayidx124.1.i, align 4, !tbaa !11
-  %mul125.1.i = fmul fast float %14, %17
-  %cmp126.1.i = fcmp ogt float %dilatedPixel.1.mul125.i, %mul125.1.i
-  %dilatedPixel.1.mul125.1.i = select i1 %cmp126.1.i, float %dilatedPixel.1.mul125.i, float %mul125.1.i
-  %arrayidx124.2.i = getelementptr inbounds float* %n1_B, i64 2
-  %18 = load float* %arrayidx124.2.i, align 4, !tbaa !11
-  %mul125.2.i = fmul fast float %12, %18
-  %cmp126.2.i = fcmp ogt float %dilatedPixel.1.mul125.1.i, %mul125.2.i
-  %dilatedPixel.1.mul125.2.i = select i1 %cmp126.2.i, float %dilatedPixel.1.mul125.1.i, float %mul125.2.i
-  %arrayidx124.1227.i = getelementptr inbounds float* %n1_B, i64 3
-  %19 = load float* %arrayidx124.1227.i, align 4, !tbaa !11
-  %mul125.1228.i = fmul fast float %5, %19
-  %cmp126.1229.i = fcmp ogt float %dilatedPixel.1.mul125.2.i, %mul125.1228.i
-  %dilatedPixel.1.mul125.1230.i = select i1 %cmp126.1229.i, float %dilatedPixel.1.mul125.2.i, float %mul125.1228.i
-  %arrayidx124.1.1.i = getelementptr inbounds float* %n1_B, i64 4
-  %20 = load float* %arrayidx124.1.1.i, align 4, !tbaa !11
-  %mul125.1.1.i = fmul fast float %0, %20
-  %cmp126.1.1.i = fcmp ogt float %dilatedPixel.1.mul125.1230.i, %mul125.1.1.i
-  %dilatedPixel.1.mul125.1.1.i = select i1 %cmp126.1.1.i, float %dilatedPixel.1.mul125.1230.i, float %mul125.1.1.i
-  %arrayidx124.2.1.i = getelementptr inbounds float* %n1_B, i64 5
-  %21 = load float* %arrayidx124.2.1.i, align 4, !tbaa !11
-  %mul125.2.1.i = fmul fast float %11, %21
-  %cmp126.2.1.i = fcmp ogt float %dilatedPixel.1.mul125.1.1.i, %mul125.2.1.i
-  %dilatedPixel.1.mul125.2.1.i = select i1 %cmp126.2.1.i, float %dilatedPixel.1.mul125.1.1.i, float %mul125.2.1.i
-  %arrayidx124.2232.i = getelementptr inbounds float* %n1_B, i64 6
-  %22 = load float* %arrayidx124.2232.i, align 4, !tbaa !11
-  %mul125.2233.i = fmul fast float %4, %22
-  %cmp126.2234.i = fcmp ogt float %dilatedPixel.1.mul125.2.1.i, %mul125.2233.i
-  %dilatedPixel.1.mul125.2235.i = select i1 %cmp126.2234.i, float %dilatedPixel.1.mul125.2.1.i, float %mul125.2233.i
-  %arrayidx124.1.2.i = getelementptr inbounds float* %n1_B, i64 7
-  %23 = load float* %arrayidx124.1.2.i, align 4, !tbaa !11
-  %mul125.1.2.i = fmul fast float %cond110.i, %23
-  %cmp126.1.2.i = fcmp ogt float %dilatedPixel.1.mul125.2235.i, %mul125.1.2.i
-  %dilatedPixel.1.mul125.1.2.i = select i1 %cmp126.1.2.i, float %dilatedPixel.1.mul125.2235.i, float %mul125.1.2.i
-  %arrayidx124.2.2.i = getelementptr inbounds float* %n1_B, i64 8
-  %24 = load float* %arrayidx124.2.2.i, align 4, !tbaa !11
-  %mul125.2.2.i = fmul fast float %10, %24
-  %cmp126.2.2.i = fcmp ogt float %dilatedPixel.1.mul125.1.2.i, %mul125.2.2.i
-  %dilatedPixel.1.mul125.2.2.i = select i1 %cmp126.2.2.i, float %dilatedPixel.1.mul125.1.2.i, float %mul125.2.2.i
-  %arrayidx146.i = getelementptr inbounds float* %n1_D, i64 %idxprom.i
-  store float %dilatedPixel.1.mul125.2.2.i, float* %arrayidx146.i, align 4, !tbaa !11
-  br label %dilate.exit
-
-dilate.exit:                                      ; preds = %entry, %cond.end109.i
-  %cmp.i4 = icmp slt i32 %call14.i, %n2_n
-  %cmp3.i5 = icmp slt i32 %call25.i, %n2_m
-  %or.cond.i6 = and i1 %cmp.i4, %cmp3.i5
-  br i1 %or.cond.i6, label %if.then.i12, label %erode.exit
-
-if.then.i12:                                      ; preds = %dilate.exit
-  %mul.i7 = mul nsw i32 %call25.i, %n2_n
-  %add.i8 = add nsw i32 %mul.i7, %call14.i
-  %idxprom.i9 = sext i32 %add.i8 to i64
-  %arrayidx.i10 = getelementptr inbounds float* %n2_Is, i64 %idxprom.i9
-  %25 = load float* %arrayidx.i10, align 4, !tbaa !11
-  %cmp6.i11 = icmp eq i32 %call14.i, 0
-  br i1 %cmp6.i11, label %if.end.i38, label %if.else.i17
-
-if.else.i17:                                      ; preds = %if.then.i12
-  %sub.i13 = add nsw i32 %add.i8, -1
-  %idxprom16.i14 = sext i32 %sub.i13 to i64
-  %arrayidx17.i15 = getelementptr inbounds float* %n2_Is, i64 %idxprom16.i14
-  %26 = load float* %arrayidx17.i15, align 4, !tbaa !11
-  %cmp20.i16 = icmp sgt i32 %call25.i, 0
-  br i1 %cmp20.i16, label %cond.true.i24, label %cond.end.i28
-
-cond.true.i24:                                    ; preds = %if.else.i17
-  %sub21.i18 = add nsw i32 %call25.i, -1
-  %mul22.i19 = mul nsw i32 %sub21.i18, %n2_n
-  %add23.i20 = add i32 %call14.i, -1
-  %sub24.i21 = add i32 %add23.i20, %mul22.i19
-  %idxprom25.i22 = sext i32 %sub24.i21 to i64
-  %arrayidx26.i23 = getelementptr inbounds float* %n2_Is, i64 %idxprom25.i22
-  %27 = load float* %arrayidx26.i23, align 4, !tbaa !11
-  br label %cond.end.i28
-
-cond.end.i28:                                     ; preds = %cond.true.i24, %if.else.i17
-  %cond.i25 = phi float [ %27, %cond.true.i24 ], [ 1.000000e+00, %if.else.i17 ]
-  %sub29.i26 = add nsw i32 %n2_m, -1
-  %cmp30.i27 = icmp slt i32 %call25.i, %sub29.i26
-  br i1 %cmp30.i27, label %cond.true31.i35, label %if.end.i38
-
-cond.true31.i35:                                  ; preds = %cond.end.i28
-  %add32.i29 = add nsw i32 %call25.i, 1
-  %mul33.i30 = mul nsw i32 %add32.i29, %n2_n
-  %add34.i31 = add i32 %call14.i, -1
-  %sub35.i32 = add i32 %add34.i31, %mul33.i30
-  %idxprom36.i33 = sext i32 %sub35.i32 to i64
-  %arrayidx37.i34 = getelementptr inbounds float* %n2_Is, i64 %idxprom36.i33
-  %28 = load float* %arrayidx37.i34, align 4, !tbaa !11
-  br label %if.end.i38
-
-if.end.i38:                                       ; preds = %cond.true31.i35, %cond.end.i28, %if.then.i12
-  %29 = phi float [ 1.000000e+00, %if.then.i12 ], [ %28, %cond.true31.i35 ], [ 1.000000e+00, %cond.end.i28 ]
-  %30 = phi float [ 1.000000e+00, %if.then.i12 ], [ %26, %cond.true31.i35 ], [ %26, %cond.end.i28 ]
-  %31 = phi float [ 1.000000e+00, %if.then.i12 ], [ %cond.i25, %cond.true31.i35 ], [ %cond.i25, %cond.end.i28 ]
-  %sub43.i36 = add nsw i32 %n2_n, -1
-  %cmp44.i37 = icmp eq i32 %call14.i, %sub43.i36
-  br i1 %cmp44.i37, label %if.end87.i63, label %if.else52.i43
-
-if.else52.i43:                                    ; preds = %if.end.i38
-  %add55.i39 = add nsw i32 %add.i8, 1
-  %idxprom56.i40 = sext i32 %add55.i39 to i64
-  %arrayidx57.i41 = getelementptr inbounds float* %n2_Is, i64 %idxprom56.i40
-  %32 = load float* %arrayidx57.i41, align 4, !tbaa !11
-  %cmp60.i42 = icmp sgt i32 %call25.i, 0
-  br i1 %cmp60.i42, label %cond.true61.i50, label %cond.end69.i54
-
-cond.true61.i50:                                  ; preds = %if.else52.i43
-  %sub62.i44 = add nsw i32 %call25.i, -1
-  %mul63.i45 = mul nsw i32 %sub62.i44, %n2_n
-  %add64.i46 = add i32 %call14.i, 1
-  %add65.i47 = add i32 %add64.i46, %mul63.i45
-  %idxprom66.i48 = sext i32 %add65.i47 to i64
-  %arrayidx67.i49 = getelementptr inbounds float* %n2_Is, i64 %idxprom66.i48
-  %33 = load float* %arrayidx67.i49, align 4, !tbaa !11
-  br label %cond.end69.i54
-
-cond.end69.i54:                                   ; preds = %cond.true61.i50, %if.else52.i43
-  %cond70.i51 = phi float [ %33, %cond.true61.i50 ], [ 1.000000e+00, %if.else52.i43 ]
-  %sub73.i52 = add nsw i32 %n2_m, -1
-  %cmp74.i53 = icmp slt i32 %call25.i, %sub73.i52
-  br i1 %cmp74.i53, label %cond.true75.i61, label %if.end87.i63
-
-cond.true75.i61:                                  ; preds = %cond.end69.i54
-  %add76.i55 = add nsw i32 %call25.i, 1
-  %mul77.i56 = mul nsw i32 %add76.i55, %n2_n
-  %add78.i57 = add i32 %call14.i, 1
-  %add79.i58 = add i32 %add78.i57, %mul77.i56
-  %idxprom80.i59 = sext i32 %add79.i58 to i64
-  %arrayidx81.i60 = getelementptr inbounds float* %n2_Is, i64 %idxprom80.i59
-  %34 = load float* %arrayidx81.i60, align 4, !tbaa !11
-  br label %if.end87.i63
-
-if.end87.i63:                                     ; preds = %cond.true75.i61, %cond.end69.i54, %if.end.i38
-  %35 = phi float [ 1.000000e+00, %if.end.i38 ], [ %34, %cond.true75.i61 ], [ 1.000000e+00, %cond.end69.i54 ]
-  %36 = phi float [ 1.000000e+00, %if.end.i38 ], [ %32, %cond.true75.i61 ], [ %32, %cond.end69.i54 ]
-  %37 = phi float [ 1.000000e+00, %if.end.i38 ], [ %cond70.i51, %cond.true75.i61 ], [ %cond70.i51, %cond.end69.i54 ]
-  %cmp88.i62 = icmp sgt i32 %call25.i, 0
-  br i1 %cmp88.i62, label %cond.true89.i69, label %cond.end96.i72
-
-cond.true89.i69:                                  ; preds = %if.end87.i63
-  %sub90.i64 = add nsw i32 %call25.i, -1
-  %mul91.i65 = mul nsw i32 %sub90.i64, %n2_n
-  %add92.i66 = add nsw i32 %mul91.i65, %call14.i
-  %idxprom93.i67 = sext i32 %add92.i66 to i64
-  %arrayidx94.i68 = getelementptr inbounds float* %n2_Is, i64 %idxprom93.i67
-  %38 = load float* %arrayidx94.i68, align 4, !tbaa !11
-  br label %cond.end96.i72
-
-cond.end96.i72:                                   ; preds = %cond.true89.i69, %if.end87.i63
-  %39 = phi float [ %38, %cond.true89.i69 ], [ 1.000000e+00, %if.end87.i63 ]
-  %sub100.i70 = add nsw i32 %n2_m, -1
-  %cmp101.i71 = icmp slt i32 %call25.i, %sub100.i70
-  br i1 %cmp101.i71, label %cond.true102.i78, label %cond.end109.i107
-
-cond.true102.i78:                                 ; preds = %cond.end96.i72
-  %add103.i73 = add nsw i32 %call25.i, 1
-  %mul104.i74 = mul nsw i32 %add103.i73, %n2_n
-  %add105.i75 = add nsw i32 %mul104.i74, %call14.i
-  %idxprom106.i76 = sext i32 %add105.i75 to i64
-  %arrayidx107.i77 = getelementptr inbounds float* %n2_Is, i64 %idxprom106.i76
-  %40 = load float* %arrayidx107.i77, align 4, !tbaa !11
-  br label %cond.end109.i107
-
-cond.end109.i107:                                 ; preds = %cond.true102.i78, %cond.end96.i72
-  %cond110.i79 = phi float [ %40, %cond.true102.i78 ], [ 1.000000e+00, %cond.end96.i72 ]
-  %41 = load float* %n2_B, align 4, !tbaa !11
-  %mul125.i80 = fmul fast float %31, %41
-  %cmp126.i81 = fcmp ogt float %mul125.i80, 0.000000e+00
-  %erodedPixel.1.mul125.i = select i1 %cmp126.i81, float 0.000000e+00, float %mul125.i80
-  %arrayidx124.1.i82 = getelementptr inbounds float* %n2_B, i64 1
-  %42 = load float* %arrayidx124.1.i82, align 4, !tbaa !11
-  %mul125.1.i83 = fmul fast float %39, %42
-  %cmp126.1.i84 = fcmp olt float %erodedPixel.1.mul125.i, %mul125.1.i83
-  %erodedPixel.1.mul125.1.i = select i1 %cmp126.1.i84, float %erodedPixel.1.mul125.i, float %mul125.1.i83
-  %arrayidx124.2.i85 = getelementptr inbounds float* %n2_B, i64 2
-  %43 = load float* %arrayidx124.2.i85, align 4, !tbaa !11
-  %mul125.2.i86 = fmul fast float %37, %43
-  %cmp126.2.i87 = fcmp olt float %erodedPixel.1.mul125.1.i, %mul125.2.i86
-  %erodedPixel.1.mul125.2.i = select i1 %cmp126.2.i87, float %erodedPixel.1.mul125.1.i, float %mul125.2.i86
-  %arrayidx124.1227.i88 = getelementptr inbounds float* %n2_B, i64 3
-  %44 = load float* %arrayidx124.1227.i88, align 4, !tbaa !11
-  %mul125.1228.i89 = fmul fast float %30, %44
-  %cmp126.1229.i90 = fcmp olt float %erodedPixel.1.mul125.2.i, %mul125.1228.i89
-  %erodedPixel.1.mul125.1230.i = select i1 %cmp126.1229.i90, float %erodedPixel.1.mul125.2.i, float %mul125.1228.i89
-  %arrayidx124.1.1.i91 = getelementptr inbounds float* %n2_B, i64 4
-  %45 = load float* %arrayidx124.1.1.i91, align 4, !tbaa !11
-  %mul125.1.1.i92 = fmul fast float %25, %45
-  %cmp126.1.1.i93 = fcmp olt float %erodedPixel.1.mul125.1230.i, %mul125.1.1.i92
-  %erodedPixel.1.mul125.1.1.i = select i1 %cmp126.1.1.i93, float %erodedPixel.1.mul125.1230.i, float %mul125.1.1.i92
-  %arrayidx124.2.1.i94 = getelementptr inbounds float* %n2_B, i64 5
-  %46 = load float* %arrayidx124.2.1.i94, align 4, !tbaa !11
-  %mul125.2.1.i95 = fmul fast float %36, %46
-  %cmp126.2.1.i96 = fcmp olt float %erodedPixel.1.mul125.1.1.i, %mul125.2.1.i95
-  %erodedPixel.1.mul125.2.1.i = select i1 %cmp126.2.1.i96, float %erodedPixel.1.mul125.1.1.i, float %mul125.2.1.i95
-  %arrayidx124.2232.i97 = getelementptr inbounds float* %n2_B, i64 6
-  %47 = load float* %arrayidx124.2232.i97, align 4, !tbaa !11
-  %mul125.2233.i98 = fmul fast float %29, %47
-  %cmp126.2234.i99 = fcmp olt float %erodedPixel.1.mul125.2.1.i, %mul125.2233.i98
-  %erodedPixel.1.mul125.2235.i = select i1 %cmp126.2234.i99, float %erodedPixel.1.mul125.2.1.i, float %mul125.2233.i98
-  %arrayidx124.1.2.i100 = getelementptr inbounds float* %n2_B, i64 7
-  %48 = load float* %arrayidx124.1.2.i100, align 4, !tbaa !11
-  %mul125.1.2.i101 = fmul fast float %cond110.i79, %48
-  %cmp126.1.2.i102 = fcmp olt float %erodedPixel.1.mul125.2235.i, %mul125.1.2.i101
-  %erodedPixel.1.mul125.1.2.i = select i1 %cmp126.1.2.i102, float %erodedPixel.1.mul125.2235.i, float %mul125.1.2.i101
-  %arrayidx124.2.2.i103 = getelementptr inbounds float* %n2_B, i64 8
-  %49 = load float* %arrayidx124.2.2.i103, align 4, !tbaa !11
-  %mul125.2.2.i104 = fmul fast float %35, %49
-  %cmp126.2.2.i105 = fcmp olt float %erodedPixel.1.mul125.1.2.i, %mul125.2.2.i104
-  %erodedPixel.1.mul125.2.2.i = select i1 %cmp126.2.2.i105, float %erodedPixel.1.mul125.1.2.i, float %mul125.2.2.i104
-  %arrayidx146.i106 = getelementptr inbounds float* %n2_E, i64 %idxprom.i9
-  store float %erodedPixel.1.mul125.2.2.i, float* %arrayidx146.i106, align 4, !tbaa !11
-  br label %erode.exit
-
-erode.exit:                                       ; preds = %dilate.exit, %cond.end109.i107
-  %50 = insertvalue %dilate.erode.ty undef, i32 %call14.i, 0
-  %51 = insertvalue %dilate.erode.ty %50, i32 %call25.i, 1
-  ret %dilate.erode.ty %51
-}
-
-; Function Attrs: nounwind
-define %WrapperDilate.WrapperErode.ty @WrapperDilate_WrapperErode(float* nocapture in %n1_Is, i64 %n1_bytesIs, float* nocapture in %n1_B, i64 %n1_bytesB, float* nocapture out %n1_D, i64 %n1_bytesD, i32 %n1_m, i32 %n1_n, float* nocapture in %n2_Is, i64 %n2_bytesIs, float* nocapture in %n2_B, i64 %n2_bytesB, float* nocapture out %n2_E, i64 %n2_bytesE, i32 %n2_m, i32 %n2_n) #1 {
-entry:
-  %dilate_erode.node = tail call i8* @llvm.hpvm.createNode2D(i8* bitcast (%dilate.erode.ty (float*, i64, float*, i64, float*, i64, i32, i32, float*, i64, float*, i64, float*, i64, i32, i32)* @dilate_erode to i8*), i32 %n1_m, i32 %n1_n)
-  tail call void @llvm.hpvm.bind.output(i8* %dilate_erode.node, i32 0, i32 0, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %dilate_erode.node, i32 7, i32 7, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %dilate_erode.node, i32 6, i32 6, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %dilate_erode.node, i32 5, i32 5, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %dilate_erode.node, i32 4, i32 4, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %dilate_erode.node, i32 3, i32 3, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %dilate_erode.node, i32 2, i32 2, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %dilate_erode.node, i32 1, i32 1, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %dilate_erode.node, i32 0, i32 0, i1 false)
-  tail call void @llvm.hpvm.bind.output(i8* %dilate_erode.node, i32 1, i32 1, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %dilate_erode.node, i32 15, i32 15, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %dilate_erode.node, i32 14, i32 14, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %dilate_erode.node, i32 13, i32 13, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %dilate_erode.node, i32 12, i32 12, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %dilate_erode.node, i32 11, i32 11, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %dilate_erode.node, i32 10, i32 10, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %dilate_erode.node, i32 9, i32 9, i1 false)
-  tail call void @llvm.hpvm.bind.input(i8* %dilate_erode.node, i32 8, i32 8, i1 false)
-  ret %WrapperDilate.WrapperErode.ty undef
-}
-
-attributes #0 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "unsafe-fp-math"="true" "use-soft-float"="false" }
-attributes #1 = { nounwind }
-attributes #2 = { nounwind uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "unsafe-fp-math"="true" "use-soft-float"="false" }
-attributes #3 = { noreturn nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "unsafe-fp-math"="true" "use-soft-float"="false" }
-attributes #4 = { inlinehint nounwind uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "unsafe-fp-math"="true" "use-soft-float"="false" }
-attributes #5 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "unsafe-fp-math"="true" "use-soft-float"="false" }
-attributes #6 = { nounwind readonly "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "unsafe-fp-math"="true" "use-soft-float"="false" }
-attributes #7 = { nounwind readnone }
-attributes #8 = { noreturn nounwind }
-attributes #9 = { nounwind readonly }
-
-!hpvm_hint_gpu = !{!0, !1}
-!hpvm_hint_cpu = !{!2, !3, !4}
-!hpvm_hint_spir = !{}
-
-!0 = metadata !{%emptyStruct (float*, i64, float*, i64, float*, i64, float*, i64, i32, i32, i32, i32)* @lincomb}
-!1 = metadata !{%dilate.erode.ty (float*, i64, float*, i64, float*, i64, i32, i32, float*, i64, float*, i64, float*, i64, i32, i32)* @dilate_erode}
-!2 = metadata !{%emptyStruct.23 (float*, i64, float*, i64, float*, i64, float*, i64, i32, i32, i32, i32)* @WrapperLincomb}
-!3 = metadata !{%emptyStruct.24 (float*, i64, float*, i64, float*, i64, float*, i64, float*, i64, i32, i32)* @LaplacianEstimate}
-!4 = metadata !{%WrapperDilate.WrapperErode.ty (float*, i64, float*, i64, float*, i64, i32, i32, float*, i64, float*, i64, float*, i64, i32, i32)* @WrapperDilate_WrapperErode}
-!5 = metadata !{metadata !"any pointer", metadata !6}
-!6 = metadata !{metadata !"omnipotent char", metadata !7}
-!7 = metadata !{metadata !"Simple C/C++ TBAA"}
-!8 = metadata !{metadata !"branch_weights", i32 64, i32 4}
-!9 = metadata !{metadata !"int", metadata !6}
-!10 = metadata !{metadata !"long", metadata !6}
-!11 = metadata !{metadata !"float", metadata !6}
-!12 = metadata !{metadata !"vtable pointer", metadata !7}
-!13 = metadata !{metadata !"_ZTSSt12_Ios_Iostate", metadata !6}
diff --git a/hpvm/test/pipeline/run.sh b/hpvm/test/pipeline/run.sh
deleted file mode 100755
index 5ac734026bf839c511dfdfb843b07382e6d8d4d6..0000000000000000000000000000000000000000
--- a/hpvm/test/pipeline/run.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-echo Pipeline Script $1 $2
-
-version=$1
-pos=$2
-
-if [[ ($version == *"GPU"*) ||  ($version == "hpvm_parallel") ]]
-then
-  target=""
-elif [[ $version == *"Vector"* ]]
-then 
-  target="x86"
-else 
-  target="seq"
-fi
-
-make VERSION=$version TARGET=$target clean
-make VERSION=$version TARGET=$target POS=$pos
-make VERSION=$version TARGET=$target POS=$pos run
-
diff --git a/hpvm/test/pipeline/runscript.sh b/hpvm/test/pipeline/runscript.sh
deleted file mode 100755
index c95af8f831eeeb7f5f464e4acbc90dd49fcb67a1..0000000000000000000000000000000000000000
--- a/hpvm/test/pipeline/runscript.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/bash
-echo Pipeline Script
-
-# Compile all version
-make VERSION=hpvmGPU clean
-make VERSION=hpvmVector TARGET=x86 clean
-make VERSION=hpvmScalar TARGET=seq clean
-
-
-make VERSION=hpvmGPU
-make VERSION=hpvmVector TARGET=x86
-make VERSION=hpvmScalar TARGET=seq
-
-#Run all version
-make VERSION=hpvmGPU run &
-ID_GPU=$!
-make VERSION=hpvmVector TARGET=x86 run &
-ID_Vector=$!
-make VERSION=hpvmScalar TARGET=seq run
-ID_Scalar=$!
-
-#echo Wait 60 seconds
-#sleep 10
-#echo Wait 60 seconds ... Done
-#echo Killing GPU Pipeline
-#echo kill -9 $ID_GPU
-#read ppid
-#kill -9 $ID_GPU
-#echo Killing Vector Pipeline
-#kill -9 $(ID_Vector)
-#echo Killing Scalar Pipeline
-#kill -9 $(ID_Scalar)
diff --git a/hpvm/test/pipeline/src/Makefile b/hpvm/test/pipeline/src/Makefile
deleted file mode 100644
index 55acb2e0982edc2a914340f2bfacbbfc1d06397f..0000000000000000000000000000000000000000
--- a/hpvm/test/pipeline/src/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-# (c) 2010 The Board of Trustees of the University of Illinois.
-
-LANGUAGE=hpvm
-SRCDIR_OBJS=io.ll #compute_gold.o
-HPVM_OBJS=main.hpvm.ll
-APP_CUDALDFLAGS=-lm -lstdc++
-APP_CFLAGS+=-ffast-math -O3 -I/opt/opencv/include
-APP_CXXFLAGS+=-ffast-math -O3 -I/opt/opencv/include
-APP_LDFLAGS=`pkg-config opencv --libs`
-#APP_LDFLAGS=-L/usr/local/cuda/lib64 -rdynamic /opt/opencv/lib/libopencv_videostab.so.3.0.0 /opt/opencv/lib/libopencv_videoio.so.3.0.0 /opt/opencv/lib/libopencv_video.so.3.0.0 /opt/opencv/lib/libopencv_superres.so.3.0.0 /opt/opencv/lib/libopencv_stitching.so.3.0.0 /opt/opencv/lib/libopencv_shape.so.3.0.0 /opt/opencv/lib/libopencv_photo.so.3.0.0 /opt/opencv/lib/libopencv_objdetect.so.3.0.0 /opt/opencv/lib/libopencv_ml.so.3.0.0 /opt/opencv/lib/libopencv_imgproc.so.3.0.0 /opt/opencv/lib/libopencv_imgcodecs.so.3.0.0 /opt/opencv/lib/libopencv_highgui.so.3.0.0 /opt/opencv/lib/libopencv_hal.a /opt/opencv/lib/libopencv_flann.so.3.0.0 /opt/opencv/lib/libopencv_features2d.so.3.0.0 /opt/opencv/lib/libopencv_core.so.3.0.0 /opt/opencv/lib/libopencv_calib3d.so.3.0.0 /opt/opencv/lib/libopencv_hal.a -ldl -lm -lpthread -lrt /opt/opencv/share/OpenCV/3rdparty/lib/libippicv.a -Wl,-rpath,/usr/local/cuda/lib64:/opt/opencv/lib 
-
-#OpenCV link flags all
-#/usr/bin/c++   -std=c++0x   CMakeFiles/EdgeDetect.dir/EdgeDetect.cpp.o  -o EdgeDetect  -L/usr/local/cuda/lib64 -rdynamic /opt/opencv/lib/libopencv_videostab.so.3.0.0 /opt/opencv/lib/libopencv_videoio.so.3.0.0 /opt/opencv/lib/libopencv_video.so.3.0.0 /opt/opencv/lib/libopencv_superres.so.3.0.0 /opt/opencv/lib/libopencv_stitching.so.3.0.0 /opt/opencv/lib/libopencv_shape.so.3.0.0 /opt/opencv/lib/libopencv_photo.so.3.0.0 /opt/opencv/lib/libopencv_objdetect.so.3.0.0 /opt/opencv/lib/libopencv_ml.so.3.0.0 /opt/opencv/lib/libopencv_imgproc.so.3.0.0 /opt/opencv/lib/libopencv_imgcodecs.so.3.0.0 /opt/opencv/lib/libopencv_highgui.so.3.0.0 /opt/opencv/lib/libopencv_hal.a /opt/opencv/lib/libopencv_flann.so.3.0.0 /opt/opencv/lib/libopencv_features2d.so.3.0.0 /opt/opencv/lib/libopencv_cudev.so.3.0.0 /opt/opencv/lib/libopencv_cudawarping.so.3.0.0 /opt/opencv/lib/libopencv_cudastereo.so.3.0.0 /opt/opencv/lib/libopencv_cudaoptflow.so.3.0.0 /opt/opencv/lib/libopencv_cudaobjdetect.so.3.0.0 /opt/opencv/lib/libopencv_cudalegacy.so.3.0.0 /opt/opencv/lib/libopencv_cudaimgproc.so.3.0.0 /opt/opencv/lib/libopencv_cudafilters.so.3.0.0 /opt/opencv/lib/libopencv_cudafeatures2d.so.3.0.0 /opt/opencv/lib/libopencv_cudacodec.so.3.0.0 /opt/opencv/lib/libopencv_cudabgsegm.so.3.0.0 /opt/opencv/lib/libopencv_cudaarithm.so.3.0.0 /opt/opencv/lib/libopencv_core.so.3.0.0 /opt/opencv/lib/libopencv_calib3d.so.3.0.0 /opt/opencv/lib/libopencv_hal.a -ldl -lm -lpthread -lrt /opt/opencv/share/OpenCV/3rdparty/lib/libippicv.a -lcudart -lnpp -lcufft -lcudart -lnpp -lcufft -Wl,-rpath,/usr/local/cuda/lib64:/opt/opencv/lib 
diff --git a/hpvm/test/pipeline/src/io.cc b/hpvm/test/pipeline/src/io.cc
deleted file mode 100644
index 04744f404ebaf6e669c2bbe91600519742b57dc9..0000000000000000000000000000000000000000
--- a/hpvm/test/pipeline/src/io.cc
+++ /dev/null
@@ -1,84 +0,0 @@
-/***************************************************************************
- *cr
- *cr            (C) Copyright 2010 The Board of Trustees of the
- *cr                        University of Illinois
- *cr                         All Rights Reserved
- *cr
- ***************************************************************************/
-
-/* I/O routines for reading and writing matrices in column-major
- * layout
- */
-
-#include <fstream>
-#include <iostream>
-#include <vector>
-
-char *readFile(const char *fileName) {
-  std::fstream f(fileName, std::fstream::in);
-  if (!f.good()) {
-    std::cerr << "Error Reading File!!" << std::endl;
-    return NULL;
-  }
-
-  f.seekg(0, std::ios::end);
-  int length = f.tellg();
-  f.seekg(0, std::ios::beg);
-
-  char *buffer;
-
-  if (length > 0) {
-    buffer = new char[length];
-    f.read(buffer, length);
-    buffer[length - 1] = 0;
-  } else {
-    buffer = new char;
-    buffer[0] = 0;
-  }
-
-  f.close();
-
-  return buffer;
-}
-
-bool readColMajorMatrixFile(const char *fn, int &nr_row, int &nr_col,
-                            std::vector<float> &v) {
-  std::cerr << "Opening file:" << fn << std::endl;
-  std::fstream f(fn, std::fstream::in);
-  if (!f.good()) {
-    return false;
-  }
-
-  // Read # of rows and cols
-  f >> nr_row;
-  f >> nr_col;
-
-  float data;
-  std::cerr << "Matrix dimension: " << nr_row << "x" << nr_col << std::endl;
-  while (f.good()) {
-    f >> data;
-    v.push_back(data);
-  }
-  v.pop_back(); // remove the duplicated last element
-  return true;
-}
-
-bool writeColMajorMatrixFile(const char *fn, int nr_row, int nr_col,
-                             std::vector<float> &v) {
-  std::cerr << "Opening file:" << fn << " for write." << std::endl;
-  std::fstream f(fn, std::fstream::out);
-  if (!f.good()) {
-    return false;
-  }
-
-  // Read # of rows and cols
-  f << nr_row << " " << nr_col << " ";
-
-  float data;
-  std::cerr << "Matrix dimension: " << nr_row << "x" << nr_col << std::endl;
-  for (int i = 0; i < v.size(); ++i) {
-    f << v[i] << ' ';
-  }
-  f << "\n";
-  return true;
-}
diff --git a/hpvm/test/pipeline/tools/compare-output b/hpvm/test/pipeline/tools/compare-output
deleted file mode 100755
index a951db7684d0875fa5b8362c5b2203f40c2a0a21..0000000000000000000000000000000000000000
--- a/hpvm/test/pipeline/tools/compare-output
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/usr/bin/env python
-
-# (c) Copyright 2010 The Board of Trustees of the University of Illinois.
-
-import sys
-sys.path.insert(0, '../../common/python')
-
-import itertools
-
-import filecompare as fc
-import textfilecompare as tfc
-
-def compare_floats(ref_list, cmp_list):
-
-	# Lists should be the same length
-	if len(ref_list) != len(cmp_list):
-	  print "Different in length"
-	  print "ref=" + str(len(ref_list)) +" "+ str(ref_list[-2])
-	  print "cmp=" + str(len(cmp_list)) +" "+ str(cmp_list[-1])
-	  return False
-
-	return True
-
-	# Numbers should be equal with a tolerance of 1%
-	# or 0.01, whichever is greater.
-	for (r, c) in zip(ref_list, cmp_list):
-		diff = abs(r - c)
-		if not (diff < 0.01 or diff < 0.01 * abs(r)):
-			# Floats mismatch
-			return False
-
-	# All numbers are within tolerance
-	return True
-
-err = "Computed values do not match the expected values\n"
-
-comparison = fc.Then(
-	fc.Compare(tfc.floats, equal=compare_floats, message=err),
-	fc.Compare(tfc.eof)
-	)
-
-fc.default_main(comparison)